BALL::TriangulatedSurface Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/triangulatedSurface.h>

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

List of all members.


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)
External Iterators
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

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)

Protected Member Functions

External Iterators
bool canBeCopied () const
void copy (const TriangulatedSurface &surface)

Protected Attributes

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_

Detailed Description

Generic TriangulatedSurface Class.


Member Typedef Documentation

typedef std::list<TriangleEdge*>::const_iterator BALL::TriangulatedSurface::ConstEdgeIterator
typedef std::list<TrianglePoint*>::const_iterator BALL::TriangulatedSurface::ConstPointIterator
typedef std::list<Triangle*>::const_iterator BALL::TriangulatedSurface::ConstTriangleIterator

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:
surface the TriangulatedSurface object to be copied
bool ignored - just for interface consistency
virtual BALL::TriangulatedSurface::~TriangulatedSurface (  )  [virtual]

Destructor. Destructs the TriangulatedSurface object.


Member Function Documentation

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

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

Parameters:
r the 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_vertices The amount of vertices of which the border of the disk is composed
out Controls 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_vertices The amount of vertices of which the base of the tube is composed
subdiv Controls the amount of subdivisions along the z-axis. Default: 0
closed Should the tube have opend or closed ends? Default: false
out Controls 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:
plane the 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

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

Create a Surface object from the TriangulatedeSurface.

Parameters:
surface the 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:
border a list of the border edges
double BALL::TriangulatedSurface::getDensity (  )  const

Get the density used by triangulation algorithms.

Reimplemented in BALL::TriangulatedSAS, and BALL::TriangulatedSES.

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 ( Triangle triangle  ) 

Insert a new triangle to the TriangulatedSurface.

Parameters:
triangle a pointer to the new triangle
void BALL::TriangulatedSurface::insert ( TriangleEdge edge  ) 

Insert a new edge to the TriangulatedSurface.

Parameters:
edge a pointer to the new edge
void BALL::TriangulatedSurface::insert ( TrianglePoint point  ) 

Insert a new point to the TriangulatedSurface.

Parameters:
point a pointer to the new point
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:
source the 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:
surface the TriangulatedSurface object to add
TriangulatedSurface& BALL::TriangulatedSurface::operator= ( const TriangulatedSurface surface  ) 

Assign from another TriangulatedSurface.

Parameters:
surface the TriangulatedSurface object to assign from
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:
t an iterator into the list of triangles of the TriangulatedSurface which indicates the triangle to delete
deep look 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:
triangle a pointer to the triangle to delete
deep look 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:
e an iterator into the list of edges of the TriangulatedSurface which indicates the edge to delete
deep look 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:
edge a pointer to the edge to delete
deep look 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:
p an iterator into the list of points of the TriangulatedSurface which indicates the point to delete
deep look above
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:
point a pointer to the point to delete
deep look above
void BALL::TriangulatedSurface::set ( const TriangulatedSurface surface,
bool  = true 
)

Assign from another TriangulatedSurface.

Parameters:
surface the TriangulatedSurface object to assign from
bool ignored - just for interface consistency
void BALL::TriangulatedSurface::setDensity ( const double density  ) 

Set the density used by triangulation algorithms.

Reimplemented in BALL::TriangulatedSAS, and BALL::TriangulatedSES.

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:
c the shift vector
void BALL::TriangulatedSurface::shrink (  ) 

Delete all triangles on the border of the TriangulatedSurface


Member Data Documentation