polylidar.HalfEdgeTriangulation

class polylidar.HalfEdgeTriangulation

This class hold all the datastructures in our meshes (vertices, triangles, halfedges, etc.).

__init__(self: polylidar_pybind.HalfEdgeTriangulation, in_vertices: polylidar_pybind.MatrixDouble) None

Creates a HalfEdge Triangular Mesh

compute_triangle_normals(self: polylidar_pybind.HalfEdgeTriangulation) None

Computes Triangle Normals

set_triangle_normals(self: polylidar_pybind.HalfEdgeTriangulation, triangle_normals: polylidar_pybind.MatrixDouble) None

Sets Triangle Normals from input

set_vertex_classes(self: polylidar_pybind.HalfEdgeTriangulation, vertex_classes: polylidar_pybind.MatrixUInt8, copy: bool = True) None

Sets vertex classes from input

property counter_clock_wise

Direction of travel for oriented half-edges around a triangle

property halfedges

Half-edge mapping in the mesh, K X 3. Every triangle has three oriented half-edges. Each half-edge has unique id which is mapped to the 2D index of all triangles, e.g. the half-edges of triangle k are [3*k, 3*k + 1, 3*k + 2]. Halfedges array provides the twin/opposite/shared half-edge id. e.g., The twin half-edge of first edge for the triangle k is halfedges(k, 0)

property triangle_normals

Triangle normals in the mesh (normalized), K X 3

property triangles

Triangles in the mesh, K X 3

property vertex_classes

Vertex classes in the mesh, N X 1

property vertices

Vertices in the mesh, N X 2 or N X 3