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) {}
77 struct OctreeBlockElem {
81 OctreeBlockElem(
const Vec3& _point,
const int _ni)
82 : point(_point), nodeIndex(_ni) {}
85 std::vector<OctreeBlockElem> iBlockElems;
86 std::vector<int> tetList;
107 bool DoesBoxOverlap(
const Vec3& b_min,
const Vec3& b_max)
const;
109 int GetOctantContainingPoint(
const Vec3& point)
const;
115 bool IsEmpty()
const;
118 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