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

#include <BALL/STRUCTURE/SESFace.h>

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

Public Types

Enums
enum  Type { TYPE_SPHERIC = 0, TYPE_TORIC = 1, TYPE_CONTACT = 2, TYPE_TORIC_SINGULAR = 3 }
 
- Public Types inherited from BALL::GraphFace< SESVertex, SESEdge, SESFace >
typedef std::list< SESVertex * >
::iterator 
VertexIterator
 
typedef std::list< SESVertex * >
::const_iterator 
ConstVertexIterator
 
typedef std::list< SESEdge * >
::iterator 
EdgeIterator
 
typedef std::list< SESEdge * >
::const_iterator 
ConstEdgeIterator
 

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
 
- Public Member Functions inherited from BALL::GraphFace< SESVertex, SESEdge, SESFace >
 GraphFace ()
 
 GraphFace (const GraphFace< SESVertex, SESEdge, SESFace > &face, bool deep=false)
 
virtual ~GraphFace ()
 
void set (const GraphFace< SESVertex, SESEdge, SESFace > &face, bool deep=false)
 
GraphFace< SESVertex, SESEdge,
SESFace > & 
operator= (const GraphFace< SESVertex, SESEdge, SESFace > &face)
 
void insert (SESVertex *vertex)
 
void insert (SESEdge *edge)
 
void remove (SESVertex *vertex)
 
void remove (SESEdge *edge)
 
Position numberOfVertices () const
 
Position numberOfEdges () const
 
void setIndex (Index index)
 
Index getIndex () const
 
bool getEdges (const SESVertex *vertex, SESEdge *&edge1, SESEdge *&edge2) const
 
bool getEdge (const SESVertex *vertex1, const SESVertex *vertex2, SESEdge *&edge) const
 
SESEdgegetSimilarEdge (const SESEdge *edge) const
 
bool substitute (const SESVertex *old_vertex, SESVertex *new_vertex)
 
bool substitute (const SESEdge *old_edge, SESEdge *new_edge)
 
SESVertexhas (SESVertex *vertex) const
 
SESEdgehas (SESEdge *edge) const
 
VertexIterator beginVertex ()
 
ConstVertexIterator beginVertex () const
 
VertexIterator endVertex ()
 
ConstVertexIterator endVertex () const
 
EdgeIterator beginEdge ()
 
ConstEdgeIterator beginEdge () const
 
EdgeIterator endEdge ()
 
ConstEdgeIterator endEdge () const
 

Protected Attributes

Attributes
Type type_
 
RSVertexrsvertex_
 
RSEdgersedge_
 
RSFacersface_
 
- Protected Attributes inherited from BALL::GraphFace< SESVertex, SESEdge, SESFace >
std::list< SESVertex * > vertex_
 
std::list< SESEdge * > edge_
 
Index index_
 

Friends

Class friends
class SESEdge
 
class SESVertex
 
class SolventExcludedSurface
 
class SESComputer
 
class SESSingularityCleaner
 
class TriangulatedSES
 
class SESTriangulator
 
Class friends
  • class GraphVertex<Vertex,Edge,Face>;
  • class GraphEdge<Vertex,Edge,Face>;

Detailed Description

Generic SESFace Class.

Definition at line 37 of file SESFace.h.

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 

Definition at line 72 of file SESFace.h.

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

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.

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

Definition at line 55 of file SESFace.h.

friend class SESEdge
friend

Definition at line 52 of file SESFace.h.

friend class SESSingularityCleaner
friend

Definition at line 56 of file SESFace.h.

friend class SESTriangulator
friend

Definition at line 58 of file SESFace.h.

friend class SESVertex
friend

Definition at line 53 of file SESFace.h.

friend class SolventExcludedSurface
friend

Definition at line 54 of file SESFace.h.

friend class TriangulatedSES
friend

Definition at line 57 of file SESFace.h.

Member Data Documentation

RSEdge* BALL::SESFace::rsedge_
protected

Definition at line 283 of file SESFace.h.

RSFace* BALL::SESFace::rsface_
protected

Definition at line 287 of file SESFace.h.

RSVertex* BALL::SESFace::rsvertex_
protected

Definition at line 279 of file SESFace.h.

Type BALL::SESFace::type_
protected

Definition at line 275 of file SESFace.h.