1 #ifndef rl_RayMath_h_INCLUDED 2 #define rl_RayMath_h_INCLUDED 40 #include <dvm3/dvm3_rotmat.h> 101 inline static void rotate( dvm3_RotMat
const& rotmat,
102 dvm3_Vector& vector );
110 inline static void rotate( dvm3_RotMat
const& rotmat,
120 inline static void derotate( dvm3_RotMat
const& rotmat,
121 dvm3_Vector& vector );
130 inline static void derotate( dvm3_RotMat
const& rotmat,
141 dvm3_RotMat
const& rotmat,
142 dvm3_Vector& vector );
152 dvm3_RotMat
const& rotmat,
164 dvm3_RotMat
const& rotmat,
165 dvm3_Vector& vector );
175 dvm3_RotMat
const& rotmat,
198 dvm3_Vector& vector )
200 dvm3_Vector tmp( vector );
201 rotmat.mvmult( vector, tmp );
210 vm_V3Math<double>::copy(tmp, vector);
211 rotmat.mvmult( vector, tmp );
220 dvm3_Vector& vector )
222 dvm3_Vector tmp( vector );
223 rotmat.mtvmult( vector, tmp );
232 vm_V3Math<double>::copy(tmp, vector);
233 rotmat.mtvmult( vector, tmp );
242 dvm3_RotMat
const& rotmat,
243 dvm3_Vector& vector )
246 dvm3_Vector tmp( vector );
247 rotmat.mvmult( vector, tmp );
253 dvm3_RotMat
const& rotmat,
256 vm_V3Math<double>::add_eq( vector, trans );
258 vm_V3Math<double>::copy(tmp, vector);
259 rotmat.mvmult( vector, tmp );
268 dvm3_RotMat
const& rotmat,
269 dvm3_Vector& vector )
271 dvm3_Vector tmp( vector );
272 rotmat.mtvmult( vector, tmp );
279 dvm3_RotMat
const& rotmat,
283 vm_V3Math<double>::copy(tmp, vector);
284 rotmat.mtvmult( vector, tmp );
285 vm_V3Math<double>::sub_eq( vector, trans );
static void derotate_detranslate(dvm3_Vector const &trans, dvm3_RotMat const &rotmat, dvm3_Vector &vector)
Rotate from BCS to STD coordinates, then translate back to original position.
A class gathering together static methods for operations on ray position or direction vectors.
static void translate_rotate(dvm3_Vector const &trans, dvm3_RotMat const &rotmat, dvm3_Vector &vector)
Translate to BCS origin, then rotate from STD to BCS coordinates.
static void derotate(dvm3_RotMat const &rotmat, dvm3_Vector &vector)
De-rotate vector from BCS coordinates back to STD coordinates.
static void rotate(dvm3_RotMat const &rotmat, dvm3_Vector &vector)
Rotate vector from STD coordinates to BCS coordinates.