BALL::RSFace Class Reference

#include <BALL/STRUCTURE/RSFace.h>

Inheritance diagram for BALL::RSFace:
BALL::GraphTriangle< RSVertex, RSEdge, RSFace >

List of all members.

Public Member Functions

Constructors and Destructors
 RSFace ()
 RSFace (const RSFace &rsface, bool deep=false)
 RSFace (RSVertex *vertex1, RSVertex *vertex2, RSVertex *vertex3, RSEdge *edge1, RSEdge *edge2, RSEdge *edge3, const TVector3< double > &center, const TVector3< double > &normal, bool singular, Index index) throw (Exception::DivisionByZero)
virtual ~RSFace ()
Assignment
void set (const RSFace &rsface, bool deep=false)
RSFaceoperator= (const RSFace &rsface)
void set (RSVertex *vertex1, RSVertex *vertex2, RSVertex *vertex3, RSEdge *edge1, RSEdge *edge2, RSEdge *edge3, const TVector3< double > &center, const TVector3< double > &normal, bool singular, Index index) throw (Exception::DivisionByZero)
Predicates
virtual bool operator== (const RSFace &rsface) const
virtual bool operator!= (const RSFace &rsface) const
virtual bool operator*= (const RSFace &rsface) const
bool isSingular () const
Accessors
void setCenter (const TVector3< double > &center)
TVector3< doublegetCenter () const
void setNormal (const TVector3< double > &normal) throw (Exception::DivisionByZero)
TVector3< doublegetNormal () const
void setSingular (bool singular)
void remove (HashSet< RSEdge * > &edges, HashSet< RSVertex * > &vertices, HashSet< RSFace * > &faces)

Protected Attributes

TVector3< doublecenter_
TVector3< doublenormal_
bool singular_

Friends

Class friends
class RSEdge
class RSVertex
class ReducedSurface
class RSComputer
class SESEdge
class SESFace
class SESVertex
class SolventExcludedSurface
class SESComputer
class SESSingularityCleaner
class TriangulatedSES
class SESTriangulator
class SASEdge
class SASFace
class SASVertex
class SolventAccessibleSurface
class TriangulatedSAS
class SASTriangulator

Detailed Description

Generic RSFace Class.


Constructor & Destructor Documentation

BALL::RSFace::RSFace ( )

Default constructor. This method creates a new RSFace object.

BALL::RSFace::RSFace ( const RSFace rsface,
bool  deep = false 
)

Copy constructor. Create a new RSFace object from another.

Parameters:
rsfacethe RSFace object to be copied
deepif deep = false, all pointers are set to NULL (default). Otherwise the new RSFace object is linked to the neighbours of the old RSFace object.
BALL::RSFace::RSFace ( RSVertex vertex1,
RSVertex vertex2,
RSVertex vertex3,
RSEdge edge1,
RSEdge edge2,
RSEdge edge3,
const TVector3< double > &  center,
const TVector3< double > &  normal,
bool  singular,
Index  index 
) throw (Exception::DivisionByZero)

Detailled constructor. Create a new RSFace object from a lot of nice objects

Parameters:
vertex1assigned to the first vertex
vertex2assigned to the second vertex
vertex3assigned to the third vertex
edge1assigned to the first edge
edge2assigned to the second edge
edge3assigned to the third edge
centerassigned to the center
normalassigned to the normal vector
singular
indexassigned to the index
virtual BALL::RSFace::~RSFace ( ) [virtual]

Destructor. Destructs the RSFace object.


Member Function Documentation

TVector3<double> BALL::RSFace::getCenter ( ) const

Return the center of the probe sphere defining the RSFace.

Returns:
TVector3<double> the center of the probe sphere
TVector3<double> BALL::RSFace::getNormal ( ) const

Return the vector orthogonal to the RSFace.

Returns:
TVector3<double> the vector orthogonal to the RSFace.
bool BALL::RSFace::isSingular ( ) const

isSingular

Returns:
bool true if the RSFace is singular, false otherwise
virtual bool BALL::RSFace::operator!= ( const RSFace rsface) const [virtual]

Inequality operator.

Returns:
bool false if all vertices are similar modulo order and the centers are equal, true otherwise

Reimplemented from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >.

virtual bool BALL::RSFace::operator*= ( const RSFace rsface) const [virtual]

Similarity operator.

Returns:
bool true if all vertices are similar modulo order, false otherwise

Reimplemented from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >.

RSFace& BALL::RSFace::operator= ( const RSFace rsface)

Assign from another RSFace. The RSFace object is linked to the neighbours of the RSFace object to assign from.

Parameters:
rsfacethe RSFace object to assign from
virtual bool BALL::RSFace::operator== ( const RSFace rsface) const [virtual]

Equality operator.

Returns:
bool true if all vertices are similar modulo order and the centers are equal, false otherwise

Reimplemented from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >.

void BALL::RSFace::remove ( HashSet< RSEdge * > &  edges,
HashSet< RSVertex * > &  vertices,
HashSet< RSFace * > &  faces 
)

Remove a RSFace from a ReducedSurface graph structure.

Parameters:
edgesIn this HashSet all edges are pushed which do not belong to any face after this remove step.
verticesIn this HashSet all vertices are pushed which possibliy are isolated after this remove step.
facesIn this HashSet all faces are pushed which have lost a neighbour face during this remove step.
void BALL::RSFace::set ( const RSFace rsface,
bool  deep = false 
)

Assign from another RSFace.

Parameters:
rsfacethe RSFace object to assign from
deepif deep = false, all pointers are set to NULL (default). Otherwise the RSFace object is linked to the neighbours of the RSFace object to assign from.
void BALL::RSFace::set ( RSVertex vertex1,
RSVertex vertex2,
RSVertex vertex3,
RSEdge edge1,
RSEdge edge2,
RSEdge edge3,
const TVector3< double > &  center,
const TVector3< double > &  normal,
bool  singular,
Index  index 
) throw (Exception::DivisionByZero)

Assign to a lot of nice objects

Parameters:
vertex1assigned to the first vertex
vertex2assigned to the second vertex
vertex3assigned to the third vertex
edge1assigned to the first edge
edge2assigned to the second edge
edge3assigned to the third edge
centerassigned to the center
normalassigned to the normal vector
singular
indexassigned to the index
void BALL::RSFace::setCenter ( const TVector3< double > &  center)

Set the center of the probe sphere defining the RSFace.

Parameters:
centerthe new center
void BALL::RSFace::setNormal ( const TVector3< double > &  normal) throw (Exception::DivisionByZero)

Set the vector orthogonal to the RSFace.

Parameters:
normalthe new normal
void BALL::RSFace::setSingular ( bool  singular)

Set singular


Friends And Related Function Documentation

friend class ReducedSurface [friend]
friend class RSComputer [friend]
friend class RSEdge [friend]
friend class RSVertex [friend]
friend class SASEdge [friend]
friend class SASFace [friend]
friend class SASTriangulator [friend]
friend class SASVertex [friend]
friend class SESComputer [friend]
friend class SESEdge [friend]
friend class SESFace [friend]
friend class SESSingularityCleaner [friend]
friend class SESTriangulator [friend]
friend class SESVertex [friend]
friend class SolventAccessibleSurface [friend]
friend class SolventExcludedSurface [friend]
friend class TriangulatedSAS [friend]
friend class TriangulatedSES [friend]

Member Data Documentation