1#ifndef TETRAHEDRAL_TREE_H
2#define TETRAHEDRAL_TREE_H
6#define BLOCK_CAPACITY 10
16 Vec3(
float _x,
float _y,
float _z) :
x(_x),
y(_y),
z(_z) {}
78 struct OctreeBlockElem {
82 OctreeBlockElem(
const Vec3& _point,
const int _ni)
83 : point(_point), nodeIndex(_ni) {}
86 std::vector<OctreeBlockElem> iBlockElems;
87 std::vector<int> tetList;
108 bool DoesBoxOverlap(
const Vec3& b_min,
const Vec3& b_max)
const;
110 int GetOctantContainingPoint(
const Vec3& point)
const;
116 bool IsEmpty()
const;
119 bool IsLeafNode()
const;
Helper class for searches in field maps.
std::vector< int > GetTetListInBlock(const Vec3 &point)
void InsertTetrahedron(const double elemBoundingBox[6], const int elemIndex)
void InsertMeshNode(Vec3 point, const int nodeIndex)
Vec3(float _x, float _y, float _z)
Vec3 & operator+=(const Vec3 &r)
Vec3 & operator-=(const Vec3 &r)
Vec3 operator-(const Vec3 &r) const
Vec3 operator/(float r) const
Vec3 operator*(float r) const
Vec3 operator+(const Vec3 &r) const