Loading...
Searching...
No Matches
SESFace.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_STRUCTURE_SESFACE_H
#define BALL_STRUCTURE_SESFACE_H
#ifndef BALL_STRUCTURE_GRAPHFACE_H
# include <BALL/STRUCTURE/graphFace.h>
#endif
#ifndef BALL_STRUCTURE_RSEDGE_H
# include <BALL/STRUCTURE/RSEdge.h>
#endif
#ifndef BALL_STRUCTURE_RSFACE_H
# include <BALL/STRUCTURE/RSFace.h>
#endif
#ifndef BALL_STRUCTURE_RSVERTEX_H
# include <BALL/STRUCTURE/RSVertex.h>
#endif
namespace BALL
{
class SESEdge;
class SESVertex;
class SolventExcludedSurface;
class TriangulatedSES;
class SESComputer;
class SESSingularityCleaner;
class SESTriangulator;
class BALL_EXPORT SESFace : public GraphFace< SESVertex,SESEdge,SESFace >
{
public:
friend class SESEdge;
friend class SESVertex;
friend class SolventExcludedSurface;
friend class SESComputer;
friend class SESSingularityCleaner;
friend class TriangulatedSES;
friend class SESTriangulator;
BALL_CREATE(SESFace)
enum Type
{
TYPE_SPHERIC = 0,
TYPE_TORIC = 1,
TYPE_CONTACT = 2,
TYPE_TORIC_SINGULAR = 3
};
SESFace()
;
SESFace(const SESFace& sesface, bool deep = false)
;
SESFace
(Type type,
RSVertex* rsvertex,
RSEdge* rsedge,
RSFace* rsface)
;
virtual ~SESFace()
;
void set(const SESFace& sesface, bool deep = false)
;
SESFace& operator = (const SESFace& sesface)
;
void setType(Type type)
;
Type getType() const
;
void setRSVertex(RSVertex* rsvertex)
;
RSVertex* getRSVertex() const
;
void setRSEdge(RSEdge* rsedge)
;
RSEdge* getRSEdge() const
;
void setRSFace(RSFace* rsface)
;
RSFace* getRSFace() const
;
void normalize(bool singular)
;
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
;
private:
void normalizeNonSingularToricFace_()
;
void normalizeSingularToricFace_()
;
void findTriangle_
(bool first,
SESEdge*& edge0,
SESEdge*& edge1,
SESEdge*& edge2,
SESVertex*& vertex0,
SESVertex*& vertex1,
SESVertex*& vertex2)
;
protected:
/*_ The type of the face.
*/
Type type_;
/*_ A pointer to the corresponding RSVertex
(if type_ is TYPE_CONTACT).
*/
RSVertex* rsvertex_;
/*_ A pointer to the corresponding RSEdge
(if type_ is TYPE_TORIC or TYPE_TORIC_SINGULAR).
*/
RSEdge* rsedge_;
/*_ A pointer to the corresponding RSFace
(if type_ is TYPE_SPHERIC).
*/
RSFace* rsface_;
};
BALL_EXPORT std::ostream& operator << (std::ostream& s, const SESFace& sesface);
} // namespace BALL
#endif // BALL_STRUCTURE_SESFACE_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
RSEdge.h
RSFace.h
RSVertex.h
BALL::GraphFace< SESVertex, SESEdge, SESFace >::GraphFace
GraphFace()
Definition graphFace.h:259
BALL::RSEdge
Definition RSEdge.h:49
BALL::RSFace
Definition RSFace.h:41
BALL::RSVertex
Definition RSVertex.h:38
BALL::SESComputer
Definition solventExcludedSurface.h:318
BALL::SESEdge
Definition SESEdge.h:34
BALL::SESFace
Definition SESFace.h:38
BALL::SESFace::rsedge_
RSEdge * rsedge_
Definition SESFace.h:283
BALL::SESFace::SESTriangulator
friend class SESTriangulator
Definition SESFace.h:58
BALL::SESFace::~SESFace
virtual ~SESFace()
BALL::SESFace::SESEdge
friend class SESEdge
Definition SESFace.h:52
BALL::SESFace::rsface_
RSFace * rsface_
Definition SESFace.h:287
BALL::SESFace::hasSingularEdges
bool hasSingularEdges() const
BALL::SESFace::setRSEdge
void setRSEdge(RSEdge *rsedge)
BALL::SESFace::Type
Type
Definition SESFace.h:73
BALL::SESFace::TYPE_CONTACT
@ TYPE_CONTACT
Definition SESFace.h:76
BALL::SESFace::TYPE_SPHERIC
@ TYPE_SPHERIC
Definition SESFace.h:74
BALL::SESFace::TYPE_TORIC_SINGULAR
@ TYPE_TORIC_SINGULAR
Definition SESFace.h:77
BALL::SESFace::TYPE_TORIC
@ TYPE_TORIC
Definition SESFace.h:75
BALL::SESFace::isNeighbouredTo
bool isNeighbouredTo(SESFace *face) const
BALL::SESFace::type_
Type type_
Definition SESFace.h:275
BALL::SESFace::rsvertex_
RSVertex * rsvertex_
Definition SESFace.h:279
BALL::SESFace::normalize
void normalize(bool singular)
BALL::SESFace::getType
Type getType() const
BALL::SESFace::SolventExcludedSurface
friend class SolventExcludedSurface
Definition SESFace.h:54
BALL::SESFace::SESFace
SESFace(const SESFace &sesface, bool deep=false)
BALL::SESFace::TriangulatedSES
friend class TriangulatedSES
Definition SESFace.h:57
BALL::SESFace::SESFace
SESFace()
BALL::SESFace::SESVertex
friend class SESVertex
Definition SESFace.h:53
BALL::SESFace::SESSingularityCleaner
friend class SESSingularityCleaner
Definition SESFace.h:56
BALL::SESFace::setRSFace
void setRSFace(RSFace *rsface)
BALL::SESFace::getRSEdge
RSEdge * getRSEdge() const
BALL::SESFace::set
void set(const SESFace &sesface, bool deep=false)
BALL::SESFace::getRSVertex
RSVertex * getRSVertex() const
BALL::SESFace::setType
void setType(Type type)
BALL::SESFace::isFree
bool isFree() const
BALL::SESFace::SESComputer
friend class SESComputer
Definition SESFace.h:55
BALL::SESFace::getRSFace
RSFace * getRSFace() const
BALL::SESFace::setRSVertex
void setRSVertex(RSVertex *rsvertex)
BALL::SESFace::SESFace
SESFace(Type type, RSVertex *rsvertex, RSEdge *rsedge, RSFace *rsface)
BALL::SESSingularityCleaner
Definition solventExcludedSurface.h:457
BALL::SESTriangulator
Definition triangulatedSES.h:164
BALL::SESVertex
Definition SESVertex.h:30
BALL::SolventExcludedSurface
Definition solventExcludedSurface.h:67
BALL::TriangulatedSES
Definition triangulatedSES.h:55
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
graphFace.h
BALL::operator<<
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
BALL
Definition constants.h:13