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

#include <BALL/STRUCTURE/SESEdge.h>

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

Public Types

Enums
enum  Type { TYPE_CONCAVE = 0, TYPE_CONVEX = 1, TYPE_SINGULAR = 2 }
 

Public Member Functions

Constructors and Destructors
 SESEdge ()
 
 SESEdge (const SESEdge &sesedge, bool deep=false)
 
 SESEdge (SESVertex *vertex0, SESVertex *vertex1, SESFace *face0, SESFace *face1, const TCircle3< double > &circle, RSEdge *rsedge, Type type, Index index)
 
virtual ~SESEdge ()
 
Assignment
void set (const SESEdge &sesedge, bool deep=false)
 
SESEdgeoperator= (const SESEdge &sesedge)
 
void set (SESVertex *vertex0, SESVertex *vertex1, SESFace *face0, SESFace *face1, const TCircle3< double > &circle, RSEdge *rsedge, Type type, Index index)
 
Accessors
void setCircle (const TCircle3< double > &center)
 
TCircle3< doublegetCircle () const
 
void setRSEdge (RSEdge *rsedge)
 
RSEdgegetRSEdge () const
 
void setType (Type type)
 
Type getType () const
 
Predicates
virtual bool operator== (const SESEdge &sesedge) const
 
virtual bool operator!= (const SESEdge &sesedge) const
 
virtual bool operator*= (const SESEdge &) const
 
bool isFree () const
 
- Public Member Functions inherited from BALL::GraphEdge< SESVertex, SESEdge, SESFace >
 GraphEdge ()
 
 GraphEdge (const GraphEdge< SESVertex, SESEdge, SESFace > &edge, bool deep=false)
 
 GraphEdge (SESVertex *vertex1, SESVertex *vertex2, SESFace *face1, SESFace *face2, Index index)
 
virtual ~GraphEdge ()
 
void set (const GraphEdge< SESVertex, SESEdge, SESFace > &edge, bool deep=false)
 
void set (SESVertex *vertex0, SESVertex *vertex1, SESFace *face0, SESFace *face1, Index index)
 
GraphEdge< SESVertex, SESEdge,
SESFace > & 
operator= (const GraphEdge< SESVertex, SESEdge, SESFace > &edge)
 
void setVertex (Position i, SESVertex *vertex)
 
SESVertexgetVertex (Position i) const
 
void setFace (Position i, SESFace *face)
 
SESFacegetFace (Position i) const
 
void setIndex (Index index)
 
Index getIndex () const
 
SESVertexother (const SESVertex *vertex) const throw (Exception::GeneralException)
 
SESFaceother (const SESFace *face) const throw (Exception::GeneralException)
 
bool substitute (const SESVertex *old_vertex, SESVertex *new_vertex)
 
bool substitute (const SESFace *old_vertex, SESFace *new_vertex)
 
SESFaceremove (const SESFace *face)
 
void revert ()
 

Protected Attributes

TCircle3< doublecircle_
 
RSEdgersedge_
 
Type type_
 
- Protected Attributes inherited from BALL::GraphEdge< SESVertex, SESEdge, SESFace >
SESVertexvertex_ [2]
 
SESFaceface_ [2]
 
Index index_
 

Friends

Class friends
class SESFace
 
class SESVertex
 
class SolventExcludedSurface
 
class SESComputer
 
class SESSingularityCleaner
 
class TriangulatedSES
 
class SESTriangulator
 
Class friends
  • class GraphVertex<Vertex,Edge,Face>;
  • class GraphFace<Vertex,Edge,Face>;
  • class GraphTriangle<Vertex,Edge,Face>;

Detailed Description

Generic SESEdge Class.

Definition at line 33 of file SESEdge.h.

Member Enumeration Documentation

type of SESEdge: 0 concave 1 convex 2 singular

Enumerator
TYPE_CONCAVE 
TYPE_CONVEX 
TYPE_SINGULAR 

Definition at line 67 of file SESEdge.h.

Constructor & Destructor Documentation

BALL::SESEdge::SESEdge ( )

Default constructor. This method creates a new SESEdge object.

BALL::SESEdge::SESEdge ( const SESEdge sesedge,
bool  deep = false 
)

Copy constructor. Create a new SESEdge object from another.

