SOFUS ..
|
The core functionality is implemented using a number of mathematical structures or primitives. The structures are templated to facilitate both single and double precision and alignments to support SIMD instructions - either as a result of a compiler optimizing the code or as a results of the programmers use of intrinsics or inline assembly.
The mathematical primitives are:
Vector used for either positions or directions
Rectangle made up of four positions (vertices)
A set of 3 Euler angles for intrinsic rotations using the y-x-y'-convention.
Axis-parallel bounding box used for fast parallel computation and to optimize the cache usage. It is represented using two points for minimum and maximum range of x,y, and z.
sps::element_t
Element represented using two scalars for its half width, and half height, a center position, and a set of Euler angles for its orientation.
The structure further contains a number of variables used for caching, vectors used for orientation and vertices for display. These structures are read-only for the user.
A transducer or transducer array can be constructed using a number of primitives. Explain how: