1#ifndef HIERARCHICALTRIANGULARMESH_H
2#define HIERARCHICALTRIANGULARMESH_H
59 o <<
"TRIAUGMENTED_TRIANGULAR_PRISM";
112 rootMeshSize = this->mesh.size();
123 rootMeshSize = this->mesh.size();
160 std::vector<uint32_t> children(4,0);
166 children[
k] = mesh.size()-1;
168 mesh[
j].setChildren(children);
181 std::vector<Trixel<T>>
l;
182 std::vector<uint32_t>
indices = leafIndices();
185 l.push_back(mesh[
i]);
198 std::vector<uint32_t>
leaves = leafIndices();
202 auto u =
trix.getVertices();
207 v.push_back(
u[
j][
k]);
222 std::vector<uint32_t>
leaves = leafIndices();
226 auto u =
trix.normal();
242 std::vector<Trixel<T>> mesh;
244 std::vector<uint32_t> leafIndices()
const
246 std::vector<uint32_t>
leaves;
247 std::vector<uint32_t>
stack;
248 stack.resize(rootMeshSize);
251 while (
stack.size() > 0)
256 if ((
trix.getChildren()).size() == 0)
A refineable mesh of triangles.
Definition hierarchicalTriangularMesh.h:75
void build(uint32_t depth=0)
Refine the mesh to a give depth.
Definition hierarchicalTriangularMesh.h:146
std::vector< T > vertices() const
Get the vertices of the mesh.
Definition hierarchicalTriangularMesh.h:195
HierarchicalTriangularMesh(BASE_MESH mesh)
Construct a new Hierarchical Triangular Mesh from a library base.
Definition hierarchicalTriangularMesh.h:83
uint32_t size() const
Get the number of refinements.
Definition hierarchicalTriangularMesh.h:132
uint32_t triangles() const
Get the number of triangles at the largest refinement.
Definition hierarchicalTriangularMesh.h:139
std::vector< T > vertexNormals() const
Get the normal vectors for each triangle.
Definition hierarchicalTriangularMesh.h:219
HierarchicalTriangularMesh(const std::vector< Trixel< T > > &baseMesh)
Construct a new Hierarchical Triangular Mesh from a user base mesh.
Definition hierarchicalTriangularMesh.h:120
std::vector< Trixel< T > > leaves() const
The triangulation at the current refinement.
Definition hierarchicalTriangularMesh.h:179
glm::vec< L, float, glm::qualifier::highp > vec
Definition commandLine.h:214
bool operator<(const HierarchicalTriangularMesh< T > &a, const HierarchicalTriangularMesh< T > &b)
HierarchicalTriangularMesh ordering.
Definition hierarchicalTriangularMesh.h:299
BASE_MESH
Base mesh types for refinement.
Definition hierarchicalTriangularMesh.h:25
@ TRIAUGMENTED_TRIANGULAR_PRISM
std::ostream & operator<<(std::ostream &o, const BASE_MESH &mesh)
Definition hierarchicalTriangularMesh.h:35
const uint32_t NULL_ID
The null Trixel identity.
Definition trixel.h:10