#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< int > | mHull |
ComputeType | mNegOne |
int | mNumPoints |
unsigned int | mNumThreads |
ComputeType | mOne |
Vector3< InputType > const * | mPoints |
bool | mThreadProcessEdges |
std::set< int > | mUniqueIndices |
bool | mUseRotatingCalipers |
InputType | mVolume |
ComputeType | mZero |
Definition at line 47 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 97 of file GteMinimumVolumeBox3.h.
gte::MinimumVolumeBox3< InputType, ComputeType >::MinimumVolumeBox3 | ( | unsigned int | numThreads = 1 , |
bool | threadProcessEdges = false |
||
) |
Definition at line 181 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 1046 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 875 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 784 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 1208 of file GteMinimumVolumeBox3.h.
|
inline |
Definition at line 444 of file GteMinimumVolumeBox3.h.
|
inline |
Definition at line 431 of file GteMinimumVolumeBox3.h.
|
inline |
Definition at line 438 of file GteMinimumVolumeBox3.h.
|
inline |
Definition at line 451 of file GteMinimumVolumeBox3.h.
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.
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.
|
private |
Definition at line 549 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 653 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 457 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 752 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 978 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 1082 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 1138 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 154 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 176 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 157 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 176 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 148 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 144 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 176 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 149 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 145 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 163 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 167 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 172 of file GteMinimumVolumeBox3.h.
|
private |
Definition at line 176 of file GteMinimumVolumeBox3.h.