BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members
BALL::TriangulatedSurface Class Reference

#include <BALL/STRUCTURE/triangulatedSurface.h>

Inheritance diagram for BALL::TriangulatedSurface:
BALL::TriangulatedSAS BALL::TriangulatedSES BALL::TriangulatedSphere

Public Types

Type definitions
typedef std::list
< TrianglePoint * >::iterator 
PointIterator
 
typedef std::list
< TrianglePoint * >
::const_iterator 
ConstPointIterator
 
typedef std::list
< TriangleEdge * >::iterator 
EdgeIterator
 
typedef std::list
< TriangleEdge * >
::const_iterator 
ConstEdgeIterator
 
typedef std::list< Triangle * >
::iterator 
TriangleIterator
 
typedef std::list< Triangle * >
::const_iterator 
ConstTriangleIterator
 

Public Member Functions

Constructors and Destructors
 TriangulatedSurface ()
 
 TriangulatedSurface (const TriangulatedSurface &surface, bool=true)
 
virtual ~TriangulatedSurface ()
 
Assignment
void clear ()
 
void set (const TriangulatedSurface &surface, bool=true)
 
TriangulatedSurfaceoperator= (const TriangulatedSurface &surface)
 
Accessors
void insert (TrianglePoint *point)
 
void insert (TriangleEdge *edge)
 
void insert (Triangle *triangle)
 
BALL_DEPRECATED Size numberOfPoints () const
 
Size getNumberOfPoints () const
 
BALL_DEPRECATED Size numberOfEdges () const
 
Size getNumberOfEdges () const
 
BALL_DEPRECATED Size numberOfTriangles () const
 
Size getNumberOfTriangles () const
 
void remove (TrianglePoint *point, bool deep=true)
 
void remove (PointIterator p, bool deep=true)
 
void remove (TriangleEdge *edge, bool deep=true)
 
void remove (EdgeIterator e, bool deep=true)
 
void remove (Triangle *triangle, bool deep=true)
 
void remove (TriangleIterator t, bool deep=true)
 
void exportSurface (Surface &surface)
 
TriangulatedSurfaceoperator+= (const TriangulatedSurface &surface)
 
void join (TriangulatedSurface &source)
 
void shift (const TVector3< double > &c)
 
void blowUp (const double &r)
 
void setIndices ()
 
void setDensity (const double &density)
 
double getDensity () const
 
void cut (const TPlane3< double > &plane, const double &fuzzy=0)
 
void shrink ()
 
void deleteIsolatedEdges ()
 
void deleteIsolatedPoints ()
 
void getBorder (std::list< TriangleEdge * > &border)
 

Static Public Member Functions

Static Members
static TriangulatedSurfacecreateTube (unsigned int num_vertices, unsigned int subdiv=0, bool closed=false, bool out=true)
 
static TriangulatedSurfacecreateDisk (unsigned int num_vertices, bool out=true)
 

External Iterators

Size number_of_points_
 
std::list< TrianglePoint * > points_
 
Size number_of_edges_
 
std::list< TriangleEdge * > edges_
 
Size number_of_triangles_
 
std::list< Triangle * > triangles_
 
double density_
 
PointIterator beginPoint ()
 
ConstPointIterator beginPoint () const
 
PointIterator endPoint ()
 
ConstPointIterator endPoint () const
 
EdgeIterator beginEdge ()
 
ConstEdgeIterator beginEdge () const
 
EdgeIterator endEdge ()
 
ConstEdgeIterator endEdge () const
 
TriangleIterator beginTriangle ()
 
ConstTriangleIterator beginTriangle () const
 
TriangleIterator endTriangle ()
 
ConstTriangleIterator endTriangle () const
 
bool canBeCopied () const
 
void copy (const TriangulatedSurface &surface)
 

Detailed Description

Generic TriangulatedSurface Class.

Definition at line 40 of file triangulatedSurface.h.

Member Typedef Documentation

typedef std::list<TriangleEdge*>::const_iterator BALL::TriangulatedSurface::ConstEdgeIterator

Definition at line 58 of file triangulatedSurface.h.

typedef std::list<TrianglePoint*>::const_iterator BALL::TriangulatedSurface::ConstPointIterator

Definition at line 54 of file triangulatedSurface.h.

typedef std::list<Triangle*>::const_iterator BALL::TriangulatedSurface::ConstTriangleIterator

Definition at line 62 of file triangulatedSurface.h.

Definition at line 56 of file triangulatedSurface.h.

Definition at line 52 of file triangulatedSurface.h.

Definition at line 60 of file triangulatedSurface.h.

Constructor & Destructor Documentation

BALL::TriangulatedSurface::TriangulatedSurface ( )

Default constructor. This method creates a new TriangulatedSurface object.

BALL::TriangulatedSurface::TriangulatedSurface ( const TriangulatedSurface surface,
bool  = true 
)

