BALL::SESFace Class Reference

#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:
sesfacethe SESFace object to be copied
deepif 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:
typeassigned the type
rsvertexassigned to the rsvertex
rsedgeassigned to the rsedge
rsfaceassigned 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:
facethe 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:
sesfacethe 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:
sesfacethe SESFace object to assign from
deepif 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:
rsedgea pointer to the new RSFace
void BALL::SESFace::setRSFace ( RSFace rsface)

Set the corresponding RSFace of the SESFace.

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

Set the corresponding RSVertex of the SESFace.

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

Set the type of the SESFace.

Parameters:
typethe 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