TM2IN  0.5.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
TM2IN::Wall::Surface Class Referenceabstract

#include <Surface.h>

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

Public Member Functions

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...
 
virtual bool updateNormal ()=0
 Updates normal vector. 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...
 

Static Public Member Functions

static bool compareLength (Surface *i, Surface *j)
 Compares with Surface length. More...
 

Public Attributes

Vector_3 normal = CGAL::NULL_VECTOR
 
- Public Attributes inherited from TM2IN::IndoorComponent
std::string geom_id
 

Protected Member Functions

 Surface ()
 Empty Surface constructor. More...
 

Protected Attributes

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
 

Friends

std::ostream & operator<< (std::ostream &ou, Surface *pSurface)
 ostream operator More...
 

Constructor & Destructor Documentation

TM2IN::Wall::Surface::Surface ( )
inlineprotected

Empty Surface constructor.

Member Function Documentation

std::string TM2IN::Wall::Surface::asJsonText ( )
virtual

Generates json string.

Reimplemented from TM2IN::IndoorComponent.

bool TM2IN::Wall::Surface::compareLength ( Surface i,
Surface j 
)
static

Compares with Surface length.

HalfEdge * TM2IN::Wall::Surface::exterior_boundary_edge ( int  i)

Returns the i-th edge.

std::vector< HalfEdge * > TM2IN::Wall::Surface::getExteriorBoundary ( )

Gets a exterior boundary.

Vector_3 TM2IN::Wall::Surface::getNormal ( )

Gets normal vector.

int TM2IN::Wall::Surface::getSegmentsNumber ( ll  start_index,
ll  end_index 
)

Gets the number of edges between start index and end index.

std::vector< Wall::Triangle * > TM2IN::Wall::Surface::getTriangulation ( )

Triangulate Surface.

vector< Vertex * > TM2IN::Wall::Surface::getVerticesList ( )

Gets a list of all Vertex.

ull TM2IN::Wall::Surface::getVerticesSize ( )
inline

Gets the size of Vertex list.

bool TM2IN::Wall::Surface::has_duplicate_vertex ( )

Checks Surface has duplicate vertex.

int TM2IN::Wall::Surface::index_of_exterior_boundary_edge ( HalfEdge pEdge)

Returns the index of pEdge.

void TM2IN::Wall::Surface::insertVertex ( int  index,
Vertex vt 
)

Insert Vertex with index.

Todo:
implements
bool TM2IN::Wall::Surface::is_simple ( )

Checks Surface is simple.

bool TM2IN::Wall::Surface::isOpposite ( Surface sf)
void TM2IN::Wall::Surface::setExteriorBoundary ( std::vector< HalfEdge * >  edges)

Sets a exterior boundary with a vector of HalfEdge.

void TM2IN::Wall::Surface::setNormal ( Vector_3  _normal)
inline

Set normal vector.

void TM2IN::Wall::Surface::setVertex ( int  index,
Vertex vt 
)
virtual

Set specific Vertex with index.

void TM2IN::Wall::Surface::setVertexList ( std::vector< Vertex * >  vertices)

Sets Vertex list.

void TM2IN::Wall::Surface::updateMBB ( )
virtual

Updates MinimumBoundingBox.

Reimplemented from TM2IN::IndoorComponent.

virtual bool TM2IN::Wall::Surface::updateNormal ( )
pure virtual

Updates normal vector.

Implemented in TM2IN::Wall::Triangle, TM2IN::Wall::TriangulatedSurface, and TM2IN::Wall::Polygon.

Vertex * TM2IN::Wall::Surface::vertex ( int  index)
virtual

Read Vertex with index.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  ou,
Surface pSurface 
)
friend

ostream operator

Member Data Documentation

std::vector<HalfEdge* > TM2IN::Wall::Surface::exteriorBoundary
protected
std::vector<HalfEdge* > TM2IN::Wall::Surface::innerEdges
protected
Vector_3 TM2IN::Wall::Surface::normal = CGAL::NULL_VECTOR
std::vector<Triangle *> TM2IN::Wall::Surface::triangulation
protected

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