#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#include "btConvexHullComputer.h"
#include "vhacdVolume.h"
#include <algorithm>
#include <float.h>
#include <math.h>
#include <queue>
#include <string.h>
#ifdef _MSC_VER
#pragma warning(disable:4458 4100)
#endif
namespace VHACD {
#define X …
#define Y …
#define Z …
#define FINDMINMAX(x0, x1, x2, min, max) …
#define AXISTEST_X01(a, b, fa, fb) …
#define AXISTEST_X2(a, b, fa, fb) …
#define AXISTEST_Y02(a, b, fa, fb) …
#define AXISTEST_Y1(a, b, fa, fb) …
#define AXISTEST_Z12(a, b, fa, fb) …
#define AXISTEST_Z0(a, b, fa, fb) …
int32_t PlaneBoxOverlap(const Vec3<double>& normal,
const Vec3<double>& vert,
const Vec3<double>& maxbox)
{ … }
int32_t TriBoxOverlap(const Vec3<double>& boxcenter,
const Vec3<double>& boxhalfsize,
const Vec3<double>& triver0,
const Vec3<double>& triver1,
const Vec3<double>& triver2)
{ … }
void Diagonalize(const double (&A)[3][3], double (&Q)[3][3], double (&D)[3][3])
{ … }
const double TetrahedronSet::EPS = …;
VoxelSet::VoxelSet()
{ … }
VoxelSet::~VoxelSet(void)
{ … }
void VoxelSet::ComputeBB()
{ … }
void VoxelSet::ComputeConvexHull(Mesh& meshCH, const size_t sampling) const
{ … }
void VoxelSet::GetPoints(const Voxel& voxel,
Vec3<double>* const pts) const
{ … }
void VoxelSet::Intersect(const Plane& plane,
SArray<Vec3<double> >* const positivePts,
SArray<Vec3<double> >* const negativePts,
const size_t sampling) const
{ … }
void VoxelSet::ComputeExteriorPoints(const Plane& plane,
const Mesh& mesh,
SArray<Vec3<double> >* const exteriorPts) const
{ … }
void VoxelSet::ComputeClippedVolumes(const Plane& plane,
double& positiveVolume,
double& negativeVolume) const
{ … }
void VoxelSet::SelectOnSurface(PrimitiveSet* const onSurfP) const
{ … }
void VoxelSet::Clip(const Plane& plane,
PrimitiveSet* const positivePartP,
PrimitiveSet* const negativePartP) const
{ … }
void VoxelSet::Convert(Mesh& mesh, const VOXEL_VALUE value) const
{ … }
void VoxelSet::ComputePrincipalAxes()
{ … }
Volume::Volume()
{ … }
Volume::~Volume(void)
{ … }
void Volume::Allocate()
{ … }
void Volume::Free()
{ … }
void Volume::FillOutsideSurface(const size_t i0,
const size_t j0,
const size_t k0,
const size_t i1,
const size_t j1,
const size_t k1)
{ … }
void Volume::FillInsideSurface()
{ … }
void Volume::Convert(Mesh& mesh, const VOXEL_VALUE value) const
{ … }
void Volume::Convert(VoxelSet& vset) const
{ … }
void Volume::Convert(TetrahedronSet& tset) const
{ … }
void Volume::AlignToPrincipalAxes(double (&rot)[3][3]) const
{ … }
TetrahedronSet::TetrahedronSet()
{ … }
TetrahedronSet::~TetrahedronSet(void)
{ … }
void TetrahedronSet::ComputeBB()
{ … }
void TetrahedronSet::ComputeConvexHull(Mesh& meshCH, const size_t sampling) const
{ … }
inline bool TetrahedronSet::Add(Tetrahedron& tetrahedron)
{ … }
void TetrahedronSet::AddClippedTetrahedra(const Vec3<double> (&pts)[10], const int32_t nPts)
{ … }
void TetrahedronSet::Intersect(const Plane& plane,
SArray<Vec3<double> >* const positivePts,
SArray<Vec3<double> >* const negativePts,
const size_t sampling) const
{ … }
void TetrahedronSet::ComputeExteriorPoints(const Plane& plane,
const Mesh& mesh,
SArray<Vec3<double> >* const exteriorPts) const
{ … }
void TetrahedronSet::ComputeClippedVolumes(const Plane& plane,
double& positiveVolume,
double& negativeVolume) const
{ … }
void TetrahedronSet::SelectOnSurface(PrimitiveSet* const onSurfP) const
{ … }
void TetrahedronSet::Clip(const Plane& plane,
PrimitiveSet* const positivePartP,
PrimitiveSet* const negativePartP) const
{ … }
void TetrahedronSet::Convert(Mesh& mesh, const VOXEL_VALUE value) const
{ … }
const double TetrahedronSet::ComputeVolume() const
{ … }
const double TetrahedronSet::ComputeMaxVolumeError() const
{ … }
void TetrahedronSet::RevertAlignToPrincipalAxes()
{ … }
void TetrahedronSet::ComputePrincipalAxes()
{ … }
void TetrahedronSet::AlignToPrincipalAxes()
{ … }
}