Vladimír Vondruš
3126d0947d
Math: "checked" function for inverting normalized Quaternion.
14 years ago
Vladimír Vondruš
3b57d530a4
Math: test also properties of normalized Quaternion.
14 years ago
Vladimír Vondruš
c841c63b34
Doc++
14 years ago
Vladimír Vondruš
7ae00deee7
Math: removed constexpr from non-trivial Quaternion methods.
...
They will probably involve SIMD operations, which cannot be implemented
as constexpr.
14 years ago
Vladimír Vondruš
fcb8a7b768
Got rid of header files in tests.
...
They have no practical use and they only bloat codebase size and add
maintenance burden.
14 years ago
Vladimír Vondruš
89c2bf913c
Math: initial implementation of Quaternion class.
...
Still practically unusable.
14 years ago
Vladimír Vondruš
89f5200aae
Minor code cleanup.
14 years ago
Vladimír Vondruš
21337dafc0
Doc++
14 years ago
Vladimír Vondruš
e506951829
Math: functions for bottom right and top left Rectangle corners.
14 years ago
Vladimír Vondruš
a7a4c28c03
Math: ability to create Rectangle from other of arbitrary type.
14 years ago
Vladimír Vondruš
f9f848d94c
Math: ability to multiply and divide Vector with other of arbitrary type.
14 years ago
Vladimír Vondruš
7905a5e96c
Math: return proper type from Vector::projected() in subclasses.
14 years ago
Vladimír Vondruš
423beaebeb
Bring Math::Geometry::Rectangle to Magnum namespace.
14 years ago
Vladimír Vondruš
bc2f98266e
Math: debug output operator for Rectangle.
14 years ago
Vladimír Vondruš
c4b6e5ea33
Math: helper Rectangle class.
14 years ago
Vladimír Vondruš
4a6e0b6dfa
Math: Gram-Schmidt orthonormalization.
14 years ago
Vladimír Vondruš
5de5b34c48
Math: function for projecting vector onto another.
14 years ago
Vladimír Vondruš
d981090e86
Functions for inverting Euclidean transformation matrices.
14 years ago
Vladimír Vondruš
e9e0de70d7
Implemented reflection matrices.
...
Long-standing TODO, can be used for in-game mirrors etc. I give up with
shearing, as I think that it makes sense only in 2D and I can't find any
reasonable use case for that yet.
14 years ago
Vladimír Vondruš
6ae94bffd7
Ability to construct Matrix from rotation/scaling and translation parts.
14 years ago
Vladimír Vondruš
6e6e53886d
Removed dead code.
14 years ago
Vladimír Vondruš
7e66a09461
Marking all constructors explicit, except for matrix and vector classes.
...
It prevents unwanted implicit conversions from e.g. nullptr to Camera,
Vector2 to Physics::Point etc. By making all the constructors explicit
it is easier to routinely add the keyword to all new classes instead of
thinking about cases when to add and when not to.
14 years ago
Vladimír Vondruš
3b37dfa6b8
Deleted constructors of classes with only static members.
...
They shouldn't be instantiated, prevent mistakes with this.
14 years ago
Vladimír Vondruš
b70b2777b3
Using Math::swizzle() in Vector3::cross().
...
Inspired by http://stackoverflow.com/a/5150625 .
14 years ago
Vladimír Vondruš
ef779e50b2
Split out lightweight base of swizzle() function to Math namespace.
...
Will make use of SIMD instructions and can be used elsewhere in Math.
14 years ago
Vladimír Vondruš
47c0a7456c
Adapted to Corrade changes.
...
Removing of another <*stream> #include leads to more compilation time
saving, now from ~5:12 to ~4:55. Another compilation time improvements
will now be possible only by using Clang's modules, I don't know where
to optimize further (except for getting rid of <sstream> in tests).
14 years ago
Vladimír Vondruš
9ead1e9deb
Thorough documentation review and update.
...
Now whole Magnum, Magnum::SceneGraph and Magnum::Math namespaces are
fully documented -- each class has at least "getting started"
documentation, larger modules are documented on separate pages.
14 years ago
Vladimír Vondruš
0f889369f4
No `using namespace std` anywhere.
...
Also added missing std:: prefix to remaining cases of std::size_t,
std::[u]int[0-9]+_t, std::sin() etc., std::exit().
14 years ago
Vladimír Vondruš
c319962d6e
Adapted to Corrade changes.
14 years ago
Vladimír Vondruš
ae013effff
Adapted to Corrade changes.
...
Optimalizations in Corrade::TestSuite and Corrade::Utility::Debug leaded
to significant reduction of compilation time - on my machine it was
~5:38 before with building of unit tests enabled, now only ~5:00.
14 years ago
Vladimír Vondruš
12817b505d
Test vector component accessors.
...
Really. To be sure. Forever.
14 years ago
Vladimír Vondruš
c3462ea266
Doc++
14 years ago
Vladimír Vondruš
a9d2062efe
More checks for sanity of Matrix4::rotation().
...
These should be true for all rotation matrices.
14 years ago
Vladimír Vondruš
049523cb74
Worked around long-standing Doxygen warnings.
14 years ago
Vladimír Vondruš
6dbdf58476
Component-wise comparison for Vector class.
14 years ago
Vladimír Vondruš
f184c6f005
Using real class for testing configuration value parsing.
14 years ago
Vladimír Vondruš
8a3d2c12c6
Doc++
...
Crosslinked types from Math namespace with typedefs in Magnum namespace.
14 years ago
Vladimír Vondruš
438bd52bf3
Doc++
14 years ago
Vladimír Vondruš
8e3e3ac6d3
Doc++
14 years ago
Vladimír Vondruš
6dda7e4c1f
Convenience functions for accessing Matrix[34] vectors.
14 years ago
Vladimír Vondruš
a3c37cd277
Doc++, minor cleanup.
14 years ago
Vladimír Vondruš
1e2720eeb7
Explicit template instantiation for common matrix and vector functions.
...
Common types used in OpenGL have now explicit template instantiation for
debug operators and configuration value parsers/readers.
14 years ago
Vladimír Vondruš
9d9517c824
Vector::angle(): reflect normalization requirement in parameter names.
...
Will be more intuitive when IDE autocompletion kicks in.
14 years ago
Vladimír Vondruš
350fb3a64c
Fixed documentation of Vector::angle().
14 years ago
Vladimír Vondruš
b5fc786478
Renamed Matrix4::[xyz]Rotation() to Matrix4::rotation[XYZ]().
...
* "Rotation around [XYZ]" makes more sense than "[XYZ] axis rotation".
* This naming will appear in autocompletion.
* SceneGraph transformation methods will be named similarly
rotate[XYZ]() (because [xyz]Rotate() is weird even more).
14 years ago
Vladimír Vondruš
f707e91599
Better parameter names in Matrix transformation methods.
...
Mainly it is now explicitly stated in parameter name that rotation axis
must be normalized.
14 years ago
Vladimír Vondruš
bf55b5854b
TypeTraits: Default inheritance type for structs is public.
...
Simplified already too long lines.
14 years ago
Vladimír Vondruš
f28f5398d3
Added some @todos .
14 years ago
Vladimír Vondruš
f2a569de0e
Workarounds to make Doxygen happy.
14 years ago
Vladimír Vondruš
c1cf94fb46
Using fixed-size integer types also everywhere else.
...
It solves issues with int/long int/long long int ambiguity, which is
good.
14 years ago