BALL 1.5.0
Loading...
Searching...
No Matches

#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)
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)
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
Public Member Functions inherited from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >
 GraphTriangle ()
virtual ~GraphTriangle ()
void set (const GraphTriangle< RSVertex, RSEdge, RSFace > &face, bool deep=false)
GraphTriangle< RSVertex, RSEdge, RSFace > & operator= (const GraphTriangle< RSVertex, RSEdge, RSFace > &face)
void setVertex (Position i, RSVertex *vertex)
RSVertexgetVertex (Position i) const
void setEdge (Position i, RSEdge *edge)
RSEdgegetEdge (Position i) 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
RSVertexthird (const RSVertex *v1, const RSVertex *v2) const
RSEdgegetOppositeEdge (const RSVertex *vertex) const
RSVertexgetOppositeVertex (const RSEdge *edge) const
bool substitute (const RSVertex *old_vertex, RSVertex *new_vertex)
RSVertexhas (RSVertex *vertex) const

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
Friends inherited from BALL::GraphTriangle< RSVertex, RSEdge, RSFace >

Accessors

TVector3< doublecenter_
TVector3< doublenormal_
bool singular_
void setCenter (const TVector3< double > &center)
TVector3< doublegetCenter () const
void setNormal (const TVector3< double > &normal)
TVector3< doublegetNormal () const
void setSingular (bool singular)
void remove (HashSet< RSEdge * > &edges, HashSet< RSVertex * > &vertices, HashSet< RSFace * > &faces)

Additional Inherited Members

RSVertexvertex_ [3]
RSEdgeedge_ [3]
Index index_

Detailed Description

Generic RSFace Class.

Definition at line 40 of file RSFace.h.

Constructor & Destructor Documentation

◆ RSFace() [1/3]

BALL::RSFace::RSFace ( )

Default constructor. This method creates a new RSFace object.

◆ RSFace() [2/3]

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.

◆ RSFace() [3/3]

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 )

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
Exceptions
BALL::Exception::DivisionByZero

◆ ~RSFace()

virtual BALL::RSFace::~RSFace ( )
virtual

Destructor. Destructs the RSFace object.

Member Function Documentation

◆ getCenter()

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

◆ getNormal()

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

Return the vector orthogonal to the RSFace.

Returns
TVector3<double> the vector orthogonal to the RSFace.

◆ isSingular()

bool BALL::RSFace::isSingular ( ) const

isSingular

Returns
bool true if the RSFace is singular,
false otherwise

◆ operator!=()

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 >.

◆ operator*=()

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 >.

◆ operator=()

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

◆ operator==()

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 >.

◆ remove()

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.

◆ set() [1/2]

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.

◆ set() [2/2]

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 )

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
Exceptions
BALL::Exception::DivisionByZero

◆ setCenter()

void BALL::RSFace::setCenter ( const TVector3< double > & center)

Set the center of the probe sphere defining the RSFace.

Parameters
centerthe new center

◆ setNormal()

void BALL::RSFace::setNormal ( const TVector3< double > & normal)

Set the vector orthogonal to the RSFace.

Parameters
normalthe new normal
Exceptions
BALL::Exception::DivisionByZero

◆ setSingular()

void BALL::RSFace::setSingular ( bool singular)

Set singular

◆ ReducedSurface

friend class ReducedSurface
friend

Definition at line 68 of file RSFace.h.

◆ RSComputer

friend class RSComputer
friend

Definition at line 69 of file RSFace.h.

◆ RSEdge

friend class RSEdge
friend

Definition at line 66 of file RSFace.h.

◆ RSVertex

friend class RSVertex
friend

Definition at line 67 of file RSFace.h.

◆ SASEdge

friend class SASEdge
friend

Definition at line 78 of file RSFace.h.

◆ SASFace

friend class SASFace
friend

Definition at line 79 of file RSFace.h.

◆ SASTriangulator

friend class SASTriangulator
friend

Definition at line 83 of file RSFace.h.

◆ SASVertex

friend class SASVertex
friend

Definition at line 80 of file RSFace.h.

◆ SESComputer

friend class SESComputer
friend

Definition at line 74 of file RSFace.h.

◆ SESEdge

friend class SESEdge
friend

Definition at line 70 of file RSFace.h.

◆ SESFace

friend class SESFace
friend

Definition at line 71 of file RSFace.h.

◆ SESSingularityCleaner

friend class SESSingularityCleaner
friend

Definition at line 75 of file RSFace.h.

◆ SESTriangulator

friend class SESTriangulator
friend

Definition at line 77 of file RSFace.h.

◆ SESVertex

friend class SESVertex
friend

Definition at line 72 of file RSFace.h.

◆ SolventAccessibleSurface

friend class SolventAccessibleSurface
friend

Definition at line 81 of file RSFace.h.

◆ SolventExcludedSurface

friend class SolventExcludedSurface
friend

Definition at line 73 of file RSFace.h.

◆ TriangulatedSAS

friend class TriangulatedSAS
friend

Definition at line 82 of file RSFace.h.

◆ TriangulatedSES

friend class TriangulatedSES
friend

Definition at line 76 of file RSFace.h.

Member Data Documentation

◆ center_

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

Definition at line 275 of file RSFace.h.

◆ normal_

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

Definition at line 278 of file RSFace.h.

◆ singular_

bool BALL::RSFace::singular_
protected

Definition at line 281 of file RSFace.h.