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

#include <BALL/STRUCTURE/RSFace.h>

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

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)
 
- Public Member Functions inherited from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >
 GraphTriangle ()
 
 GraphTriangle (const GraphTriangle< RSVertex, RSEdge, RSFace > &face, bool deep=false)
 
 GraphTriangle (RSVertex *vertex1, RSVertex *vertex2, RSVertex *vertex3, RSEdge *edge1, RSEdge *edge2, RSEdge *edge3, Index index)
 
virtual ~GraphTriangle ()
 
void set (const GraphTriangle< RSVertex, RSEdge, RSFace > &face, bool deep=false)
 
void set (RSVertex *vertex1, RSVertex *vertex2, RSVertex *vertex3, RSEdge *edge1, RSEdge *edge2, RSEdge *edge3, Index index)
 
GraphTriangle< RSVertex,
RSEdge, RSFace > & 
operator= (const GraphTriangle< RSVertex, RSEdge, RSFace > &face)
 
void setVertex (Position i, RSVertex *vertex) throw (Exception::IndexOverflow)
 
RSVertexgetVertex (Position i) const throw (Exception::IndexOverflow)
 
void setEdge (Position i, RSEdge *edge) throw (Exception::IndexOverflow)
 
RSEdgegetEdge (Position i) const throw (Exception::IndexOverflow)
 
bool getEdge (const RSVertex *vertex1, const RSVertex *vertex2, RSEdge *&edge) const
 
void setIndex (Index index)
 
Index getIndex () const
 
bool getEdges (const RSVertex *vertex, RSEdge *&edge1, RSEdge *&edge2) const
 
Index getSimilarEdge (const RSEdge *edge, RSEdge *&similar_edge) const
 
Index getRelativeIndex (const RSVertex *vertex) const
 
Index getRelativeIndex (const RSEdge *edge) const
 
RSVertexthird (const RSVertex *v1, const RSVertex *v2) const
 
RSEdgethird (const RSEdge *e1, const RSEdge *e2) const
 
RSEdgegetOppositeEdge (const RSVertex *vertex) const
 
RSVertexgetOppositeVertex (const RSEdge *edge) const
 
bool substitute (const RSVertex *old_vertex, RSVertex *new_vertex)
 
bool substitute (const RSEdge *old_edge, RSEdge *new_edge)
 
RSVertexhas (RSVertex *vertex) const
 
RSEdgehas (RSEdge *edge) const
 

Protected Attributes

TVector3< doublecenter_
 
TVector3< doublenormal_
 
bool singular_
 
- Protected Attributes inherited from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >
RSVertexvertex_ [3]
 
RSEdgeedge_ [3]
 
Index index_
 

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
 
Class friends
  • class GraphVertex<Vertex,Edge,Face>;
  • class GraphEdge<Vertex,Edge,Face>;

Detailed Description

Generic RSFace Class.

Definition at line 40 of file RSFace.h.

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

Definition at line 68 of file RSFace.h.

friend class RSComputer
friend

Definition at line 69 of file RSFace.h.

friend class RSEdge
friend

Definition at line 66 of file RSFace.h.

friend class RSVertex
friend

Definition at line 67 of file RSFace.h.

friend class SASEdge
friend

Definition at line 78 of file RSFace.h.

friend class SASFace
friend

Definition at line 79 of file RSFace.h.

friend class SASTriangulator
friend

Definition at line 83 of file RSFace.h.

friend class SASVertex
friend

Definition at line 80 of file RSFace.h.

friend class SESComputer
friend

Definition at line 74 of file RSFace.h.

friend class SESEdge
friend

Definition at line 70 of file RSFace.h.

friend class SESFace
friend

Definition at line 71 of file RSFace.h.

friend class SESSingularityCleaner
friend

Definition at line 75 of file RSFace.h.

friend class SESTriangulator
friend

Definition at line 77 of file RSFace.h.

friend class SESVertex
friend

Definition at line 72 of file RSFace.h.

friend class SolventAccessibleSurface
friend

Definition at line 81 of file RSFace.h.

friend class SolventExcludedSurface
friend

Definition at line 73 of file RSFace.h.

friend class TriangulatedSAS
friend

Definition at line 82 of file RSFace.h.

friend class TriangulatedSES
friend

Definition at line 76 of file RSFace.h.

Member Data Documentation

TVector3<double> BALL::RSFace::center_
protected

Definition at line 275 of file RSFace.h.

TVector3<double> BALL::RSFace::normal_
protected

Definition at line 278 of file RSFace.h.

bool BALL::RSFace::singular_
protected

Definition at line 281 of file RSFace.h.