Om  1.0.0
A universal framework for multimedia simulation
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
om::math::SIMDAABB3D< T, 4 > Class Template Reference

A class that represents a set of 3D vectors stored in a SIMD-compatible format. More...

#include <omSIMDAABB3D.h>

Public Member Functions

 SIMDAABB3D ()
 Create a SIMD axis-aligned bounding box that has all components initialized to zero. More...
 
 SIMDAABB3D (const AABB3D< T > &aabb)
 Create a SIMD axis-aligned bounding box from a single bounding box. More...
 
 SIMDAABB3D (const AABB3D< T > &aabb1, const AABB3D< T > &aabb2, const AABB3D< T > &aabb3, const AABB3D< T > &aabb4)
 Create a SIMD axis-aligned bounding box from the four specified bounding boxes. More...
 
const SIMDVector3D< T, 4 > & getMinMax (Index i) const
 Get either the minimal or maximal vertex of this AABB. More...
 

Static Public Member Functions

static Size getAlignment ()
 Return the alignment required for objects of this type. More...
 
static Size getWidth ()
 Get the width of this vector (number of 3D vectors it has). More...
 

Public Attributes

SIMDVector3D< T, 4 > min
 The minimum coordinate vectors for this SIMD axis-aligned bounding box. More...
 
SIMDVector3D< T, 4 > max
 The maximum coordinate vectors for this SIMD axis-aligned bounding box. More...
 

Detailed Description

template<typename T>
class om::math::SIMDAABB3D< T, 4 >

A class that represents a set of 3D vectors stored in a SIMD-compatible format.

This class is used to store and operate on a set of axis-aligned bounding boxes in a SIMD fashion. The bounding boxes are stored in a structure-of-arrays format that accelerates SIMD operations. Each bounding box is specified by a minimum and maximum vertex coordinate.

Constructor & Destructor Documentation

template<typename T >
om::math::SIMDAABB3D< T, 4 >::SIMDAABB3D ( )
inline

Create a SIMD axis-aligned bounding box that has all components initialized to zero.

template<typename T >
om::math::SIMDAABB3D< T, 4 >::SIMDAABB3D ( const AABB3D< T > &  aabb)
inline

Create a SIMD axis-aligned bounding box from a single bounding box.

template<typename T >
om::math::SIMDAABB3D< T, 4 >::SIMDAABB3D ( const AABB3D< T > &  aabb1,
const AABB3D< T > &  aabb2,
const AABB3D< T > &  aabb3,
const AABB3D< T > &  aabb4 
)
inline

Create a SIMD axis-aligned bounding box from the four specified bounding boxes.

Member Function Documentation

template<typename T >
const SIMDVector3D<T,4>& om::math::SIMDAABB3D< T, 4 >::getMinMax ( Index  i) const
inline

Get either the minimal or maximal vertex of this AABB.

If the index parameter is 0, the minimal vertex is returned, if the index parameter is 1, the maximal vertex is returned. Otherwise the result is undefined.

template<typename T >
static Size om::math::SIMDAABB3D< T, 4 >::getAlignment ( )
inlinestatic

Return the alignment required for objects of this type.

For most SIMD types this value will be 16 bytes. If there is no alignment required, 0 is returned.

template<typename T >
static Size om::math::SIMDAABB3D< T, 4 >::getWidth ( )
inlinestatic

Get the width of this vector (number of 3D vectors it has).

Member Data Documentation

template<typename T >
SIMDVector3D<T,4> om::math::SIMDAABB3D< T, 4 >::min

The minimum coordinate vectors for this SIMD axis-aligned bounding box.

template<typename T >
SIMDVector3D<T,4> om::math::SIMDAABB3D< T, 4 >::max

The maximum coordinate vectors for this SIMD axis-aligned bounding box.


The documentation for this class was generated from the following file: