BALL::TSurface< T > Class Template Reference
[Surface in three-dimensional space.]

#include <BALL/MATHS/surface.h>

List of all members.


Classes

class  Triangle

Public Types

Type definitions
typedef TVector3< T > Vertex
 

A vertex.


typedef TVector3< T > Normal
 

A normal.



Public Member Functions

Constructors and Destructors
 TSurface ()
 TSurface (const TSurface &surface)
virtual ~TSurface ()
Assignment
void set (const TSurface &surface)
TSurfaceoperator= (const TSurface &surface)
void get (TSurface &surface) const
void clear ()
void readMSMSFile (const String &vert_filename, const String &face_filename) throw (Exception::FileNotFound)
Accessors
float getArea () const
Size getNumberOfTriangles () const
 

Return the number of triangles.


Size getNumberOfVertices () const
 

Return the number of vertices.


Size getNumberOfNormals () const
 

Return the number of normals.


TrianglegetTriangle (Position index)
 

Return a triangle with a given index.


const TrianglegetTriangle (Position index) const
 

Return a triangle with a given index.


void clearTriangles ()
 

Clear all triangles.


void resizeTriangles (Size size)
 

Resize the triangle array.


void pushBackTriangle (const Triangle &triangle)
 

Add a triangle.


VertexgetVertex (Position index)
 

Return the position of a vertex.


const VertexgetVertex (Position index) const
 

Return the position of a vertex.


void clearVertices ()
 

Clear all vertices.


void resizeVertices (Size size)
 

Resize the vertex array.


void pushBackVertex (const Vertex &vertex)
 

Add a vertex.


NormalgetNormal (Position index)
 

Return the position of a normal.


const NormalgetNormal (Position index) const
 

Return the position of a normal.


void clearNormals ()
 

Clear all normals.


void resizeNormals (Size size)
 

Resize the normal array.


void pushBackNormal (const Normal &n)
 

Add a normal.


Predicates
bool operator== (const TSurface &surface) const
bool operator!= (const TSurface &surface) const

Public Attributes

Attributes
vector< Vertexvertex
 

the vertices


vector< Normalnormal
 

the normals for each vertex


vector< Triangletriangle
 

the triangles



Detailed Description

template<typename T>
class BALL::TSurface< T >

Generic Three-dimensional Surface class. This class describes a three-dimensional triangulated surface. Each triangle is represented by three indices to vertices (as described by the TSurface::Triangle ). Each of the vertices has a position and possibly a normal vector associated.


Member Typedef Documentation

template<typename T>
typedef TVector3<T> BALL::TSurface< T >::Normal

A normal.

template<typename T>
typedef TVector3<T> BALL::TSurface< T >::Vertex

A vertex.


Constructor & Destructor Documentation

template<typename T >
BALL::TSurface< T >::TSurface (  )  [inline]

This is required for windows dlls

template<typename T >
BALL::TSurface< T >::TSurface ( const TSurface< T > &  surface  )  [inline]
template<typename T >
BALL::TSurface< T >::~TSurface (  )  [inline, virtual]

Member Function Documentation

template<typename T >
void BALL::TSurface< T >::clear (  )  [inline]
template<typename T >
BALL_INLINE void BALL::TSurface< T >::clearNormals (  )  [inline]

Clear all normals.

References BALL::TSurface< T >::normal.

template<typename T >
BALL_INLINE void BALL::TSurface< T >::clearTriangles (  )  [inline]

Clear all triangles.

References BALL::TSurface< T >::triangle.

template<typename T >
BALL_INLINE void BALL::TSurface< T >::clearVertices (  )  [inline]

Clear all vertices.

References BALL::TSurface< T >::vertex.

template<typename T >
void BALL::TSurface< T >::get ( TSurface< T > &  surface  )  const [inline]
template<typename T >
float BALL::TSurface< T >::getArea (  )  const [inline]

Compute the surface area. The area is computed as the sum of the areas of all triangles.

