Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
gte::MinimumVolumeBox3< InputType, ComputeType > Class Template Reference

#include <GteMinimumVolumeBox3.h>

Classes

struct  Box
 
struct  ExtrudeRectangle
 

Public Member Functions

std::vector< int > const & GetHull () const
 
int GetNumPoints () const
 
Vector3< InputType > const * GetPoints () const
 
InputType GetVolume () const
 
 MinimumVolumeBox3 (unsigned int numThreads=1, bool threadProcessEdges=false)
 
OrientedBox3< InputType > operator() (int numPoints, Vector3< InputType > const *points, bool useRotatingCalipers=!std::is_floating_point< ComputeType >::value)
 
OrientedBox3< InputType > operator() (int numPoints, Vector3< InputType > const *points, int numIndices, int const *indices, bool useRotatingCalipers=!std::is_floating_point< ComputeType >::value)
 

Private Types

typedef ETManifoldMesh::Triangle Triangle
 

Private Member Functions

bool ComputeAngles (Vector3< ComputeType > const &N, std::vector< int > const &polyline, ExtrudeRectangle const &rct, std::array< std::pair< ComputeType, int >, 4 > &A, int &numA) const
 
void ComputeBoxForFaceOrderN (Vector3< ComputeType > const &N, std::vector< int > const &polyline, Box &box)
 
void ComputeBoxForFaceOrderNSqr (Vector3< ComputeType > const &N, std::vector< int > const &polyline, Box &box)
 
void ConvertTo (Box const &minBox, OrientedBox3< InputType > &itMinBox)
 
void ProcessEdges (ETManifoldMesh const &mesh, Box &minBox)
 
void ProcessFace (std::shared_ptr< Triangle > const &supportTri, std::vector< Vector3< ComputeType >> const &normal, std::map< std::shared_ptr< Triangle >, int > const &triNormalMap, ETManifoldMesh::EMap const &emap, Box &localMinBox)
 
void ProcessFaces (ETManifoldMesh const &mesh, Box &minBox)
 
void RemoveCollinearPoints (Vector3< ComputeType > const &N, std::vector< int > &polyline)
 
ExtrudeRectangle SmallestRectangle (int i0, int i1, Vector3< ComputeType > const &N, std::vector< int > const &polyline)
 
std::array< int, 4 > SortAngles (std::array< std::pair< ComputeType, int >, 4 > const &A, int numA) const
 
bool UpdateSupport (std::array< std::pair< ComputeType, int >, 4 > const &A, int numA, std::array< int, 4 > const &sort, Vector3< ComputeType > const &N, std::vector< int > const &polyline, std::vector< bool > &visited, ExtrudeRectangle &rct)
 

Private Attributes

Vector3< ComputeType > const * mComputePoints
 
ComputeType mHalf
 
std::vector< intmHull
 
ComputeType mNegOne
 
int mNumPoints
 
unsigned int mNumThreads
 
ComputeType mOne
 
Vector3< InputType > const * mPoints
 
bool mThreadProcessEdges
 
std::set< intmUniqueIndices
 
bool mUseRotatingCalipers
 
InputType mVolume
 
ComputeType mZero
 

Detailed Description

template<typename InputType, typename ComputeType>
class gte::MinimumVolumeBox3< InputType, ComputeType >

Definition at line 47 of file GteMinimumVolumeBox3.h.

Member Typedef Documentation

template<typename InputType , typename ComputeType >
typedef ETManifoldMesh::Triangle gte::MinimumVolumeBox3< InputType, ComputeType >::Triangle
private

Definition at line 97 of file GteMinimumVolumeBox3.h.

Constructor & Destructor Documentation

template<typename InputType , typename ComputeType >
gte::MinimumVolumeBox3< InputType, ComputeType >::MinimumVolumeBox3 ( unsigned int  numThreads = 1,
bool  threadProcessEdges = false 
)

Definition at line 181 of file GteMinimumVolumeBox3.h.

Member Function Documentation

template<typename InputType , typename ComputeType >
bool gte::MinimumVolumeBox3< InputType, ComputeType >::ComputeAngles ( Vector3< ComputeType > const &  N,
std::vector< int > const &  polyline,
ExtrudeRectangle const &  rct,
std::array< std::pair< ComputeType, int >, 4 > &  A,
int numA 
) const
private

Definition at line 1046 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::ComputeBoxForFaceOrderN ( Vector3< ComputeType > const &  N,
std::vector< int > const &  polyline,
Box box 
)
private

Definition at line 875 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::ComputeBoxForFaceOrderNSqr ( Vector3< ComputeType > const &  N,
std::vector< int > const &  polyline,
Box box 
)
private

Definition at line 784 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::ConvertTo ( Box const &  minBox,
OrientedBox3< InputType > &  itMinBox 
)
private