Copy constructor. Create a new TriangulatedSurface object from another.

Parameters
surfacethe TriangulatedSurface object to be copied
boolignored - just for interface consistency
virtual BALL::TriangulatedSurface::~TriangulatedSurface ( )
virtual

Destructor. Destructs the TriangulatedSurface object.

Member Function Documentation

EdgeIterator BALL::TriangulatedSurface::beginEdge ( )
ConstEdgeIterator BALL::TriangulatedSurface::beginEdge ( ) const
PointIterator BALL::TriangulatedSurface::beginPoint ( )
ConstPointIterator BALL::TriangulatedSurface::beginPoint ( ) const
TriangleIterator BALL::TriangulatedSurface::beginTriangle ( )
ConstTriangleIterator BALL::TriangulatedSurface::beginTriangle ( ) const
void BALL::TriangulatedSurface::blowUp ( const double r)

Blow up th TriangulatedSurface. All points are multiplied by a scalar r.

Parameters
rthe blow up factor
bool BALL::TriangulatedSurface::canBeCopied ( ) const
protected
void BALL::TriangulatedSurface::clear ( )

Delete all points, edges and triangles.

void BALL::TriangulatedSurface::copy ( const TriangulatedSurface surface)
protected
static TriangulatedSurface* BALL::TriangulatedSurface::createDisk ( unsigned int  num_vertices,
bool  out = true 
)
static

A static function that constructs a triangulated disk. The disk lies in the x-y plane and has radius 1.

Parameters
num_verticesThe amount of vertices of which the border of the disk is composed
outControls whether the normals of the tube are pointing up or downwards. Default: true
static TriangulatedSurface* BALL::TriangulatedSurface::createTube ( unsigned int  num_vertices,
unsigned int  subdiv = 0,
bool  closed = false,
bool  out = true 
)
static

A static function that constructs a triangulated tube. The tube is oriented along the z-axis, starts at z=0, ends at z=1 and has radius 1

Parameters
num_verticesThe amount of vertices of which the base of the tube is composed
subdivControls the amount of subdivisions along the z-axis. Default: 0
closedShould the tube have opend or closed ends? Default: false
outControls whether the normals of the tube are pointing in or outwards. Default: true
void BALL::TriangulatedSurface::cut ( const TPlane3< double > &  plane,
const double fuzzy = 0 
)

Cut the TriangulatedSurface on a plane.

Parameters
planethe plane to cut on
fuzzy
void BALL::TriangulatedSurface::deleteIsolatedEdges ( )

Delete all isolated edges of the TriangulatedSurface

void BALL::TriangulatedSurface::deleteIsolatedPoints ( )

Delete all isolated points of the TriangulatedSurface

EdgeIterator BALL::TriangulatedSurface::endEdge ( )
ConstEdgeIterator BALL::TriangulatedSurface::endEdge ( ) const
PointIterator BALL::TriangulatedSurface::endPoint ( )
ConstPointIterator BALL::TriangulatedSurface::endPoint ( ) const
TriangleIterator BALL::TriangulatedSurface::endTriangle ( )
ConstTriangleIterator BALL::TriangulatedSurface::endTriangle ( ) const
void BALL::TriangulatedSurface::exportSurface ( Surface surface)

Create a Surface object from the TriangulatedeSurface.

Parameters
surfacethe created Surface object
void BALL::TriangulatedSurface::getBorder ( std::list< TriangleEdge * > &  border)

Get the border edges of the TriangulatedSurface. Border edges are the edges with only one triangle.

Parameters
bordera list of the border edges
double BALL::TriangulatedSurface::getDensity ( ) const

Get the density used by triangulation algorithms.

Size BALL::TriangulatedSurface::getNumberOfEdges ( ) const

Get the number of edges of the TriangulatedSurface.

Size BALL::TriangulatedSurface::getNumberOfPoints ( ) const

Get the number of points of the TriangulatedSurface.

Deprecated:
Use TriangulatedSurface::getNumberOfPoints() instead
Size BALL::TriangulatedSurface::getNumberOfTriangles ( ) const

Get the number of triangles of the TriangulatedSurface. Use TriangulatedSurface::getNumberOfTriangles() instead

void BALL::TriangulatedSurface::insert ( TrianglePoint point)

Insert a new point to the TriangulatedSurface.

Parameters
pointa pointer to the new point
void BALL::TriangulatedSurface::insert ( TriangleEdge edge)

Insert a new edge to the TriangulatedSurface.

Parameters
edgea pointer to the new edge
void BALL::TriangulatedSurface::insert ( Triangle triangle)

Insert a new triangle to the TriangulatedSurface.

Parameters
trianglea pointer to the new triangle
void BALL::TriangulatedSurface::join ( TriangulatedSurface source)

