The task is to implement convenient exploration of the 3D object using the popular "Trackball" system.
GUI for object rotation in front of the viewer. Imagine virtual invisible ball (trackball) connected rigidly to the examined object. Ball (as well as the object) have fixed center point but are able to rotate freely around it. Look at the demo video.
You may adopt implementation from the C# solution 038trackball.
More complicated object: look at the GlScene class and its usage in the initScene() function. Introduce some more interesting and complicated object using triangles, quads, lines, etc.
Momentum: the object doesn't stop immediately after you release the mouse button. If you just lash the mouse (release the button while in /fast/ motion), examined object still rotates for a small/longer period of time. If you release the button while standing still, no consequent movement should be introduced.
Documentation: write brief documentation about your sources, even if you were adopting the C# solution. Don't forget to include your new commands in the "Console help" (SDLK_F1 key).
Hand in before: 23. 4. 2017
Basis: 12 points for functional trackball implementation,
bonuses: up to 3 points for orthographic/perspective camera switch (with reasonable zoom-factor adjustment),
up to 9 points for implementation of momentum (object decelerates for a moment)
up to 4 points for nicer 3D object..
Visual Studio project: template01.
Modify and hand in the source file: main.cpp.
In the comment at the beginning of the file, please include your name!
Copyright (C) 2016-2017 J. Pelikán, last change: 2019-05-09 17:52:59 +0200 (Thu, 09 May 2019)