BALL 1.5.0
Loading...
Searching...
No Matches

#include <BALL/STRUCTURE/RSEdge.h>

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

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
 
void setSingular (bool singular)
 
- Public Member Functions inherited from BALL::GraphEdge< RSVertex, RSEdge, RSFace >
 GraphEdge ()
 
 GraphEdge (const GraphEdge< RSVertex, RSEdge, RSFace > &edge, bool deep=false)
 
 GraphEdge (RSVertex *vertex1, RSVertex *vertex2, RSFace *face1, RSFace *face2, Index index)
 
virtual ~GraphEdge ()
 
void set (const GraphEdge< RSVertex, RSEdge, RSFace > &edge, bool deep=false)
 
void set (RSVertex *vertex0, RSVertex *vertex1, RSFace *face0, RSFace *face1, Index index)
 
GraphEdge< RSVertex, RSEdge, RSFace > & operator= (const GraphEdge< RSVertex, RSEdge, RSFace > &edge)
 
void setVertex (Position i, RSVertex *vertex)
 
RSVertexgetVertex (Position i) const
 
void setFace (Position i, RSFace *face)
 
RSFacegetFace (Position i) const
 
void setIndex (Index index)
 
Index getIndex () const
 
RSVertexother (const RSVertex *vertex) const
 
RSFaceother (const RSFace *face) const
 
bool substitute (const RSVertex *old_vertex, RSVertex *new_vertex)
 
bool substitute (const RSFace *old_vertex, RSFace *new_vertex)
 
RSFaceremove (const RSFace *face)
 
void revert ()
 

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
 
- Friends inherited from BALL::GraphEdge< RSVertex, RSEdge, RSFace >

Predicates

TVector3< doublecenter_of_torus_
 
double radius_of_torus_
 
TAngle< doubleangle_
 
TCircle3< doublecircle0_
 
TCircle3< doublecircle1_
 
TVector3< doubleintersection_point0_
 
TVector3< doubleintersection_point1_
 
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
 

Additional Inherited Members

- Protected Attributes inherited from BALL::GraphEdge< RSVertex, RSEdge, RSFace >
RSVertexvertex_ [2]
 
RSFaceface_ [2]
 
Index index_
 

Detailed Description

Generic RSEdge Class.

Definition at line 48 of file RSEdge.h.

Constructor & Destructor Documentation

◆ RSEdge() [1/3]

BALL::RSEdge::RSEdge ( )

Default constructor. This method creates a new RSEdge object.

◆ RSEdge() [2/3]

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.

◆ RSEdge() [3/3]

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

◆ ~RSEdge()

virtual BALL::RSEdge::~RSEdge ( )
virtual

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

Member Function Documentation

◆ getAngle()

TAngle< double > BALL::RSEdge::getAngle ( ) const

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

◆ getCenterOfTorus()

TVector3< double > BALL::RSEdge::getCenterOfTorus ( ) const

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

◆ getContactCircle()

TCircle3< double > BALL::RSEdge::getContactCircle ( Position i) const

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

◆ getIntersectionPoint()

TVector3< double > BALL::RSEdge::getIntersectionPoint ( Position i) const

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
Exceptions
BALL::Exception::GeneralException

◆ getMajorRadiusOfTorus()

double BALL::RSEdge::getMajorRadiusOfTorus ( ) const

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()

bool BALL::RSEdge::isFree ( ) const

isFree

Returns
bool true if the RSEdge is free, false otherwise

◆ isSingular()

bool BALL::RSEdge::isSingular ( ) const

isSingular

Returns
bool true if the RSEdge is singular, false otherwise

◆ operator!=()

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 >.

◆ operator*=()

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 >.

◆ operator=()

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

◆ operator==()

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 >.

◆ set() [1/2]

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.

◆ set() [2/2]

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

◆ setAngle()

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

◆ setCenterOfTorus()

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

◆ setContactCircle()

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

◆ setIntersectionPoint()

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

◆ setMajorRadiusOfTorus()

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

◆ setSingular()

void BALL::RSEdge::setSingular ( bool singular)

Set singular

Friends And Related Symbol Documentation

◆ ReducedSurface

friend class ReducedSurface
friend

Definition at line 76 of file RSEdge.h.

◆ RSComputer

friend class RSComputer
friend

Definition at line 77 of file RSEdge.h.

◆ RSFace

friend class RSFace
friend

Definition at line 74 of file RSEdge.h.

◆ RSVertex

friend class RSVertex
friend

Definition at line 75 of file RSEdge.h.

◆ SASEdge

friend class SASEdge
friend

Definition at line 86 of file RSEdge.h.

◆ SASFace

friend class SASFace
friend

Definition at line 87 of file RSEdge.h.

◆ SASTriangulator

friend class SASTriangulator
friend

Definition at line 91 of file RSEdge.h.

◆ SASVertex

friend class SASVertex
friend

Definition at line 89 of file RSEdge.h.

◆ SESComputer

friend class SESComputer
friend

Definition at line 82 of file RSEdge.h.

◆ SESEdge

friend class SESEdge
friend

Definition at line 78 of file RSEdge.h.

◆ SESFace

friend class SESFace
friend

Definition at line 79 of file RSEdge.h.

◆ SESSingularityCleaner

friend class SESSingularityCleaner
friend

Definition at line 83 of file RSEdge.h.

◆ SESTriangulator

friend class SESTriangulator
friend

Definition at line 85 of file RSEdge.h.

◆ SESVertex

friend class SESVertex
friend

Definition at line 80 of file RSEdge.h.

◆ SolventAccessibleSurface

friend class SolventAccessibleSurface
friend

Definition at line 88 of file RSEdge.h.

◆ SolventExcludedSurface

friend class SolventExcludedSurface
friend

Definition at line 81 of file RSEdge.h.

◆ TriangulatedSAS

friend class TriangulatedSAS
friend

Definition at line 90 of file RSEdge.h.

◆ TriangulatedSES

friend class TriangulatedSES
friend

Definition at line 84 of file RSEdge.h.

Member Data Documentation

◆ angle_

TAngle<double> BALL::RSEdge::angle_
protected

Definition at line 368 of file RSEdge.h.

◆ center_of_torus_

TVector3<double> BALL::RSEdge::center_of_torus_
protected

Definition at line 360 of file RSEdge.h.

◆ circle0_

TCircle3<double> BALL::RSEdge::circle0_
protected

Definition at line 371 of file RSEdge.h.

◆ circle1_

TCircle3<double> BALL::RSEdge::circle1_
protected

Definition at line 374 of file RSEdge.h.

◆ intersection_point0_

TVector3<double> BALL::RSEdge::intersection_point0_
protected

Definition at line 378 of file RSEdge.h.

◆ intersection_point1_

TVector3<double> BALL::RSEdge::intersection_point1_
protected

Definition at line 382 of file RSEdge.h.

◆ radius_of_torus_

double BALL::RSEdge::radius_of_torus_
protected

Definition at line 364 of file RSEdge.h.

◆ singular_

bool BALL::RSEdge::singular_
protected

Definition at line 385 of file RSEdge.h.