BALL::SESFace Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/SESFace.h>

Inheritance diagram for BALL::SESFace:
BALL::GraphFace< SESVertex, SESEdge, SESFace >

List of all members.


Public Types

Enums
enum  Type { TYPE_SPHERIC = 0, TYPE_TORIC = 1, TYPE_CONTACT = 2, TYPE_TORIC_SINGULAR = 3 }

Public Member Functions

Constructors and Destructors
 SESFace ()
 SESFace (const SESFace &sesface, bool deep=false)
 SESFace (Type type, RSVertex *rsvertex, RSEdge *rsedge, RSFace *rsface)
virtual ~SESFace ()
Assignments
void set (const SESFace &sesface, bool deep=false)
SESFaceoperator= (const SESFace &sesface)
void setType (Type type)
Type getType () const
void setRSVertex (RSVertex *rsvertex)
RSVertexgetRSVertex () const
void setRSEdge (RSEdge *rsedge)
RSEdgegetRSEdge () const
void setRSFace (RSFace *rsface)
RSFacegetRSFace () const
Accessors
void normalize (bool singular)
Predicates
virtual bool operator== (const SESFace &) const
virtual bool operator!= (const SESFace &) const
virtual bool operator*= (const SESFace &) const
bool isNeighbouredTo (SESFace *face) const
bool isFree () const
bool hasSingularEdges () const

Protected Attributes

Attributes
Type type_
RSVertexrsvertex_
RSEdgersedge_
RSFacersface_

Private Member Functions

void normalizeNonSingularToricFace_ ()
void normalizeSingularToricFace_ ()
void findTriangle_ (bool first, SESEdge *&edge0, SESEdge *&edge1, SESEdge *&edge2, SESVertex *&vertex0, SESVertex *&vertex1, SESVertex *&vertex2)

Friends

Class friends


class SESEdge
class SESVertex
class SolventExcludedSurface
class SESComputer
class SESSingularityCleaner
class TriangulatedSES
class SESTriangulator

Detailed Description

Generic SESFace Class.


Member Enumeration Documentation

type of SESFace: 0 spheric reentrant face 1 toric reentrant face 2 contact face 3 singular toric reentrant face

Enumerator:
TYPE_SPHERIC 
TYPE_TORIC 
TYPE_CONTACT 
TYPE_TORIC_SINGULAR 

Constructor & Destructor Documentation

BALL::SESFace::SESFace (  ) 

Default constructor. This method creates a new SESFace object.

BALL::SESFace::SESFace ( const SESFace sesface,
bool  deep = false 
)

Copy constructor. Create a new SESFace object from another.

Parameters:
sesface the SESFace object to be copied
deep if deep = false, all pointers are set to NULL (default). Otherwise the new SESFace object is linked to the neighbours of the old SESFace object.
BALL::SESFace::SESFace ( Type  type,
RSVertex rsvertex,
RSEdge rsedge,
RSFace rsface 
)

Detailled constructor. Create a new SESFace object

Parameters:
type assigned the type
rsvertex assigned to the rsvertex
rsedge assigned to the rsedge
rsface assigned to the rsface
virtual BALL::SESFace::~SESFace (  )  [virtual]

Destructor. Destructs the SESFace object.


Member Function Documentation

void BALL::SESFace::findTriangle_ ( bool  first,
SESEdge *&  edge0,
SESEdge *&  edge1,
SESEdge *&  edge2,
SESVertex *&  vertex0,
SESVertex *&  vertex1,
SESVertex *&  vertex2 
) [private]
RSEdge* BALL::SESFace::getRSEdge (  )  const

Get the corresponding RSEdge of the SESFace.

Returns:
RSEdge* a pointer to the corresponding RSEdge
RSFace* BALL::SESFace::getRSFace (  )  const

Get the corresponding RSFace of the SESFace.

Returns:
RSFace* a pointer to the corresponding RSFace
RSVertex* BALL::SESFace::getRSVertex (  )  const

Get the corresponding RSVertex of the SESFace.

Returns:
RSVertex* a pointer to the corresponding RSVertex
Type BALL::SESFace::getType (  )  const

Get the type of the SESFace

Returns:
SESFace::Type the type of the SESFace
bool BALL::SESFace::hasSingularEdges (  )  const

Test whether a face has singular edges.

Returns:
bool true if the face has singular edges, false otherwise
bool BALL::SESFace::isFree (  )  const

Test whether a toric face is free ore not.

Returns:
bool true if the face is toric and free, false otherwise
bool BALL::SESFace::isNeighbouredTo ( SESFace face  )  const

Test whether two faces are neighboured. Two faces are neighboured if they have a common edge.

Parameters:
face the face to be tested
Returns:
bool true if the faces are neighboured, false otherwise
void BALL::SESFace::normalize ( bool  singular  ) 

Normalize the SESFace.

void BALL::SESFace::normalizeNonSingularToricFace_ (  )  [private]
void BALL::SESFace::normalizeSingularToricFace_ (  )  [private]
virtual bool BALL::SESFace::operator!= ( const SESFace  )  const [virtual]

Inequality operator.

Returns:
bool false

Reimplemented from BALL::GraphFace< SESVertex, SESEdge, SESFace >.

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

Similarity operator.

Returns:
bool true

Reimplemented from BALL::GraphFace< SESVertex, SESEdge, SESFace >.

SESFace& BALL::SESFace::operator= ( const SESFace sesface  ) 

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

Parameters:
sesface the SESFace object to assign from
virtual bool BALL::SESFace::operator== ( const SESFace  )  const [virtual]

Equality operator.

Returns:
bool true

Reimplemented from BALL::GraphFace< SESVertex, SESEdge, SESFace >.

void BALL::SESFace::set ( const SESFace sesface,
bool  deep = false 
)

Assign from another SESFace.

Parameters:
sesface the SESFace object to assign from
deep if deep = false, all pointers are set to NULL (default). Otherwise the SESFace object is linked to the neighbours of the SESFace object to assign from.
void BALL::SESFace::setRSEdge ( RSEdge rsedge  ) 

Set the corresponding RSEdge of the SESFace.

Parameters:
rsedge a pointer to the new RSFace
void BALL::SESFace::setRSFace ( RSFace rsface  ) 

Set the corresponding RSFace of the SESFace.

Parameters:
rsface a pointer to the new RSFace
void BALL::SESFace::setRSVertex ( RSVertex rsvertex  ) 

Set the corresponding RSVertex of the SESFace.

Parameters:
rsvertex a pointer to the new RSVertex
void BALL::SESFace::setType ( Type  type  ) 

Set the type of the SESFace.

Parameters:
type the new type

Friends And Related Function Documentation

friend class SESComputer [friend]
friend class SESEdge [friend]
friend class SESSingularityCleaner [friend]
friend class SESTriangulator [friend]
friend class SESVertex [friend]
friend class SolventExcludedSurface [friend]
friend class TriangulatedSES [friend]

Member Data Documentation