Tesseract
Motion Planning Environment
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
tesseract_collision::VHACD::VHACD Class Reference

#include <vhacdVHACD.h>

Inheritance diagram for tesseract_collision::VHACD::VHACD:
Inheritance graph
[legend]
Collaboration diagram for tesseract_collision::VHACD::VHACD:
Collaboration graph
[legend]

Public Member Functions

 VHACD ()
 Constructor. More...
 
uint32_t GetNConvexHulls () const override
 
void Cancel () override
 
void GetConvexHull (uint32_t index, ConvexHull &ch) const override
 
void Clean () override
 
void Release () override
 
bool Compute (float const *points, uint32_t nPoints, uint32_t const *triangles, uint32_t nTriangles, const Parameters &params) override
 
bool Compute (double const *points, uint32_t nPoints, uint32_t const *triangles, uint32_t nTriangles, const Parameters &params) override
 
bool OCLInit (void const *oclDevice, VHACD::IVHACD::IUserLogger const *logger=nullptr) override
 
bool OCLRelease (IUserLogger const *logger=nullptr) override
 
virtual bool ComputeCenterOfMass (std::array< double, 3 > &centerOfMass) const override
 
- Public Member Functions inherited from tesseract_collision::VHACD::IVHACD
 IVHACD ()=default
 
virtual ~IVHACD ()=default
 
 IVHACD (const IVHACD &)=default
 
IVHACDoperator= (const IVHACD &)=default
 
 IVHACD (IVHACD &&)=default
 
IVHACDoperator= (IVHACD &&)=default
 
virtual void Cancel ()=0
 
virtual bool Compute (float const *points, uint32_t countPoints, uint32_t const *triangles, uint32_t countTriangles, const Parameters &params)=0
 
virtual bool Compute (double const *points, uint32_t countPoints, uint32_t const *triangles, uint32_t countTriangles, const Parameters &params)=0
 
virtual uint32_t GetNConvexHulls () const =0
 
virtual void GetConvexHull (uint32_t index, ConvexHull &ch) const =0
 
virtual void Clean ()=0
 
virtual void Release ()=0
 
virtual bool OCLInit (void const *oclDevice, IUserLogger const *logger=nullptr)=0
 
virtual bool OCLRelease (IUserLogger const *logger=nullptr)=0
 
virtual bool ComputeCenterOfMass (std::array< double, 3 > &centerOfMass) const =0
 
virtual bool IsReady () const
 

Private Member Functions

void SetCancel (bool cancel)
 
bool GetCancel ()
 
void Update (const double stageProgress, const double operationProgress, const Parameters &params)
 
void Init ()
 
void ComputePrimitiveSet (const Parameters &params)
 
void ComputeACD (const Parameters &params)
 
void MergeConvexHulls (const Parameters &params)
 
void SimplifyConvexHull (Mesh *const ch, const size_t nvertices, const double minVolume)
 
void SimplifyConvexHulls (const Parameters &params)
 
void ComputeBestClippingPlane (const PrimitiveSet *inputPSet, const double volume, const SArray< Plane > &planes, const Vec3< double > &preferredCuttingDirection, const double w, const double alpha, const double beta, const int32_t convexhullDownsampling, const double progress0, const double progress1, Plane &bestPlane, double &minConcavity, const Parameters &params)
 
template<class T >
void AlignMesh (const T *const points, const uint32_t stridePoints, const uint32_t nPoints, const int32_t *const triangles, const uint32_t strideTriangles, const uint32_t nTriangles, const Parameters &params)
 
template<class T >
void VoxelizeMesh (const T *const points, const uint32_t stridePoints, const uint32_t nPoints, const int32_t *const triangles, const uint32_t strideTriangles, const uint32_t nTriangles, const Parameters &params)
 
template<class T >
bool ComputeACD (const T *const points, const uint32_t nPoints, const uint32_t *const triangles, const uint32_t nTriangles, const Parameters &params)
 

Private Attributes

RaycastMeshmRaycastMesh { nullptr }
 
SArray< Mesh * > m_convexHulls
 
std::string m_stage
 
std::string m_operation
 
double m_overallProgress
 
double m_stageProgress
 
double m_operationProgress
 
double m_rot [3][3]
 
double m_volumeCH0
 
Vec3< double > m_barycenter
 
Timer m_timer
 
size_t m_dim
 
Volumem_volume
 
PrimitiveSetm_pset
 
Mutex m_cancelMutex
 
bool m_cancel
 
int32_t m_ompNumProcessors
 

Constructor & Destructor Documentation

◆ VHACD()

tesseract_collision::VHACD::VHACD::VHACD ( )
inline

Constructor.

Member Function Documentation

◆ AlignMesh()

template<class T >
void tesseract_collision::VHACD::VHACD::AlignMesh ( const T *const  points,
const uint32_t  stridePoints,
const uint32_t  nPoints,
const int32_t *const  triangles,
const uint32_t  strideTriangles,
const uint32_t  nTriangles,
const Parameters params 
)
inlineprivate

◆ Cancel()

void tesseract_collision::VHACD::VHACD::Cancel ( )
inlineoverridevirtual

◆ Clean()

void tesseract_collision::VHACD::VHACD::Clean ( )
inlineoverridevirtual

◆ Compute() [1/2]

bool tesseract_collision::VHACD::VHACD::Compute ( double const *  points,
uint32_t  nPoints,
uint32_t const *  triangles,
uint32_t  nTriangles,
const Parameters params 
)
overridevirtual

