Vladimír Vondruš
8e562316e8
Math: creating DualComplex from Vector2.
13 years ago
Vladimír Vondruš
7aac5bd70b
Math: no need for Complex::transformVectorNormalized().
...
Unlike quaternions it doesn't need inversion or normalization for
transforming vectors.
13 years ago
Vladimír Vondruš
90f5a006c4
Math: reworked DualComplex to actually work.
...
The tests now pass and it works similarly to transformation matrix
multiplication/inversion in 2D, but it hasn't any connection to dual
numbers anymore.
13 years ago
Vladimír Vondruš
8ff9118275
Math: test DualComplex transformation combination.
...
Also fails.
13 years ago
Vladimír Vondruš
5e2f8db651
Math: test also that DualComplex transformations are normalized.
...
Fails for translation.
13 years ago
Vladimír Vondruš
c019dc7781
Math: test that transformation (dual) complex/quat is normalized.
13 years ago
Vladimír Vondruš
bdc02ddd19
Math: translation dual complex number.
13 years ago
Vladimír Vondruš
1a5e18564e
Math: rotation dual complex number.
13 years ago
Vladimír Vondruš
fbac6662fa
Math: inversion of DualComplex.
13 years ago
Vladimír Vondruš
d7bfd91398
Math: length and normalization of DualComplex.
13 years ago
Vladimír Vondruš
f6d1a158f8
Math: initial implementation of dual complex numbers.
13 years ago
Vladimír Vondruš
e522293c22
Math: forgot to test DualQuaternion::invertedNormalized().
13 years ago
Vladimír Vondruš
143783004b
Math: make Complex::invertedNormalized() consistent with Quaternion.
13 years ago
Vladimír Vondruš
d0fe15737a
Math: mark complex conjugate with asterisk, not overline.
...
Makes it consistent with quaternion conjugate and less confusing for
future DualComplex implementation (as dual conjugate is with overline
too).
13 years ago
Vladimír Vondruš
c847e1551f
Math: "dot product" of Complex is real number.
...
Brain failure #2 . Also I don't know if such thing as dot product exists
here :-)
13 years ago
Vladimír Vondruš
1eea843538
Math: don't allow implicit conversion of T to Complex<T>.
...
Brain failure #1 .
13 years ago
Vladimír Vondruš
6edc26ff01
Math: more explicit Quaternion-from-Vector constructor test.
...
For better readability, nothing more.
13 years ago
Vladimír Vondruš
6ed315b79b
Math: properly test constexpr in Complex from Vector2 constructor.
13 years ago
Vladimír Vondruš
e8e2b5d548
Math: constexpr internal DualQuaternion constructor.
13 years ago
Vladimír Vondruš
b0d79bbad8
Math: minor code cleanup.
13 years ago
Vladimír Vondruš
2468d2497f
Math: doc++
13 years ago
Vladimír Vondruš
fab0aa1544
Math: expect fail on non-uniform scaling in Matrix*::rotation().
...
Not implemented yet, added TODO.
13 years ago
Jakub Suchý
e432d3dc3c
Doc fix
13 years ago
Vladimír Vondruš
4c8cf7c8fa
Include cleanup.
13 years ago
Vladimír Vondruš
c00195c24b
MeshTools: reworked and updated transform*().
...
Also added just-to-be-sure unit test.
13 years ago
Vladimír Vondruš
b847eee750
Brought Complex and DualQuaternion to Magnum namespace.
13 years ago
Vladimír Vondruš
02235a5a49
Math: forgot to add Complex to forward-declaration header.
13 years ago
Vladimír Vondruš
d59b620fd9
Math: transforming vectors with complex numbers.
13 years ago
Vladimír Vondruš
93952cd72a
Math: converting Vector2 to Complex and back.
13 years ago
Vladimír Vondruš
8aade86571
Math: converting complex number to rotation matrix.
13 years ago
Vladimír Vondruš
e7ceddf0fc
Math: rotation complex number.
13 years ago
Vladimír Vondruš
4ebd204482
Math: angle between two complex numbers.
...
Also crosslinked the documentation with similar functions in Vector and
Quaternion.
13 years ago
Vladimír Vondruš
fc8750c51f
Math: conjugation and inversion of complex numbers.
...
Also updated related Quaternion and DualQuaternion documentation.
13 years ago
Vladimír Vondruš
728b9a3f2e
Math: construct identity transformation by default.
...
Square matrices already had that, (dual) quaternions too, making that
the default also with complex numbers. Updated the documentation to
reflect that.
13 years ago
Vladimír Vondruš
dc5a19f952
Math: complex number dot product, length and normalization.
13 years ago
Vladimír Vondruš
b509ff02ea
Math: complex number multiplication.
13 years ago
Vladimír Vondruš
d2af088880
Math: doc++
13 years ago
Vladimír Vondruš
4ad85dceca
Math: fixed debug output operator for Deg and Rad.
...
It was currently not possible to print this, as the resulting type is
neither Deg nor Rad:
Debug() << 23.0_degf - 5.0_degf;
13 years ago
Vladimír Vondruš
9464e805e1
Use {} instead of "".
...
Calls default std::string constructor instead of converting from const
char*, might possibly save unneeded allocation.
13 years ago
Vladimír Vondruš
723488fe97
Added QtCreator stuff to .gitignore.
13 years ago
Vladimír Vondruš
f58d152df3
Math: use lengthSquared() instead of length() squared.
...
Forgot to change this to avoid sqrt().
13 years ago
Vladimír Vondruš
d1f222d8d9
Math: don't include Functions.h in Quaternion only for T squared.
13 years ago
Vladimír Vondruš
9dbd8c9356
Math: renamed Quaternion::rotateVector*() to transformVector*().
...
Now it is consistent with Matrix and can be easily used in templates.
13 years ago
Vladimír Vondruš
a7f7e76da8
Added TODOs.
13 years ago
Vladimír Vondruš
58d156bc47
Math: removed Point2D/Point3D altogether.
13 years ago
Vladimír Vondruš
865c9d5eed
Removed DimensionTraits::PointType.
...
Not needed anymore.
13 years ago
Vladimír Vondruš
3de3a6861e
MeshTools: got rid of Point2D/3D in favor of Vector2/Vector3.
13 years ago
Vladimír Vondruš
33f3a0a7dd
Physics: removed unneeded includes.
13 years ago
Vladimír Vondruš
faf94c74e2
Adapted to recent meshdata/shader changes.
13 years ago
Vladimír Vondruš
616a31f4d2
Shaders: got rid of Point2D/3D in positions in favor of Vector2/Vector3.
...
Originally it was for more convenient usage of homogeneous coordinates
in shaders themselves, but it is actually not needed:
* When passing three-component vector (3D position) to `vec4`, the last
coordinate is implicitly set to `1`, thus there is no need to pass it
explicitly in each attribute.
* On the other hand, when passing three-component vector (2D position
in homogeneous coordinates) to `vec3` with Z explicitly set to `1`,
it still needs some swizzle magic to extend it to `vec4` gl_Position.
Passing it as two-component vector results in nearly the same magic
while saving precious memory.
13 years ago