#include <esve/engine/dim4/impl/Transform.hxx>
Inheritance diagram for esve::engine::dim4::impl::Transform:

Public Member Functions | |
| void | left_act (const Transform &left) |
| *this := left * (*this) | |
| void | right_act (const Transform &right) |
| *this := (*this) * right | |
| void | act (const Transform &action, const Transform &basis) |
| General differential action. | |
| void | identity () |
| *this := 1 | |
| void | invert () |
| *this := (*this)^(-1) | |
| void | assign (const Transform &h) |
| *this := t | |
| void | normalize () |
| Snap to upper-triangular with unitary diagonal elements. | |
| bool | operator== (const Transform &h) const |
| Equal by value. | |
| bool | operator!= (const Transform &h) const |
| Unequal by value. | |
| Transform () | |
| Construct the identity. | |
| Transform (const types::quat &a, const types::quat &b, const types::quat &c, const types::quat &d) | |
| Construct with these matrix elements. See engine::dim4::Transform. | |
| const types::quat & | a () const |
| Upper-left. | |
| void | a (const types::quat &a) |
| Upper-left. | |
| const types::quat & | b () const |
| Upper-right. | |
| void | b (const types::quat &b) |
| Upper-right. | |
| const types::quat & | c () const |
| Lower-left. | |
| void | c (const types::quat &c) |
| Lower-left. | |
| const types::quat & | d () const |
| Lower-right. | |
| void | d (const types::quat &d) |
| Lower-right. | |
Actions | |
Relative actions on the current state. The basis argument is similarity-conjugated: *this := basis*action*(basis)^(-1)*(*this)
| |
| virtual void | rotate (types::real alpha, types::real beta, const types::quat &r, const types::quat &s, const Transform &basis=IDENTITY)=0 |
| Rotate by angle alpha in the (r, s) plane; rotate by angle beta in the (r, s)-complement plane. | |
| virtual void | rotate (types::real alpha, types::real beta, const types::pure &u, const Transform &basis=IDENTITY)=0 |
| Rotate by angle alpha in the (1, u) plane; rotate by angle beta in the (1, u)-complement plane. | |
| virtual void | translate (const types::quat &r, const Transform &basis=IDENTITY)=0 |
| Move the local origin from g to g' = g + r. | |
| virtual void | invertate (const types::quat &r, const Transform &basis=IDENTITY)=0 |
| Move the local infinity from h to h' per the relation (h')^(-1) = h^(-1) + r. | |
| virtual void | scalate (types::real gamma, const Transform &basis=IDENTITY)=0 |
| Scale from the current state by a factor of gamma. | |
Static Public Attributes | |
| const Transform & | IDENTITY |
| The group identity element. | |
|
|
Snap to upper-triangular with unitary diagonal elements. In other words, remove inversion and scaling, leaving only the rotation group with translations. After normalize(), the transformation will be of the form f(z) = a*z*conj(d) + b*conj(d) Implements esve::engine::dim4::Transform. |
|
||||||||||||||||||||||||
|
Rotate by angle alpha in the (r, s) plane; rotate by angle beta in the (r, s)-complement plane. Orientation is positive with r rotating toward s.
|
|
||||||||||||||||||||
|
Rotate by angle alpha in the (1, u) plane; rotate by angle beta in the (1, u)-complement plane. Orientation is positive with 1 rotating toward u.
|
1.3.4