Definition at line 1208 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
std::vector< int > const & gte::MinimumVolumeBox3< InputType, ComputeType >::GetHull ( ) const
inline

Definition at line 444 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
int gte::MinimumVolumeBox3< InputType, ComputeType >::GetNumPoints ( ) const
inline

Definition at line 431 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
Vector3< InputType > const * gte::MinimumVolumeBox3< InputType, ComputeType >::GetPoints ( ) const
inline

Definition at line 438 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
InputType gte::MinimumVolumeBox3< InputType, ComputeType >::GetVolume ( ) const
inline

Definition at line 451 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
OrientedBox3< InputType > gte::MinimumVolumeBox3< InputType, ComputeType >::operator() ( int  numPoints,
Vector3< InputType > const *  points,
bool  useRotatingCalipers = !std::is_floating_point<ComputeType>::value 
)

Definition at line 198 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
OrientedBox3< InputType > gte::MinimumVolumeBox3< InputType, ComputeType >::operator() ( int  numPoints,
Vector3< InputType > const *  points,
int  numIndices,
int const *  indices,
bool  useRotatingCalipers = !std::is_floating_point<ComputeType>::value 
)

Definition at line 353 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::ProcessEdges ( ETManifoldMesh const &  mesh,
Box minBox 
)
private

Definition at line 549 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::ProcessFace ( std::shared_ptr< Triangle > const &  supportTri,
std::vector< Vector3< ComputeType >> const &  normal,
std::map< std::shared_ptr< Triangle >, int > const &  triNormalMap,
ETManifoldMesh::EMap const &  emap,
Box localMinBox 
)
private

Definition at line 653 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::ProcessFaces ( ETManifoldMesh const &  mesh,
Box minBox 
)
private

Definition at line 457 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
void gte::MinimumVolumeBox3< InputType, ComputeType >::RemoveCollinearPoints ( Vector3< ComputeType > const &  N,
std::vector< int > &  polyline 
)
private

Definition at line 752 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
MinimumVolumeBox3< InputType, ComputeType >::ExtrudeRectangle gte::MinimumVolumeBox3< InputType, ComputeType >::SmallestRectangle ( int  i0,
int  i1,
Vector3< ComputeType > const &  N,
std::vector< int > const &  polyline 
)
private

Definition at line 978 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
std::array< int, 4 > gte::MinimumVolumeBox3< InputType, ComputeType >::SortAngles ( std::array< std::pair< ComputeType, int >, 4 > const &  A,
int  numA 
) const
private

Definition at line 1082 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
bool gte::MinimumVolumeBox3< InputType, ComputeType >::UpdateSupport ( std::array< std::pair< ComputeType, int >, 4 > const &  A,
int  numA,
std::array< int, 4 > const &  sort,
Vector3< ComputeType > const &  N,
std::vector< int > const &  polyline,
std::vector< bool > &  visited,
ExtrudeRectangle rct 
)
private

Definition at line 1138 of file GteMinimumVolumeBox3.h.

Member Data Documentation

template<typename InputType , typename ComputeType >
Vector3<ComputeType> const* gte::MinimumVolumeBox3< InputType, ComputeType >::mComputePoints
private

Definition at line 154 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
ComputeType gte::MinimumVolumeBox3< InputType, ComputeType >::mHalf
private

Definition at line 176 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
std::vector<int> gte::MinimumVolumeBox3< InputType, ComputeType >::mHull
private

Definition at line 157 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
ComputeType gte::MinimumVolumeBox3< InputType, ComputeType >::mNegOne
private

Definition at line 176 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
int gte::MinimumVolumeBox3< InputType, ComputeType >::mNumPoints
private

Definition at line 148 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
unsigned int gte::MinimumVolumeBox3< InputType, ComputeType >::mNumThreads
private

Definition at line 144 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
ComputeType gte::MinimumVolumeBox3< InputType, ComputeType >::mOne
private

Definition at line 176 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
Vector3<InputType> const* gte::MinimumVolumeBox3< InputType, ComputeType >::mPoints
private

Definition at line 149 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
bool gte::MinimumVolumeBox3< InputType, ComputeType >::mThreadProcessEdges
private

Definition at line 145 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
std::set<int> gte::MinimumVolumeBox3< InputType, ComputeType >::mUniqueIndices
private

Definition at line 163 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
bool gte::MinimumVolumeBox3< InputType, ComputeType >::mUseRotatingCalipers
private

Definition at line 167 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
InputType gte::MinimumVolumeBox3< InputType, ComputeType >::mVolume
private

Definition at line 172 of file GteMinimumVolumeBox3.h.

template<typename InputType , typename ComputeType >
ComputeType gte::MinimumVolumeBox3< InputType, ComputeType >::mZero
private

Definition at line 176 of file GteMinimumVolumeBox3.h.


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


geometric_tools_engine
Author(s): Yijiang Huang
autogenerated on Thu Jul 18 2019 04:00:06