Library of Assembled Shared Sources
lass::spat::DefaultObjectTraits< ObjectType, AabbType, RayType, ObjectIterator > Class Template Reference

default traits for objects to be stored in spatial subdivision trees More...

#include <default_object_traits.h>

Public Types

typedef ObjectType TObject
 type of nD object
 
typedef ObjectIterator TObjectIterator
 iterator to object
 
typedef const TObjectTObjectReference
 const reference to object
 
typedef void TInfo
 extra info for contain/intersect operations
 

Static Public Member Functions

static TObjectReference object (TObjectIterator it)
 return reference to object
 
static const TAabb objectAabb (TObjectIterator it)
 return the AABB of an object
 
static bool objectContains (TObjectIterator it, const TPoint &point, const TInfo *)
 return true if object contains a point, return false otherwise
 
static bool objectIntersect (TObjectIterator it, const TRay &ray, TReference t, TParam tMin, const TInfo *)
 return true if object is intersected by ray
 
static bool objectIntersects (TObjectIterator it, const TRay &ray, TParam tMin, TParam tMax, const TInfo *)
 return true if object is intersected by ray
 
static bool objectIntersects (TObjectIterator it, const TAabb &aabb, const TInfo *)
 return true if part of the object is inside the bounding box
 
static const TValue objectSquaredDistance (TObjectIterator it, const TPoint &point, const TInfo *)
 return squared distance between object and point)
 
static TValue objectSurfaceArea (TObjectIterator it)
 return surface area of object
 
static const TAabb aabbEmpty ()
 return empty AABB
 
static bool aabbContains (const TAabb &aabb, const TPoint &point)
 return true if AABB contains a point, return false otherwise
 
static bool aabbIntersect (const TAabb &aabb, const TRay &ray, TReference t, const TParam tMin)
 return true if AABB is intersected by ray
 
static bool aabbIntersect (const TAabb &aabb, const TRay &ray, const TVector &invDirection, TReference t, const TParam tMin)
 return true if AABB is intersected by ray, with the reciprocal ray direction already supplied.
 
static const TAabb aabbJoin (const TAabb &a, const TAabb &b)
 join two AABBs and return the result
 
static const TPoint aabbMin (const TAabb &aabb)
 return the minimum corner of the AABB
 
static const TPoint aabbMax (const TAabb &aabb)
 return the maximum corner of the AABB
 
static TValue aabbSurfaceArea (const TAabb &aabb)
 return surface area of the AABB
 
static const TPoint raySupport (const TRay &ray)
 return the support point of the ray
 
static const TVector rayDirection (const TRay &ray)
 return the direction vector of the ray
 
static const TPoint rayPoint (const TRay &ray, TParam t)
 return a point along the ray
 
static const TValue coord (const TPoint &point, size_t axis)
 return the axis coordinate value of point.
 
static void coord (TPoint &point, size_t axis, TParam value)
 set the axis coordinate value of point.
 
static const TValue coord (const TVector &vector, size_t axis)
 return the axis component value of vector.
 
static void coord (TVector &vector, size_t axis, TParam value)
 set the axis component value of vector.
 
static const TVector vectorReciprocal (const TVector &vector)
 return the reciprocal vector of vector
 

Detailed Description

template<typename ObjectType, typename AabbType = typename ObjectType::TAabb, typename RayType = typename ObjectType::TRay, typename ObjectIterator = const ObjectType*>
class lass::spat::DefaultObjectTraits< ObjectType, AabbType, RayType, ObjectIterator >

default traits for objects to be stored in spatial subdivision trees

Author
Bram de Greve [BdG]

Definition at line 237 of file default_object_traits.h.


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