References BALL::TSurface< T >::triangle, and BALL::TSurface< T >::vertex.

template<typename T >
BALL_INLINE const TSurface< T >::Normal & BALL::TSurface< T >::getNormal ( Position  index  )  const [inline]

Return the position of a normal.

References BALL::TSurface< T >::normal.

template<typename T >
BALL_INLINE TSurface< T >::Normal & BALL::TSurface< T >::getNormal ( Position  index  )  [inline]

Return the position of a normal.

References BALL::TSurface< T >::normal.

template<typename T >
BALL_INLINE Size BALL::TSurface< T >::getNumberOfNormals (  )  const [inline]

Return the number of normals.

References BALL::TSurface< T >::normal.

template<typename T >
BALL_INLINE Size BALL::TSurface< T >::getNumberOfTriangles (  )  const [inline]

Return the number of triangles.

References BALL::TSurface< T >::triangle.

template<typename T >
BALL_INLINE Size BALL::TSurface< T >::getNumberOfVertices (  )  const [inline]

Return the number of vertices.

References BALL::TSurface< T >::vertex.

template<typename T >
BALL_INLINE const TSurface< T >::Triangle & BALL::TSurface< T >::getTriangle ( Position  index  )  const [inline]

Return a triangle with a given index.

References BALL::TSurface< T >::triangle.

template<typename T >
BALL_INLINE TSurface< T >::Triangle & BALL::TSurface< T >::getTriangle ( Position  index  )  [inline]

Return a triangle with a given index.

References BALL::TSurface< T >::triangle.

template<typename T >
BALL_INLINE const TSurface< T >::Vertex & BALL::TSurface< T >::getVertex ( Position  index  )  const [inline]

Return the position of a vertex.

References BALL::TSurface< T >::vertex.

template<typename T >
BALL_INLINE TSurface< T >::Vertex & BALL::TSurface< T >::getVertex ( Position  index  )  [inline]

Return the position of a vertex.

References BALL::TSurface< T >::vertex.

template<typename T >
bool BALL::TSurface< T >::operator!= ( const TSurface< T > &  surface  )  const [inline]
template<typename T >
TSurface< T > & BALL::TSurface< T >::operator= ( const TSurface< T > &  surface  )  [inline]
template<typename T >
bool BALL::TSurface< T >::operator== ( const TSurface< T > &  surface  )  const [inline]
template<typename T>
void BALL::TSurface< T >::pushBackNormal ( const Normal n  ) 

Add a normal.

template<typename T >
BALL_INLINE void BALL::TSurface< T >::pushBackTriangle ( const Triangle triangle  )  [inline]

Add a triangle.

References BALL::TSurface< T >::triangle.

template<typename T>
void BALL::TSurface< T >::pushBackVertex ( const Vertex vertex  ) 

Add a vertex.

template<typename T >
void BALL::TSurface< T >::readMSMSFile ( const String vert_filename,
const String face_filename 
) throw (Exception::FileNotFound) [inline]

Read from MSMS file. Read the contents of the vertex and faces file created by Michael Sanners software MSMS.

References BALL::String::countFields(), BALL::String::getline(), BALL::String::split(), BALL::TSurface< T >::Triangle::v1, BALL::TSurface< T >::Triangle::v2, and BALL::TSurface< T >::Triangle::v3.

template<typename T >
BALL_INLINE void BALL::TSurface< T >::resizeNormals ( Size  size  )  [inline]

Resize the normal array.

References BALL::TSurface< T >::normal.

template<typename T >
BALL_INLINE void BALL::TSurface< T >::resizeTriangles ( Size  size  )  [inline]

Resize the triangle array.

References BALL::TSurface< T >::triangle.

template<typename T >
BALL_INLINE void BALL::TSurface< T >::resizeVertices ( Size  size  )  [inline]

Resize the vertex array.

References BALL::TSurface< T >::vertex.

template<typename T >
void BALL::TSurface< T >::set ( const TSurface< T > &  surface  )  [inline]

Member Data Documentation