Parameters
sesedgethe SESEdge object to be copied
deepif deep = false, all pointers are set to NULL (default). Otherwise the new SESEdge object is linked to the neighbours of the old SESEdge object.
BALL::SESEdge::SESEdge ( SESVertex vertex0,
SESVertex vertex1,
SESFace face0,
SESFace face1,
const TCircle3< double > &  circle,
RSEdge rsedge,
Type  type,
Index  index 
)

Detailled constructor. Create a new SESEdge object from some nice objects.

Parameters
vertex0assigned to the first vertex
vertex1assigned to the second vertex
face0assigned to the first face
face1assigned to the second face
circleassigned to the circle
rsedgeassigned to the RSEdge
typeassigned to the type of the SESEdge
indexassigned to the index
virtual BALL::SESEdge::~SESEdge ( )
virtual

Destructor. Destructs the SESEdge object.

Member Function Documentation

TCircle3<double> BALL::SESEdge::getCircle ( ) const

Return the circle on wich the SESEdge lies.

Returns
TCircle3<double> the circle of The SESEdge
RSEdge* BALL::SESEdge::getRSEdge ( ) const

Return the corresponding RSEdge.

Returns
RSEdge* a pointer to th correwsponding RSEdge
Type BALL::SESEdge::getType ( ) const

Get the type of the SESEdge.

Returns
Type the type of the SESEdge
bool BALL::SESEdge::isFree ( ) const

isFree.

Returns
bool true if the RSEdge of the SESEdge is free, false otherwise
virtual bool BALL::SESEdge::operator!= ( const SESEdge sesedge) const
virtual

Inequality operator.

Returns
bool false if all vertices are equal modulo order, true otherwise

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

virtual bool BALL::SESEdge::operator*= ( const SESEdge ) const
virtual

similarity operator.

Returns
bool true

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

SESEdge& BALL::SESEdge::operator= ( const SESEdge sesedge)

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

Parameters
sesedgethe SESEdge object to assign from
virtual bool BALL::SESEdge::operator== ( const SESEdge sesedge) const
virtual

Equality operator.

Returns
bool true if all vertices are equal modulo order, false otherwise

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

void BALL::SESEdge::set ( const SESEdge sesedge,
bool  deep = false 
)

Assign from another SESEdge.

Parameters
sesedgethe SESEdge object to assign from
deepif deep = false, all pointers are set to NULL (default). Otherwise the SESEdge object is linked to the neighbours of the SESEdge object to assign from.
void BALL::SESEdge::set ( SESVertex vertex0,
SESVertex vertex1,
SESFace face0,
SESFace face1,
const TCircle3< double > &  circle,
RSEdge rsedge,
Type  type,
Index  index 
)

Assign from some nice objects.

Parameters
vertex0assigned to the first vertex
vertex1assigned to the second vertex
face0assigned to the first face
face1assigned to the second face
circleassigned to the circle
rsedgeassigned to the RSEdge
typeassigned to the type of the SESEdge
indexassigned to the index
void BALL::SESEdge::setCircle ( const TCircle3< double > &  center)

Set the circle on wich the SESEdge lies.

Parameters
centerthe new circle
void BALL::SESEdge::setRSEdge ( RSEdge rsedge)

Set the corresponding RSEdge.

Parameters
rsedgea pointer to the new RSEdge
void BALL::SESEdge::setType ( Type  type)

Set the type of the SESEdge.

Parameters
typethe new type of the SESEdge

Friends And Related Function Documentation

friend class SESComputer
friend

Definition at line 51 of file SESEdge.h.

friend class SESFace
friend

Definition at line 48 of file SESEdge.h.

friend class SESSingularityCleaner
friend

Definition at line 52 of file SESEdge.h.

friend class SESTriangulator
friend

Definition at line 54 of file SESEdge.h.

friend class SESVertex
friend

Definition at line 49 of file SESEdge.h.

friend class SolventExcludedSurface
friend

Definition at line 50 of file SESEdge.h.

friend class TriangulatedSES
friend

Definition at line 53 of file SESEdge.h.

Member Data Documentation

TCircle3<double> BALL::SESEdge::circle_
protected

Definition at line 249 of file SESEdge.h.

RSEdge* BALL::SESEdge::rsedge_
protected

Definition at line 252 of file SESEdge.h.

Type BALL::SESEdge::type_
protected

Definition at line 256 of file SESEdge.h.