OGRE-Next  2.3
Object-Oriented Graphics Rendering Engine
Ogre::ArraySphere Class Reference

Cache-friendly array of Sphere represented as a SoA array. More...

#include <OgreArraySphere.h>

Public Member Functions

 ArraySphere ()
 
 ArraySphere ()
 
 ArraySphere ()
 
 ArraySphere (const ArrayReal &radius, const ArrayVector3 &center)
 
 ArraySphere (const ArrayReal &radius, const ArrayVector3 &center)
 
 ArraySphere (const ArrayReal &radius, const ArrayVector3 &center)
 
Sphere getAsSphere (size_t index) const
 Prefer using. More...
 
Sphere getAsSphere (size_t index) const
 Prefer using. More...
 
Sphere getAsSphere (size_t index) const
 Prefer using. More...
 
void getAsSphere (Sphere &out, size_t index) const
 
void getAsSphere (Sphere &out, size_t index) const
 
void getAsSphere (Sphere &out, size_t index) const
 
ArrayMaskR intersects (const ArrayAabb &aabb) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayMaskR intersects (const ArrayAabb &aabb) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayReal intersects (const ArrayAabb &aabb) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayMaskR intersects (const ArraySphere &s) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayMaskR intersects (const ArraySphere &s) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayReal intersects (const ArraySphere &s) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayMaskR intersects (const ArrayVector3 &v) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayMaskR intersects (const ArrayVector3 &v) const
 Returns whether or not this sphere intersects another sphere. More...
 
ArrayReal intersects (const ArrayVector3 &v) const
 Returns whether or not this sphere intersects another sphere. More...
 
void setAll (const Sphere &sphere)
 Sets all packed spheres to the same value as the scalar input sphere. More...
 
void setAll (const Sphere &sphere)
 Sets all packed spheres to the same value as the scalar input sphere. More...
 
void setAll (const Sphere &sphere)
 Sets all packed spheres to the same value as the scalar input sphere. More...
 
void setFromSphere (const Sphere &sphere, size_t index)
 
void setFromSphere (const Sphere &sphere, size_t index)
 
void setFromSphere (const Sphere &sphere, size_t index)
 

Public Attributes

ArrayVector3 mCenter
 
ArrayReal mRadius
 

Detailed Description

Cache-friendly array of Sphere represented as a SoA array.

Remarks
ArraySphere is a SIMD & cache-friendly version of Sphere. @See ArrayVector3 for more information.
Extracting one sphere needs 64 bytes, which is within the 64 byte size of common cache lines. Architectures where the cache line == 32 bytes may want to set ARRAY_PACKED_REALS = 2 depending on their needs

Constructor & Destructor Documentation

◆ ArraySphere() [1/6]

Ogre::ArraySphere::ArraySphere ( )
inline

◆ ArraySphere() [2/6]

Ogre::ArraySphere::ArraySphere ( const ArrayReal radius,
const ArrayVector3 center 
)
inline

◆ ArraySphere() [3/6]

Ogre::ArraySphere::ArraySphere ( )
inline

◆ ArraySphere() [4/6]

Ogre::ArraySphere::ArraySphere ( const ArrayReal radius,
const ArrayVector3 center 
)
inline

◆ ArraySphere() [5/6]

Ogre::ArraySphere::ArraySphere ( )
inline

◆ ArraySphere() [6/6]

Ogre::ArraySphere::ArraySphere ( const ArrayReal radius,
const ArrayVector3 center 
)
inline

Member Function Documentation

◆ getAsSphere() [1/6]

Sphere Ogre::ArraySphere::getAsSphere ( size_t  index) const
inline

Prefer using.

See also
getAsSphere() because this function may have more overhead (the other one is faster)

◆ getAsSphere() [2/6]

Sphere Ogre::ArraySphere::getAsSphere ( size_t  index) const
inline

Prefer using.

See also
getAsSphere() because this function may have more overhead (the other one is faster)

◆ getAsSphere() [3/6]

Sphere Ogre::ArraySphere::getAsSphere ( size_t  index) const
inline

Prefer using.

See also
getAsSphere() because this function may have more overhead (the other one is faster)

◆ getAsSphere() [4/6]

void Ogre::ArraySphere::getAsSphere ( Sphere out,
size_t  index 
) const
inline

◆ getAsSphere() [5/6]

void Ogre::ArraySphere::getAsSphere ( Sphere out,
size_t  index 
) const
inline

◆ getAsSphere() [6/6]

void Ogre::ArraySphere::getAsSphere ( Sphere out,
size_t  index 
) const
inline

◆ intersects() [1/9]

ArrayMaskR Ogre::ArraySphere::intersects ( const ArrayAabb aabb) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [2/9]

ArrayMaskR Ogre::ArraySphere::intersects ( const ArrayAabb aabb) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [3/9]

ArrayReal Ogre::ArraySphere::intersects ( const ArrayAabb aabb) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [4/9]

ArrayMaskR Ogre::ArraySphere::intersects ( const ArraySphere s) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [5/9]

ArrayMaskR Ogre::ArraySphere::intersects ( const ArraySphere s) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [6/9]

ArrayReal Ogre::ArraySphere::intersects ( const ArraySphere s) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [7/9]

ArrayMaskR Ogre::ArraySphere::intersects ( const ArrayVector3 v) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [8/9]

ArrayMaskR Ogre::ArraySphere::intersects ( const ArrayVector3 v) const
inline

Returns whether or not this sphere intersects another sphere.

◆ intersects() [9/9]

ArrayReal Ogre::ArraySphere::intersects ( const ArrayVector3 v) const
inline

Returns whether or not this sphere intersects another sphere.

◆ setAll() [1/3]

void Ogre::ArraySphere::setAll ( const Sphere sphere)
inline

Sets all packed spheres to the same value as the scalar input sphere.

References Ogre::Sphere::getCenter(), Ogre::Sphere::getRadius(), Ogre::ArrayVector3::mChunkBase, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

◆ setAll() [2/3]

void Ogre::ArraySphere::setAll ( const Sphere sphere)
inline

Sets all packed spheres to the same value as the scalar input sphere.

References Ogre::Sphere::getCenter(), Ogre::Sphere::getRadius(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

◆ setAll() [3/3]

void Ogre::ArraySphere::setAll ( const Sphere sphere)
inline

Sets all packed spheres to the same value as the scalar input sphere.

References Ogre::Sphere::getCenter(), Ogre::Sphere::getRadius(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

◆ setFromSphere() [1/3]

void Ogre::ArraySphere::setFromSphere ( const Sphere sphere,
size_t  index 
)
inline

◆ setFromSphere() [2/3]

void Ogre::ArraySphere::setFromSphere ( const Sphere sphere,
size_t  index 
)
inline

◆ setFromSphere() [3/3]

void Ogre::ArraySphere::setFromSphere ( const Sphere sphere,
size_t  index 
)
inline

Member Data Documentation

◆ mCenter

ArrayVector3 Ogre::ArraySphere::mCenter

◆ mRadius

ArrayReal Ogre::ArraySphere::mRadius

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