Some target platforms supply their own OpenGL headers, thus we cannot
use our own from ES 3.0 and compilation fails.
On the other hand, this will be better for users as usage of unsupported
features will be catched right during compilation and not at runtime.
* Camera is now templated also on underlying floating-point type.
* Drawable objects can be split into groups (e.g. for separated
rendering of transparent objects)
* Added (long time missing) test for draw() function.
The downside of this is that the functions are now virtual, which makes
them slower than before. Maybe final qualifier would help?
AbstractObject::sceneObject() is marked as private in Object to avoid
confusion.
By default implemented using rotate() so transformation implementers
don't need to bother, but MatrixTransformation3D reimplements it using
optimized rotation functions.
Functionality present in Object is now split into three main components:
* Object itself, handling parent/children relationships
* Transformation implementation and interfaces for common functionality
* Object features, providing transformation caching and base for
cameras, collision shapes, rigid bodies etc.
Some functionality depending on former implementation is temporarily
disabled and will be reworked later.
Builds and passes tests at least with GCC 4.6 and 4.7.
Conflicts:
src/CMakeLists.txt
src/Math/Matrix4.h
src/Math/Test/CMakeLists.txt
src/Mesh.cpp
src/MeshTools/CompressIndices.h
src/MeshTools/Tipsify.cpp
src/Physics/Test/ShapeGroupTest.cpp
src/Primitives/Icosphere.h
src/SceneGraph/Camera.cpp
src/Test/SwizzleTest.cpp
src/Trade/MeshData3D.cpp
src/magnumCompatibility.h
* Don't extract local classes.
* Don't include header code in documentation (the only purpose would be
to scare users off).
* Include template implementation files in documentation.