Add a TriangulatedSurface object. The lists of points, edges and triangles of the given TriangulatedSurface objact are appended. After this operation, the given TriangulatedSurface objact will be empty!

Parameters
sourcethe TriangulatedSurface object to add
BALL_DEPRECATED Size BALL::TriangulatedSurface::numberOfEdges ( ) const

Get the number of edges of the TriangulatedSurface.

Deprecated:
Use TriangulatedSurface::getNumberOfEdges() instead
BALL_DEPRECATED Size BALL::TriangulatedSurface::numberOfPoints ( ) const

Get the number of points of the TriangulatedSurface.

Deprecated:
Use TriangulatedSurface::getNumberOfPoints() instead
BALL_DEPRECATED Size BALL::TriangulatedSurface::numberOfTriangles ( ) const

Get the number of triangles of the TriangulatedSurface.

Deprecated:
Use TriangulatedSurface::getNumberOfTriangles() instead
TriangulatedSurface& BALL::TriangulatedSurface::operator+= ( const TriangulatedSurface surface)

Add a TriangulatedSurface object. The lists of points, edges and triangles of the given TriangulatedSurface objact are appended. The given TriangulatedSurface objact will be unchanged.

Parameters
surfacethe TriangulatedSurface object to add
TriangulatedSurface& BALL::TriangulatedSurface::operator= ( const TriangulatedSurface surface)

Assign from another TriangulatedSurface.

Parameters
surfacethe TriangulatedSurface object to assign from
void BALL::TriangulatedSurface::remove ( TrianglePoint point,
bool  deep = true 
)

Remove a point from the TriangulatedSurface. If deep is true (default) the incidence-structure will be updated.

Parameters
pointa pointer to the point to delete
deeplook above
void BALL::TriangulatedSurface::remove ( PointIterator  p,
bool  deep = true 
)

Remove a point from the TriangulatedSurface. If deep is true (default) the incidence-structure will be updated.

Parameters
pan iterator into the list of points of the TriangulatedSurface which indicates the point to delete
deeplook above
void BALL::TriangulatedSurface::remove ( TriangleEdge edge,
bool  deep = true 
)

Remove an edge from the TriangulatedSurface. If deep is true (not default) the incidence-structure will be updated.

Parameters
edgea pointer to the edge to delete
deeplook above
void BALL::TriangulatedSurface::remove ( EdgeIterator  e,
bool  deep = true 
)

Remove an edge from the TriangulatedSurface. If deep is true (not default) the incidence-structure will be updated.

Parameters
ean iterator into the list of edges of the TriangulatedSurface which indicates the edge to delete
deeplook above
void BALL::TriangulatedSurface::remove ( Triangle triangle,
bool  deep = true 
)

Remove a triangle from the TriangulatedSurface. If deep is true (not default) the incidence-structure will be updated.

Parameters
trianglea pointer to the triangle to delete
deeplook above
void BALL::TriangulatedSurface::remove ( TriangleIterator  t,
bool  deep = true 
)

Remove a triangle from the TriangulatedSurface. If deep is true (not default) the incidence-structure will be updated.

Parameters
tan iterator into the list of triangles of the TriangulatedSurface which indicates the triangle to delete
deeplook above
void BALL::TriangulatedSurface::set ( const TriangulatedSurface surface,
bool  = true 
)

Assign from another TriangulatedSurface.

Parameters
surfacethe TriangulatedSurface object to assign from
boolignored - just for interface consistency
void BALL::TriangulatedSurface::setDensity ( const double density)

Set the density used by triangulation algorithms.

void BALL::TriangulatedSurface::setIndices ( )

Set the indices of all points, edges and triangles.

void BALL::TriangulatedSurface::shift ( const TVector3< double > &  c)

Shift the TriangulatedSurface. All points are shifted by a vector c.

Parameters
cthe shift vector
void BALL::TriangulatedSurface::shrink ( )

Delete all triangles on the border of the TriangulatedSurface

Member Data Documentation

double BALL::TriangulatedSurface::density_
protected

Definition at line 375 of file triangulatedSurface.h.

std::list<TriangleEdge*> BALL::TriangulatedSurface::edges_
protected

Definition at line 365 of file triangulatedSurface.h.

Size BALL::TriangulatedSurface::number_of_edges_
protected

Definition at line 362 of file triangulatedSurface.h.

Size BALL::TriangulatedSurface::number_of_points_
protected

Definition at line 356 of file triangulatedSurface.h.

Size BALL::TriangulatedSurface::number_of_triangles_
protected

Definition at line 368 of file triangulatedSurface.h.

std::list<TrianglePoint*> BALL::TriangulatedSurface::points_
protected

Definition at line 359 of file triangulatedSurface.h.

std::list<Triangle*> BALL::TriangulatedSurface::triangles_
protected

Definition at line 371 of file triangulatedSurface.h.