TM2IN  0.5.1
Public Member Functions | List of all members
TM2IN::Wall::Triangle Class Reference

Wall with three edges (HalfEdge) and vertices (Vertex) More...

#include <Triangle.h>

Inheritance diagram for TM2IN::Wall::Triangle:
Inheritance graph
[legend]

Public Member Functions

 Triangle (Vertex *pa, Vertex *pb, Vertex *pc)
 Constructor with three Vertex. More...
 
 Triangle (std::vector< Vertex * > &vertices)
 Constructor with a Vertex vector. More...
 
bool setNeighbor (Triangle *&tri)
 Sets neighbor relationship if Triangle has opposite HalfEdge. More...
 
Kernel::Triangle_3 CGAL_triangle ()
 Converts to Kernel::Triangle_3. More...
 
bool checkNeighbor (Triangle *&tri)
 Checks the other triangle has opposite HalfEdge. More...
 
bool isOpposite (Triangle *tri)
 Checks the other Triangle has three opposite HalfEdge. More...
 
bool updateNormal () override
 Updates normal vector. More...
 
- Public Member Functions inherited from TM2IN::Wall::Surface
ull getVerticesSize ()
 Gets the size of Vertex list. More...
 
virtual void setVertex (int index, Vertex *vt)
 Set specific Vertex with index. More...
 
virtual Vertexvertex (int index)
 Read Vertex with index. More...
 
void insertVertex (int index, Vertex *vt)
 Insert Vertex with index. More...
 
void setNormal (Vector_3 _normal)
 Set normal vector. More...
 
Vector_3 getNormal ()
 Gets normal vector. More...
 
std::vector< Vertex * > getVerticesList ()
 Gets a list of all Vertex. More...
 
void setVertexList (std::vector< Vertex * > vertices)
 Sets Vertex list. More...
 
std::vector< HalfEdge * > getExteriorBoundary ()
 Gets a exterior boundary. More...
 
void setExteriorBoundary (std::vector< HalfEdge * > edges)
 Sets a exterior boundary with a vector of HalfEdge. More...
 
HalfEdgeexterior_boundary_edge (int i)
 Returns the i-th edge. More...
 
int index_of_exterior_boundary_edge (HalfEdge *pEdge)
 Returns the index of pEdge. More...
 
bool has_duplicate_vertex ()
 Checks Surface has duplicate vertex. More...
 
bool is_simple ()
 Checks Surface is simple. More...
 
int getSegmentsNumber (ll start_index, ll end_index)
 Gets the number of edges between start index and end index. More...
 
bool isOpposite (Surface *sf)
 
void updateMBB ()
 Updates MinimumBoundingBox. More...
 
std::vector< Wall::Triangle * > getTriangulation ()
 Triangulate Surface. More...
 
std::string asJsonText ()
 Generates json string. More...
 
- Public Member Functions inherited from TM2IN::IndoorComponent
 IndoorComponent ()
 
double getArea ()
 Returns area. More...
 
void setArea (double _area)
 Sets area. More...
 
MinimumBoundingBoxgetMBB ()
 Returns minimum bounding box. More...
 
void setMBB (MinimumBoundingBox *_mbb)
 Sets minimum bounding box. More...
 
virtual void mergeMBB (IndoorComponent *gm)
 Merges with the other IndoorComponent. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from TM2IN::Wall::Surface
static bool compareLength (Surface *i, Surface *j)
 Compares with Surface length. More...
 
- Public Attributes inherited from TM2IN::Wall::Surface
Vector_3 normal = CGAL::NULL_VECTOR
 
- Public Attributes inherited from TM2IN::IndoorComponent
std::string geom_id
 
- Protected Member Functions inherited from TM2IN::Wall::Surface
 Surface ()
 Empty Surface constructor. More...
 
- Protected Attributes inherited from TM2IN::Wall::Surface
std::vector< HalfEdge * > innerEdges
 
std::vector< HalfEdge * > exteriorBoundary
 
std::vector< Triangle * > triangulation
 
- Protected Attributes inherited from TM2IN::IndoorComponent
MinimumBoundingBoxmbb
 
TM2IN::IND_TYPE type
 
double area = 0.0
 

Detailed Description

Wall with three edges (HalfEdge) and vertices (Vertex)

Constructor & Destructor Documentation

TM2IN::Wall::Triangle::Triangle ( Vertex pa,
Vertex pb,
Vertex pc 
)

Constructor with three Vertex.

TM2IN::Wall::Triangle::Triangle ( std::vector< Vertex * > &  vertices)
inline

Constructor with a Vertex vector.

Warning
The only front three vertices in vector will be used.

Member Function Documentation

Kernel::Triangle_3 TM2IN::Wall::Triangle::CGAL_triangle ( )

Converts to Kernel::Triangle_3.

bool TM2IN::Wall::Triangle::checkNeighbor ( Triangle *&  tri)

Checks the other triangle has opposite HalfEdge.

bool TM2IN::Wall::Triangle::isOpposite ( Triangle tri)

Checks the other Triangle has three opposite HalfEdge.

bool TM2IN::Wall::Triangle::setNeighbor ( Triangle *&  tri)

Sets neighbor relationship if Triangle has opposite HalfEdge.

bool TM2IN::Wall::Triangle::updateNormal ( )
overridevirtual

Updates normal vector.

Implements TM2IN::Wall::Surface.


The documentation for this class was generated from the following files: