Class triangulation

Inheritance Relationships

Base Type

Class Documentation

class triangulation : public ifcopenshell::geom::representation

Public Functions

inline const std::vector<double> &verts() const
inline const std::vector<int> &faces() const
inline const std::vector<std::vector<int>> &polyhedral_faces_without_holes() const
inline const std::vector<std::vector<std::vector<int>>> &polyhedral_faces_with_holes() const
inline const std::vector<int> &edges() const
inline const std::vector<double> &normals() const
inline const std::vector<double> &uvs() const
inline std::vector<double> &uvs_ref()
inline const std::vector<int> &material_ids() const
inline const std::vector<ifcopenshell::geom::taxonomy::style::ptr> &materials() const
inline const std::vector<int> &item_ids() const
inline const std::vector<int> &edges_item_ids() const
triangulation(const native &shape_model)
inline triangulation(const ifcopenshell::geom::settings &settings, const std::string &entity, const std::string &id, const std::vector<double> &verts, const std::vector<int> &faces, const std::vector<int> &edges, const std::vector<double> &normals, const std::vector<double> &uvs, const std::vector<int> &material_ids, const std::vector<ifcopenshell::geom::taxonomy::style::ptr> &materials, const std::vector<int> &item_ids, const std::vector<int> &edges_item_ids)
inline virtual ~triangulation()
int addVertex(int item_index, int material_index, double X, double Y, double Z)

Welds vertices that belong to different faces.

inline void addNormal(double X, double Y, double Z)
inline void addFace(int item_id, int style, int i0, int i1, int i2)
inline void addFace(int item_id, int style, const std::vector<int> &outer_bound)
inline void addFace(int item_id, int style, const std::vector<std::vector<int>> &bounds)
inline void addEdge(int item_id, int style, int i0, int i1)
inline void registerEdge(int item_id, int i0, int i1)
void registerEdgeCount(int n1, int n2, std::map<std::pair<int, int>, int> &edgecount)
inline void resetWelds()

Public Static Functions

static std::vector<double> box_project_uvs(const std::vector<double> &vertices, const std::vector<double> &normals)

Generates UVs for a single mesh using box projection.

Todo:

Very simple impl. Assumes that input vertices and normals match 1:1.

static inline triangulation *empty(const ifcopenshell::geom::settings &settings)