BALL  1.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
BALL::RSEdge Class Reference

#include <BALL/STRUCTURE/RSEdge.h>

Inheritance diagram for BALL::RSEdge:
BALL::GraphEdge< RSVertex, RSEdge, RSFace >

List of all members.

Public Member Functions

Constructors and Destructors
 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 ()
Assignment
void set (const RSEdge &rsedge, bool deep=false)
RSEdgeoperator= (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)
Accessors
void setCenterOfTorus (const TVector3< double > &center)
TVector3< doublegetCenterOfTorus () const
void setMajorRadiusOfTorus (const double &radius)
double getMajorRadiusOfTorus () const
void setAngle (const TAngle< double > &angle)
TAngle< doublegetAngle () const
void setContactCircle (Position i, const TCircle3< double > &circle)
TCircle3< doublegetContactCircle (Position i) const
void setIntersectionPoint (Position i, const TVector3< double > &point)
TVector3< doublegetIntersectionPoint (Position i) const throw (Exception::GeneralException)
void setSingular (bool singular)
Predicates
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 Attributes

TVector3< doublecenter_of_torus_
double radius_of_torus_
TAngle< doubleangle_
TCircle3< doublecircle0_
TCircle3< doublecircle1_
TVector3< doubleintersection_point0_
TVector3< doubleintersection_point1_
bool singular_

Friends

Class friends
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 SolventAccessibleSurface
class SASVertex
class TriangulatedSAS
class SASTriangulator

Detailed Description

Generic RSEdge Class.

Definition at line 48 of file RSEdge.h.


Constructor & Destructor Documentation

Default constructor. This method creates a new RSEdge object.

BALL::RSEdge::RSEdge ( const RSEdge rsedge,
bool  deep = false 
)

Copy constructor. Create a new RSEdge object from another.

Parameters:
rsedgethe RSEdge object to be copied
deepif deep = false, all pointers are set to NULL (default). Otherwise the new RSEdge object is linked to the neighbours of the old RSEdge object.
BALL::RSEdge::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 
)

Detailled constructor. Create a new RSEdge object from a lot of nice objects

Parameters:
vertex1assigned to the first vertex
vertex2assigned to the second vertex
face1assigned to the first face
face2assigned to the second face
center_of_torusassigned to the center of the torus
radius_of_torusassigned to the radius of the torus
angleassigned to th angle
circle1assigned to the first contact circle
circle2assigned to the second contact circle
intersection_point1assigned to the first intersection point (in singular case)
intersection_point2assigned to the second intersection point (in singular case)
singular
indexassigned to the index
virtual BALL::RSEdge::~RSEdge ( ) [virtual]

Destructor. Destructs the RSEdge object. The neighboured faces and vertices are {/bf not} destructed.


Member Function Documentation

Return the rotation angle. Return the rotation angle between the starting and ending position of the probe sphere when it rolls over the RSEdge.

Returns:
TAngle<double> the rotation angle

Return the center of the torus. Return the center of the torus described by the probe sphere when it rolls over the RSEdge.

Returns:
TVector3<double> the center of the torus

Return one of the the contact circles. Return one of the the contact circles of the probe sphere with the two RSVertices

Parameters:
i
Returns:
TCircle3<double> the contact circle with the first RSVertex if i = 0, the contact circle with the second RSVertex otherwise

Return one of the intersection points. Return one of the intersection points of the probe sphere with the RSEdge. If the RSEdge not is singular, an exception is thrown.

Returns:
TVector3<double> the intersection point near to the first RSVertex if i = 0, the intersection point near to the second RSVertex otherwise

Return the major radius of the torus. Return the major radius of the torus described by the probe sphere when it rolls over the RSEdge.

Returns:
TVector3<double> the major radius of the torus

isFree

Returns:
bool true if the RSEdge is free, false otherwise

isSingular

Returns:
bool true if the RSEdge is singular, false otherwise
virtual bool BALL::RSEdge::operator!= ( const RSEdge rsedge) const [virtual]

Inequality operator.

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

Reimplemented from BALL::GraphEdge< RSVertex, RSEdge, RSFace >.

virtual bool BALL::RSEdge::operator*= ( const RSEdge rsedge) const [virtual]

Similarity operator.

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

Reimplemented from BALL::GraphEdge< RSVertex, RSEdge, RSFace >.

RSEdge& BALL::RSEdge::operator= ( const RSEdge rsedge)

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

