Tesseract
Motion Planning Environment
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
tesseract_collision::VHACD Namespace Reference

Classes

class  CircularList
 CircularList class. More...
 
class  CircularListElement
 CircularListElement class. More...
 
class  ICHull
 
class  IVHACD
 
struct  Material
 
class  Mesh
 Triangular mesh data structure. More...
 
class  Mutex
 
class  MyHACD_API
 
struct  Plane
 
class  PrimitiveSet
 
class  RaycastMesh
 
class  SArray
 SArray. More...
 
struct  Tetrahedron
 
class  TetrahedronSet
 
class  Timer
 
class  TMMEdge
 Edge data structure used in a triangular manifold mesh (TMM). More...
 
class  TMMesh
 triangular manifold mesh data structure. More...
 
class  TMMTriangle
 Triangle data structure used in a triangular manifold mesh (TMM). More...
 
class  TMMVertex
 Vertex data structure used in a triangular manifold mesh (TMM). More...
 
class  Vec2
 Vector dim 2. More...
 
class  Vec3
 Vector dim 3. More...
 
class  VHACD
 
class  Volume
 
struct  Voxel
 
class  VoxelSet
 

Enumerations

enum  ICHullError {
  ICHullErrorOK = 0 , ICHullErrorCoplanarPoints , ICHullErrorNoVolume , ICHullErrorInconsistent ,
  ICHullErrorNotEnoughPoints
}
 Incremental Convex Hull algorithm (cf. http://cs.smith.edu/~orourke/books/ftp.html ). More...
 
enum  AXIS { AXIS_X = 0 , AXIS_Y = 1 , AXIS_Z = 2 }
 
enum  VOXEL_VALUE { PRIMITIVE_UNDEFINED = 0 , PRIMITIVE_OUTSIDE_SURFACE = 1 , PRIMITIVE_INSIDE_SURFACE = 2 , PRIMITIVE_ON_SURFACE = 3 }
 

Functions

template<typename T >
bool Colinear (const Vec3< T > &a, const Vec3< T > &b, const Vec3< T > &c)
 
template<typename T >
const T ComputeVolume4 (const Vec3< T > &a, const Vec3< T > &b, const Vec3< T > &c, const Vec3< T > &d)
 
template<typename T >
Vec3< Toperator* (T lhs, const Vec3< T > &rhs)
 
template<typename T >
Vec2< Toperator* (T lhs, const Vec2< T > &rhs)
 
template<typename T >
bool InsideTriangle (const Vec2< T > &a, const Vec2< T > &b, const Vec2< T > &c, const Vec2< T > &p)
 
int32_t TriBoxOverlap (const Vec3< double > &boxcenter, const Vec3< double > &boxhalfsize, const Vec3< double > &triver0, const Vec3< double > &triver1, const Vec3< double > &triver2)
 
template<class T >
void ComputeAlignedPoint (const T *const points, const uint32_t idx, const Vec3< double > &barycenter, const double(&rot)[3][3], Vec3< double > &pt)
 
template<>
void ComputeAlignedPoint< float > (const float *const points, const uint32_t idx, const Vec3< double > &barycenter, const double(&rot)[3][3], Vec3< double > &pt)
 
template<>
void ComputeAlignedPoint< double > (const double *const points, const uint32_t idx, const Vec3< double > &barycenter, const double(&rot)[3][3], Vec3< double > &pt)
 
IVHACDCreateVHACD ()
 
IVHACDCreateVHACD_ASYNC ()
 
double ComputePreferredCuttingDirection (const PrimitiveSet *const tset, Vec3< double > &dir)
 
void ComputeAxesAlignedClippingPlanes (const VoxelSet &vset, const short downsampling, SArray< Plane > &planes)
 
void ComputeAxesAlignedClippingPlanes (const TetrahedronSet &tset, const short downsampling, SArray< Plane > &planes)
 
void RefineAxesAlignedClippingPlanes (const VoxelSet &vset, const Plane &bestPlane, const short downsampling, SArray< Plane > &planes)
 
void RefineAxesAlignedClippingPlanes (const TetrahedronSet &tset, const Plane &bestPlane, const short downsampling, SArray< Plane > &planes)
 
double ComputeLocalConcavity (const double volume, const double volumeCH)
 
double ComputeConcavity (const double volume, const double volumeCH, const double volume0)
 
void AddPoints (const Mesh *const mesh, SArray< Vec3< double > > &pts)
 
void ComputeConvexHull (const Mesh *const ch1, const Mesh *const ch2, SArray< Vec3< double > > &pts, Mesh *const combinedCH)
 
int32_t PlaneBoxOverlap (const Vec3< double > &normal, const Vec3< double > &vert, const Vec3< double > &maxbox)
 
void Diagonalize (const double(&A)[3][3], double(&Q)[3][3], double(&D)[3][3])
 

Enumeration Type Documentation

◆ AXIS

Enumerator
AXIS_X 
AXIS_Y 
AXIS_Z 

◆ ICHullError

Incremental Convex Hull algorithm (cf. http://cs.smith.edu/~orourke/books/ftp.html ).

Enumerator
ICHullErrorOK 
ICHullErrorCoplanarPoints 
ICHullErrorNoVolume 
ICHullErrorInconsistent 
ICHullErrorNotEnoughPoints 

◆ VOXEL_VALUE

Enumerator
PRIMITIVE_UNDEFINED 
PRIMITIVE_OUTSIDE_SURFACE 
PRIMITIVE_INSIDE_SURFACE 
PRIMITIVE_ON_SURFACE 

Function Documentation

◆ AddPoints()

void tesseract_collision::VHACD::AddPoints ( const Mesh *const  mesh,
SArray< Vec3< double > > &  pts 
)

◆ Colinear()

template<typename T >
bool tesseract_collision::VHACD::Colinear ( const Vec3< T > &  a,
const Vec3< T > &  b,
const Vec3< T > &  c 
)
inline

◆ ComputeAlignedPoint()

template<class T >
void tesseract_collision::VHACD::ComputeAlignedPoint ( const T *const  points,
const uint32_t  idx,
const Vec3< double > &  barycenter,
const double(&)  rot[3][3],
Vec3< double > &  pt 
)
inline

◆ ComputeAlignedPoint< double >()

template<>
void tesseract_collision::VHACD::ComputeAlignedPoint< double > ( const double *const  points,
const uint32_t  idx,
const Vec3< double > &  barycenter,
const double(&)  rot[3][3],
Vec3< double > &  pt 
)
inline

◆ ComputeAlignedPoint< float >()

template<>
void tesseract_collision::VHACD::ComputeAlignedPoint< float > ( const float *const  points,
const uint32_t  idx,
const Vec3< double > &  barycenter,
const double(&)  rot[3][3],
Vec3< double > &  pt 
)
inline

◆ ComputeAxesAlignedClippingPlanes() [1/2]

void tesseract_collision::VHACD::ComputeAxesAlignedClippingPlanes ( const TetrahedronSet tset,
const short  downsampling,
SArray< Plane > &  planes 
)

◆ ComputeAxesAlignedClippingPlanes() [2/2]

void tesseract_collision::VHACD::ComputeAxesAlignedClippingPlanes ( const VoxelSet vset,
const short  downsampling,
SArray< Plane > &  planes 
)

◆ ComputeConcavity()

double tesseract_collision::VHACD::ComputeConcavity ( const double  volume,
const double  volumeCH,
const double  volume0 
)
inline

◆ ComputeConvexHull()

void tesseract_collision::VHACD::ComputeConvexHull ( const Mesh *const  ch1,
const Mesh *const  ch2,
SArray< Vec3< double > > &  pts,
Mesh *const  combinedCH 
)

◆ ComputeLocalConcavity()

double tesseract_collision::VHACD::ComputeLocalConcavity ( const double  volume,
const double  volumeCH 
)
inline

◆ ComputePreferredCuttingDirection()

double tesseract_collision::VHACD::ComputePreferredCuttingDirection ( const PrimitiveSet *const  tset,
Vec3< double > &  dir 
)

◆ ComputeVolume4()

template<typename T >
const T tesseract_collision::VHACD::ComputeVolume4 ( const Vec3< T > &  a,
const Vec3< T > &  b,
const Vec3< T > &  c,
const Vec3< T > &  d 
)
inline

◆ CreateVHACD()

IVHACD * tesseract_collision::VHACD::CreateVHACD ( void  )

◆ CreateVHACD_ASYNC()

IVHACD * tesseract_collision::VHACD::CreateVHACD_ASYNC ( void  )

◆ Diagonalize()

void tesseract_collision::VHACD::Diagonalize ( const double(&)  A[3][3],
double(&)  Q[3][3],
double(&)  D[3][3] 
)

◆ InsideTriangle()

template<typename T >
bool tesseract_collision::VHACD::InsideTriangle ( const Vec2< T > &  a,
const Vec2< T > &  b,
const Vec2< T > &  c,
const Vec2< T > &  p 
)
inline

◆ operator*() [1/2]

template<typename T >
Vec2< T > tesseract_collision::VHACD::operator* ( T  lhs,
const Vec2< T > &  rhs 
)
inline

◆ operator*() [2/2]

template<typename T >
Vec3< T > tesseract_collision::VHACD::operator* ( T  lhs,
const Vec3< T > &  rhs 
)
inline

◆ PlaneBoxOverlap()

int32_t tesseract_collision::VHACD::PlaneBoxOverlap ( const Vec3< double > &  normal,
const Vec3< double > &  vert,
const Vec3< double > &  maxbox 
)

◆ RefineAxesAlignedClippingPlanes() [1/2]

void tesseract_collision::VHACD::RefineAxesAlignedClippingPlanes ( const TetrahedronSet tset,
const Plane bestPlane,
const short  downsampling,
SArray< Plane > &  planes 
)

◆ RefineAxesAlignedClippingPlanes() [2/2]

void tesseract_collision::VHACD::RefineAxesAlignedClippingPlanes ( const VoxelSet vset,
const Plane bestPlane,
const short  downsampling,
SArray< Plane > &  planes 
)

◆ TriBoxOverlap()

int32_t tesseract_collision::VHACD::TriBoxOverlap ( const Vec3< double > &  boxcenter,
const Vec3< double > &  boxhalfsize,
const Vec3< double > &  triver0,
const Vec3< double > &  triver1,
const Vec3< double > &  triver2 
)