Vladimír Vondruš
45255ff597
Added asserts to object absolute transformation, added test.
14 years ago
Vladimír Vondruš
0ee95d51eb
Using Object::Transformation enum instead of bool.
...
Added just-to-be-sure unit test.
14 years ago
Vladimír Vondruš
ccf61c0f7f
Fixed typo in method name.
14 years ago
Vladimír Vondruš
0443bbe286
Caching light position relative to camera.
...
Saves one matrix*vector multiplication per object per frame. The
position can be now Vector3 like before, because it won't be multiplied
with anything on draw call. Added unit test.
14 years ago
Vladimír Vondruš
01162f2799
Added missing tests for object dirty status.
14 years ago
Vladimír Vondruš
c996e89fe7
Scene parent and transformation is now really immutable.
...
Improved parenting test, added test for transformation. Moved deleted
functions to public section, so the compiler prints error about deleted
functions, not about private functions.
14 years ago
Vladimír Vondruš
8761e1f636
Using "initializer-list" constructors for Matrix everywhere.
14 years ago
Vladimír Vondruš
596ab6b6a6
Removed MeshBuilder class, as it is finally not used anymore.
...
All features once provided by MeshBuilder are now part of MeshTools,
this class was just too complicated and required unnecessary data
copying.
14 years ago
Vladimír Vondruš
0945c50aa6
Removed "active camera" from Scene.
...
It was overengineered and unnecessarily complicated. Now the camera is
specified only in Scene::draw(), which eliminates all the needs for
recalculating absolute object transformations on each camera
transformation change. Absolute object transformation is now computed
relative to root object or relative to camera object passed as
parameter. Because of that it is now also possible to draw the scene
using multiple cameras at once.
14 years ago
Vladimír Vondruš
6e4523f162
Fixed memory leak in ObjectTest.
14 years ago
Vladimír Vondruš
37afb7bffe
Splitting tools from MeshBuilderBenchmark to MeshTools.
...
Moved unit tests and benchmarks accordingly.
15 years ago
Vladimír Vondruš
c11e691053
Cleaning overengineered MeshBuilder.
...
* Removed VertexPointer typedef, as size_t is somewhere 64bit and
OpenGL doesn't have corresponding data type. Using unsigned int
everywhere instead, to avoid confusion.
* Removed Face structure altogether, using vertex indices directly.
* Greatly reduced size of unit tests, also thanks to C++11
std::initializer_list feature.
15 years ago
Vladimír Vondruš
9fd88b700a
Using icosahedron primitive data in MeshBuilderBenchmark.
15 years ago
Vladimír Vondruš
b945f5f68b
Happy New Year.
15 years ago
Vladimír Vondruš
e5e7d95af4
Using nullptr instead of 0 everywhere.
15 years ago
Vladimír Vondruš
3c1f5392e8
Useful functions for making angle entering less error-prone.
...
Both functions convert the value to radians at compile time. For
example deg(180.0f) is converted to 3.14f. Less intuitive than
user-defined literals (C++11 feature), but works everywhere.
15 years ago
Vladimír Vondruš
614373e1af
Magnum now depends on Corrade.
...
Corrade will provide necessary things like plugin management and many
other useful utilities.
15 years ago
Vladimír Vondruš
459e6f868e
Total rewrite of slow MeshBuilder, cleanMesh() is now usably fast.
...
On 5-subdivided icosphere it performs 600 times better than previous
implementation.
15 years ago
Vladimír Vondruš
3b588e1950
Benchmark for MeshBuilder::subdivide() and cleanMesh().
...
Amazingly slow code.
15 years ago
Vladimír Vondruš
c56453cb37
Added function MeshBuilder::subdivide().
...
Argument is function or functor which does interpolation between two
adjacent vertices.
15 years ago
Vladimír Vondruš
c7b331d100
(Ahem...) Happy New Year!
15 years ago
Vladimír Vondruš
c30872a471
Class for building meshes from scratch or prefabricated data.
16 years ago
Vladimír Vondruš
38d4c8581c
Finally, camera matrix.
...
As matrix inversion is costly operation, the matrix is cached, so it's
regenerated only when the transformation / parent is changed.
16 years ago
Vladimír Vondruš
7f817851fa
Helpers for caching object transformations.
16 years ago
Vladimír Vondruš
23b8fb197f
Function for geting scene of an object.
...
Makes use of the fact that scene and only scene is parent of itself.
16 years ago
Vladimír Vondruš
c38a1993db
More robust object parenting.
16 years ago
Vladimír Vondruš
3f02de7ce1
Renamed AbstractObject -> Object, draw() is now dummy instead of pure virtual.
16 years ago
Vladimír Vondruš
57380e0681
Small pedantic fixes.
16 years ago
Vladimír Vondruš
9b6f3582e3
Orthographic and perspective camera projections.
16 years ago
Vladimír Vondruš
bb7627445b
Abstract base class for objects.
16 years ago
Vladimír Vondruš
c41d6ad582
New namespace Magnum::Math.
16 years ago
Vladimír Vondruš
4019c44899
Matrix4 class with matrix transform functions.
16 years ago
Vladimír Vondruš
e59e1111d4
Vector4 convenience class.
16 years ago
Vladimír Vondruš
eeb12e3414
Vector3 class with additional functions for three-component vectors.
16 years ago
Vladimír Vondruš
97e80f5df3
Function for multiplying vector with matrix.
16 years ago
Vladimír Vondruš
2a2d8c3dd5
Template vector class.
16 years ago
Vladimír Vondruš
8f0bacd2f8
Function for transposing matrix.
16 years ago
Vladimír Vondruš
8957b21719
Fixed Matrix multiplication & test, documentation updates.
16 years ago
Vladimír Vondruš
09d74422d9
Initial commit
16 years ago