Parameters:
rsedgethe RSEdge object to assign from
virtual bool BALL::RSEdge::operator== ( const RSEdge rsedge) const [virtual]

Equality operator.

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

Reimplemented from BALL::GraphEdge< RSVertex, RSEdge, RSFace >.

void BALL::RSEdge::set ( const RSEdge rsedge,
bool  deep = false 
)

Assign from another RSEdge.

Parameters:
rsedgethe RSEdge object to assign from
deepif deep = false, all pointers are set to NULL (default). Otherwise the RSEdge object is linked to the neighbours of the RSEdge object to assign from.
void BALL::RSEdge::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 
)

Assign from a lot of nice objects

Parameters:
vertex0assigned to the first vertex
vertex1assigned to the second vertex
face0assigned to the first face
face1assigned to the second face
center_of_torusassigned to the center of the torus
radius_of_torusassigned to the radius of the torus
angleassigned to th angle
circle0assigned to the first contact circle
circle1assigned to the second contact circle
intersection_point0assigned to the first intersection point (in singular case)
intersection_point1assigned to the second intersection point (in singular case)
singular
indexassigned to the index
void BALL::RSEdge::setAngle ( const TAngle< double > &  angle)

Set the rotation angle. Set the rotation angle between the starting and ending position of the probe sphere when it rolls over the RSEdge.

Parameters:
anglethe new rotation angle
void BALL::RSEdge::setCenterOfTorus ( const TVector3< double > &  center)

Set the center of the torus. Set the center of the torus described by the probe sphere when it rolls over the RSEdge.

Parameters:
centerthe new center
void BALL::RSEdge::setContactCircle ( Position  i,
const TCircle3< double > &  circle 
)

Set one of the two contact circles. Set one of the two contact circles of the probe sphere with the two RSVertices.

Parameters:
ithe first contact circle is changed if i = 0, the second otherwise
circlethe new contact circle
void BALL::RSEdge::setIntersectionPoint ( Position  i,
const TVector3< double > &  point 
)

Set one of the intersection points. Set one of the intersection points of the probe sphere with the RSEdge.

Parameters:
ithe first intersection point is changed if i = 0, the second otherwise
pointthe new intersection point
void BALL::RSEdge::setMajorRadiusOfTorus ( const double radius)

Set the major radius of the torus. Set the major radius of the torus described by the probe sphere when it rolls over the RSEdge.

Parameters:
radiusthe new radius
void BALL::RSEdge::setSingular ( bool  singular)

Set singular


Friends And Related Function Documentation

friend class ReducedSurface [friend]

Definition at line 76 of file RSEdge.h.

friend class RSComputer [friend]

Definition at line 77 of file RSEdge.h.

friend class RSFace [friend]

Definition at line 74 of file RSEdge.h.

friend class RSVertex [friend]

Definition at line 75 of file RSEdge.h.

friend class SASEdge [friend]

Definition at line 86 of file RSEdge.h.

friend class SASFace [friend]

Definition at line 87 of file RSEdge.h.

friend class SASTriangulator [friend]

Definition at line 91 of file RSEdge.h.

friend class SASVertex [friend]

Definition at line 89 of file RSEdge.h.

friend class SESComputer [friend]

Definition at line 82 of file RSEdge.h.

friend class SESEdge [friend]

Definition at line 78 of file RSEdge.h.

friend class SESFace [friend]

Definition at line 79 of file RSEdge.h.

friend class SESSingularityCleaner [friend]

Definition at line 83 of file RSEdge.h.

friend class SESTriangulator [friend]

Definition at line 85 of file RSEdge.h.

friend class SESVertex [friend]

Definition at line 80 of file RSEdge.h.

friend class SolventAccessibleSurface [friend]

Definition at line 88 of file RSEdge.h.

friend class SolventExcludedSurface [friend]

Definition at line 81 of file RSEdge.h.

friend class TriangulatedSAS [friend]

Definition at line 90 of file RSEdge.h.

friend class TriangulatedSES [friend]

Definition at line 84 of file RSEdge.h.


Member Data Documentation

Definition at line 368 of file RSEdge.h.

Definition at line 360 of file RSEdge.h.

Definition at line 371 of file RSEdge.h.

Definition at line 374 of file RSEdge.h.

Definition at line 378 of file RSEdge.h.

Definition at line 382 of file RSEdge.h.

Definition at line 364 of file RSEdge.h.

Definition at line 385 of file RSEdge.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines