Magic cube program
==================
Copyright (c) 2018, Astrid Geck, all rights reserved.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Content
=======
Features
References
Licenses
Startup parameters
Problems
Features
========
With the MagicCube program you can visualize the movements of a magic cube in 3D.
You can command movements in the usual notation interactively and load sequences
of movements.
You can store the state of the actual cube and the performed movements.
You can also randomly disturb the cube and reset or solve it.
The provided solutions are based on layer by layer algorithms for beginners,no speed
cube algorithms.
The program has three windows, the 3D windows with the cube visualization with frontside
and the backside view and the console window. All commands are entered via the 3D windows.
Help, information and error messages are provided in the console window.
The cube can be in three modes (for Rubiks and CT mode see references below!):
0 = the classic, Rubiks mode with colours,
1 = the CT mode with characters that in the solution form three-letter abbreviations
from the IT world,
2 = the puzzle mode with images on each side of the cube.
If you don't like the images in puzzle mode you can exchange them by quadratic images of the
same or smaller size.
The program does NOT connect to the internet and does not store any personal data, but only
on command of the user the actual state of the cube or the performed movements.
References
==========
For the Rubiks cube in general:
https://en.wikipedia.org/wiki/Rubik%27s_Cube
https://de.wikipedia.org/wiki/Zauberw%C3%BCrfel
For the CT cube:
https://www.heise.de/ct/artikel/vertrac-t-Der-c-t-NerdCube-2765682.html
For the solution algorithms:
http://www.just-solve-it.de/solve-the-cube.htm
Licenses
========
MagicCube program
Copyright (c) 2018 Astrid Geck
All rights reserved.
This program is provided under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License, see GPL3_LICENSE.TXT.
The MagicCube program uses two open source libraries:
1) Visualization Library
http://visualizationlibrary.org
Copyright (c) 2005-2011, Michele Bosi, All rights reserved.
The library is provided with the license as written in VisualizationLibrary_LICENSE.TXT.
Two modifications have been applied to the original library,
1) in file GeometryPrimitives.cpp, to ease colouring of boxes used as sub cubes.
2) in file Applet.cpp to change the location where screenshots are stored:
from the program directory - often only accessible with administrator rights - to the
user home directory.
Source code of the library is provided as zip-file together with the source code of the
MagicCube program.
2) QT4 Library
http://www.qt.io
Copyright (C) 2015 The Qt Company Ltd, All rights reserved.
The library is provided under the terms of the GNU Lesser General Public License, version 3
of the License as published by the Free Software Foundation, see QT4_LGPLv3_LICENSE.TXT.
No modification has been applied to the library. Source code of the library is provided as
zip-file together with the source code of the MagicCube program.
Startup parameters
==================
You can set the program language (English or German) and inital cube mode in the ini-file
MagicCube.ini. If no language setting is provided in the ini-file and the system language
is English or German, the system language is taken. The default language is English. The
default mode is Rubiks mode.
Under Windows the program language is set during installation in the ini-file.
You can set the initial cube mode as command line parameter (overwriting the setting in the
ini_file):
startMC [<n>]
with n= 0 for Rubiks mode, =1 for CT mode and =2 for puzzle mode.
Problems
========
1) Fonts or images not found at startup: Always start the program via startMC.exe (Windows)
or startMC.sh (Linux), to set the path to the resource files correctly!
2) The program terminates directly after start: probably the program does not find all needed
DLLs/shared libraries.
Under Windows you need the DLLs from the visualization library provided with the magic
cube program installation (libVLCore.dll, libVLGraphics.dll and libVLQt4.dll), the DLLs
from the QT4 library provided with the magic cube program installation (Qt4Core.dll,
Qt4Gui.dll, QTopenGl4.dll and lpwinpthread-1.dll) and the opengl32 DLL (typically found
in C:\Windows\System32 and thus in the Windows search path).
Under Linux you need the shared libraries for the Visualization library provided with the
magic cube program installation (libVLCore.so, libVLGraphics.so and libVLQt4.so), the
shared libraries from the QT4 library (libQt4Core.so, libQt4Gui.so, libQtSVG.so and
libQtOpenGL4.so) provided with the magic cube program installation and libegl1-mesa,
libc6 and libstdc++6 (typically already installed on your system). The program and
the Visualization Library libs are compiled with _GLIBCXX_USE_CXX11_ABI=0, thus you
can run them as well with stdlibc++6 from GCC 4.6 as from newer GCC versions.
3) Under Windows return from full screen mode does not work reliably. This problem may
depend on graphic card capabilities. Under Windows 7 switching back to normal window
mode may results in a black screen. Activation of task manager with <Ctrl><Alt><Del>
resets to normal window mode, but the 3D windows content is no more updated. Under
Windows 10 switching back to normal window may result in queer flickering pixel errors
all over the screen. This can be repaired by activating system settings to change
the display resolution. The problem also occurs with the Visualization Library examples
programs.
4) Under Linux you get an error message
libpng warning: Application was compiled with png.h from libpng-1.6.21
libpng warning: Application is running with png.c from libpng-1.2.56
libpng error: Incompatible libpng version in application and library
Also the icon of the application is not shown.
The program does not use the version of the QT library as provided with the
installation, but a newer version installed on your system: use startMC.sh as
installed!
The program has been tested under Windows 10, Windows 7, Ubuntu 14.04, Ubuntu 16.04.05
(only version 1.1) and Ubuntu 18.04 (version >= 1.2).