◆ Compute() [2/2]

bool tesseract_collision::VHACD::VHACD::Compute ( float const *  points,
uint32_t  nPoints,
uint32_t const *  triangles,
uint32_t  nTriangles,
const Parameters params 
)
overridevirtual

◆ ComputeACD() [1/2]

void tesseract_collision::VHACD::VHACD::ComputeACD ( const Parameters params)
private

◆ ComputeACD() [2/2]

template<class T >
bool tesseract_collision::VHACD::VHACD::ComputeACD ( const T *const  points,
const uint32_t  nPoints,
const uint32_t *const  triangles,
const uint32_t  nTriangles,
const Parameters params 
)
inlineprivate

◆ ComputeBestClippingPlane()

void tesseract_collision::VHACD::VHACD::ComputeBestClippingPlane ( const PrimitiveSet inputPSet,
const double  volume,
const SArray< Plane > &  planes,
const Vec3< double > &  preferredCuttingDirection,
const double  w,
const double  alpha,
const double  beta,
const int32_t  convexhullDownsampling,
const double  progress0,
const double  progress1,
Plane bestPlane,
double &  minConcavity,
const Parameters params 
)
private

◆ ComputeCenterOfMass()

bool tesseract_collision::VHACD::VHACD::ComputeCenterOfMass ( std::array< double, 3 > &  centerOfMass) const
overridevirtual

◆ ComputePrimitiveSet()

void tesseract_collision::VHACD::VHACD::ComputePrimitiveSet ( const Parameters params)
private

◆ GetCancel()

bool tesseract_collision::VHACD::VHACD::GetCancel ( )
inlineprivate

◆ GetConvexHull()

void tesseract_collision::VHACD::VHACD::GetConvexHull ( uint32_t  index,
ConvexHull ch 
) const
inlineoverridevirtual

◆ GetNConvexHulls()

uint32_t tesseract_collision::VHACD::VHACD::GetNConvexHulls ( ) const
inlineoverridevirtual

◆ Init()

void tesseract_collision::VHACD::VHACD::Init ( )
inlineprivate

◆ MergeConvexHulls()

void tesseract_collision::VHACD::VHACD::MergeConvexHulls ( const Parameters params)
private

◆ OCLInit()

bool tesseract_collision::VHACD::VHACD::OCLInit ( void const *  oclDevice,
VHACD::IVHACD::IUserLogger const *  logger = nullptr 
)
overridevirtual

◆ OCLRelease()

bool tesseract_collision::VHACD::VHACD::OCLRelease ( IUserLogger const *  logger = nullptr)
overridevirtual

◆ Release()

void tesseract_collision::VHACD::VHACD::Release ( )
inlineoverridevirtual

◆ SetCancel()

void tesseract_collision::VHACD::VHACD::SetCancel ( bool  cancel)
inlineprivate

◆ SimplifyConvexHull()

void tesseract_collision::VHACD::VHACD::SimplifyConvexHull ( Mesh *const  ch,
const size_t  nvertices,
const double  minVolume 
)
private

◆ SimplifyConvexHulls()

void tesseract_collision::VHACD::VHACD::SimplifyConvexHulls ( const Parameters params)
private

◆ Update()

void tesseract_collision::VHACD::VHACD::Update ( const double  stageProgress,
const double  operationProgress,
const Parameters params 
)
inlineprivate

◆ VoxelizeMesh()

template<class T >
void tesseract_collision::VHACD::VHACD::VoxelizeMesh ( const T *const  points,
const uint32_t  stridePoints,
const uint32_t  nPoints,
const int32_t *const  triangles,
const uint32_t  strideTriangles,
const uint32_t  nTriangles,
const Parameters params 
)
inlineprivate

Member Data Documentation

◆ m_barycenter

Vec3<double> tesseract_collision::VHACD::VHACD::m_barycenter
private

◆ m_cancel

bool tesseract_collision::VHACD::VHACD::m_cancel
private

◆ m_cancelMutex

Mutex tesseract_collision::VHACD::VHACD::m_cancelMutex
private

◆ m_convexHulls

SArray<Mesh*> tesseract_collision::VHACD::VHACD::m_convexHulls
private

◆ m_dim

size_t tesseract_collision::VHACD::VHACD::m_dim
private

◆ m_ompNumProcessors

int32_t tesseract_collision::VHACD::VHACD::m_ompNumProcessors
private

◆ m_operation

std::string tesseract_collision::VHACD::VHACD::m_operation
private

◆ m_operationProgress

double tesseract_collision::VHACD::VHACD::m_operationProgress
private

◆ m_overallProgress

double tesseract_collision::VHACD::VHACD::m_overallProgress
private

◆ m_pset

PrimitiveSet* tesseract_collision::VHACD::VHACD::m_pset
private

◆ m_rot

double tesseract_collision::VHACD::VHACD::m_rot[3][3]
private

◆ m_stage

std::string tesseract_collision::VHACD::VHACD::m_stage
private

◆ m_stageProgress

double tesseract_collision::VHACD::VHACD::m_stageProgress
private

◆ m_timer

Timer tesseract_collision::VHACD::VHACD::m_timer
private

◆ m_volume

Volume* tesseract_collision::VHACD::VHACD::m_volume
private

◆ m_volumeCH0

double tesseract_collision::VHACD::VHACD::m_volumeCH0
private

◆ mRaycastMesh

RaycastMesh* tesseract_collision::VHACD::VHACD::mRaycastMesh { nullptr }
private

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