Loading...
Searching...
No Matches
RSEdge.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_STRUCTURE_RSEDGE_H
#define BALL_STRUCTURE_RSEDGE_H
#ifndef BALL_STRUCTURE_GRAPHEDGE_H
# include <BALL/STRUCTURE/graphEdge.h>
#endif
#ifndef BALL_MATHS_ANGLE_H
# include <BALL/MATHS/angle.h>
#endif
#ifndef BALL_MATHS_CIRCLE3_H
# include <BALL/MATHS/circle3.h>
#endif
#ifndef BALL_MATHS_VECTOR3_H
# include <BALL/MATHS/vector3.h>
#endif
namespace BALL
{
class RSFace;
class RSVertex;
class ReducedSurface;
class RSComputer;
class SESEdge;
class SESFace;
class SESVertex;
class SolventExcludedSurface;
class SESComputer;
class SESSingularityCleaner;
class TriangulatedSES;
class SESTriangulator;
class SASEdge;
class SASFace;
class SASVertex;
class SolventAccessibleSurface;
class TriangulatedSAS;
class SASTriangulator;
class BALL_EXPORT RSEdge : public GraphEdge< RSVertex,RSEdge,RSFace >
{
public:
friend class RSFace;
friend class RSVertex;
friend class ReducedSurface;
friend class RSComputer;
friend class SESEdge;
friend class SESFace;
friend class SESVertex;
friend class SolventExcludedSurface;
friend class SESComputer;
friend class SESSingularityCleaner;
friend class TriangulatedSES;
friend class SESTriangulator;
friend class SASEdge;
friend class SASFace;
friend class SolventAccessibleSurface;
friend class SASVertex;
friend class TriangulatedSAS;
friend class SASTriangulator;
BALL_CREATE(RSEdge)
RSEdge()
;
RSEdge(const RSEdge& rsedge, bool deep = false)
;
RSEdge(RSVertex* vertex1,
RSVertex* vertex2,
RSFace* face1,
RSFace* face2,
const TVector3<double>& center_of_torus,
const double& radius_of_torus,
const TAngle<double>& angle,
const TCircle3<double>& circle1,
const TCircle3<double>& circle2,
const TVector3<double>& intersection_point1,
const TVector3<double>& intersection_point2,
bool singular,
Index index)
;
virtual ~RSEdge()
;
void set(const RSEdge& rsedge, bool deep = false)
;
RSEdge& operator = (const RSEdge& rsedge)
;
void set(RSVertex* vertex0,
RSVertex* vertex1,
RSFace* face0,
RSFace* face1,
const TVector3<double>& center_of_torus,
const double& radius_of_torus,
const TAngle<double>& angle,
const TCircle3<double>& circle0,
const TCircle3<double>& circle1,
const TVector3<double>& intersection_point0,
const TVector3<double>& intersection_point1,
bool singular,
Index index)
;
void setCenterOfTorus(const TVector3<double>& center)
;
TVector3<double> getCenterOfTorus() const
;
void setMajorRadiusOfTorus(const double& radius)
;
double getMajorRadiusOfTorus() const
;
void setAngle(const TAngle<double>& angle)
;
TAngle<double> getAngle() const
;
void setContactCircle(Position i, const TCircle3<double>& circle)
;
TCircle3<double> getContactCircle(Position i) const
;
void setIntersectionPoint(Position i, const TVector3<double>& point)
;
TVector3<double> getIntersectionPoint(Position i) const;
void setSingular(bool singular)
;
virtual bool operator == (const RSEdge& rsedge) const
;
virtual bool operator != (const RSEdge& rsedge) const
;
virtual bool operator *=(const RSEdge& rsedge) const
;
bool isSingular() const
;
bool isFree() const
;
protected:
/*_ @name Attributes
*/
/*_ The center of the torus described by the probe when ir rolls over
the RSEdge
*/
TVector3<double> center_of_torus_;
/*_ The major radius of the torus described by the probe when ir rolls
over the RSEdge
*/
double radius_of_torus_;
/*_ The rotation angle between the starting and ending position of the
probe sphere when it rolls over the RSEdge
*/
TAngle<double> angle_;
/*_ The contact circle of the probe sphere with the first RSVertex
*/
TCircle3<double> circle0_;
/*_ The contact circle of the probe sphere with the second RSVertex
*/
TCircle3<double> circle1_;
/*_ The intersection point of the probe sphere with the RSEdge near to
the first RSVertex (in singular case).
*/
TVector3<double> intersection_point0_;
/*_ The intersection point of the probe sphere with the RSEdge near to
the second RSVertex (in singular case).
*/
TVector3<double> intersection_point1_;
/*_ singular
*/
bool singular_;
};
BALL_EXPORT std::ostream& operator << (std::ostream& s, const RSEdge& rsedge);
} // namespace BALL
#endif // BALL_STRUCTURE_RSEDGE_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
angle.h
circle3.h
BALL::GraphEdge< RSVertex, RSEdge, RSFace >::GraphEdge
GraphEdge()
Definition graphEdge.h:255
BALL::RSComputer
Definition reducedSurface.h:476
BALL::RSEdge
Definition RSEdge.h:49
BALL::RSEdge::angle_
TAngle< double > angle_
Definition RSEdge.h:368
BALL::RSEdge::RSVertex
friend class RSVertex
Definition RSEdge.h:75
BALL::RSEdge::setContactCircle
void setContactCircle(Position i, const TCircle3< double > &circle)
BALL::RSEdge::RSComputer
friend class RSComputer
Definition RSEdge.h:77
BALL::RSEdge::RSEdge
RSEdge()
BALL::RSEdge::SESTriangulator
friend class SESTriangulator
Definition RSEdge.h:85
BALL::RSEdge::SASTriangulator
friend class SASTriangulator
Definition RSEdge.h:91
BALL::RSEdge::getMajorRadiusOfTorus
double getMajorRadiusOfTorus() const
BALL::RSEdge::SESEdge
friend class SESEdge
Definition RSEdge.h:78
BALL::RSEdge::getContactCircle
TCircle3< double > getContactCircle(Position i) const
BALL::RSEdge::circle0_
TCircle3< double > circle0_
Definition RSEdge.h:371
BALL::RSEdge::SASVertex
friend class SASVertex
Definition RSEdge.h:89
BALL::RSEdge::radius_of_torus_
double radius_of_torus_
Definition RSEdge.h:364
BALL::RSEdge::setCenterOfTorus
void setCenterOfTorus(const TVector3< double > &center)
BALL::RSEdge::circle1_
TCircle3< double > circle1_
Definition RSEdge.h:374
BALL::RSEdge::SASFace
friend class SASFace
Definition RSEdge.h:87
BALL::RSEdge::singular_
bool singular_
Definition RSEdge.h:385
BALL::RSEdge::setIntersectionPoint
void setIntersectionPoint(Position i, const TVector3< double > &point)
BALL::RSEdge::RSFace
friend class RSFace
Definition RSEdge.h:74
BALL::RSEdge::isFree
bool isFree() const
BALL::RSEdge::getAngle
TAngle< double > getAngle() const
BALL::RSEdge::setMajorRadiusOfTorus
void setMajorRadiusOfTorus(const double &radius)
BALL::RSEdge::TriangulatedSAS
friend class TriangulatedSAS
Definition RSEdge.h:90
BALL::RSEdge::SolventExcludedSurface
friend class SolventExcludedSurface
Definition RSEdge.h:81
BALL::RSEdge::setAngle
void setAngle(const TAngle< double > &angle)
BALL::RSEdge::intersection_point1_
TVector3< double > intersection_point1_
Definition RSEdge.h:382
BALL::RSEdge::TriangulatedSES
friend class TriangulatedSES
Definition RSEdge.h:84
BALL::RSEdge::SESVertex
friend class SESVertex
Definition RSEdge.h:80
BALL::RSEdge::SASEdge
friend class SASEdge
Definition RSEdge.h:86
BALL::RSEdge::getCenterOfTorus
TVector3< double > getCenterOfTorus() const
BALL::RSEdge::isSingular
bool isSingular() const
BALL::RSEdge::SolventAccessibleSurface
friend class SolventAccessibleSurface
Definition RSEdge.h:88
BALL::RSEdge::SESSingularityCleaner
friend class SESSingularityCleaner
Definition RSEdge.h:83
BALL::RSEdge::intersection_point0_
TVector3< double > intersection_point0_
Definition RSEdge.h:378
BALL::RSEdge::ReducedSurface
friend class ReducedSurface
Definition RSEdge.h:76
BALL::RSEdge::set
void set(const RSEdge &rsedge, bool deep=false)
BALL::RSEdge::SESComputer
friend class SESComputer
Definition RSEdge.h:82
BALL::RSEdge::SESFace
friend class SESFace
Definition RSEdge.h:79
BALL::RSEdge::center_of_torus_
TVector3< double > center_of_torus_
Definition RSEdge.h:360
BALL::RSEdge::getIntersectionPoint
TVector3< double > getIntersectionPoint(Position i) const
BALL::RSEdge::setSingular
void setSingular(bool singular)
BALL::RSFace
Definition RSFace.h:41
BALL::RSVertex
Definition RSVertex.h:38
BALL::ReducedSurface
Definition reducedSurface.h:196
BALL::SASEdge
Definition SASEdge.h:34
BALL::SASFace
Definition SASFace.h:31
BALL::SASTriangulator
Definition triangulatedSAS.h:161
BALL::SASVertex
Definition SASVertex.h:29
BALL::SESComputer
Definition solventExcludedSurface.h:318
BALL::SESEdge
Definition SESEdge.h:34
BALL::SESFace
Definition SESFace.h:38
BALL::SESSingularityCleaner
Definition solventExcludedSurface.h:457
BALL::SESTriangulator
Definition triangulatedSES.h:164
BALL::SESVertex
Definition SESVertex.h:30
BALL::SolventAccessibleSurface
Definition solventAccessibleSurface.h:39
BALL::SolventExcludedSurface
Definition solventExcludedSurface.h:67
BALL::TAngle
Definition angle.h:53
BALL::TCircle3
Definition circle3.h:46
BALL::TVector3
Definition vector3.h:71
BALL::TriangulatedSAS
Definition triangulatedSAS.h:63
BALL::TriangulatedSES
Definition triangulatedSES.h:55
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
graphEdge.h
BALL
Definition constants.h:13
BALL::Position
BALL_SIZE_TYPE Position
Definition COMMON/global.h:140
BALL::Index
BALL_INDEX_TYPE Index
Definition COMMON/global.h:105
std
STL namespace.
vector3.h