BALL::Triangle Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/triangle.h>

Inheritance diagram for BALL::Triangle:
BALL::GraphTriangle< TrianglePoint, TriangleEdge, Triangle >

List of all members.


Public Member Functions

Constructors and Destructors
 Triangle ()
 Triangle (TrianglePoint *v1, TrianglePoint *v2, TrianglePoint *v3)
 Triangle (TriangleEdge *e1, TriangleEdge *e2, TriangleEdge *e3, bool flip_normal=false)
 Triangle (const Triangle &triangle, bool deep=false)
virtual ~Triangle ()
Assignments
void set (const Triangle &triangle, bool deep=false)
Triangleoperator= (const Triangle &triangle)
Accessors
void setPoint (Position i, TrianglePoint *point) throw (Exception::IndexOverflow)
TrianglePointgetPoint (Position i) const throw (Exception::IndexOverflow)
void remove (TriangleEdge *edge)
Predicates
virtual bool operator== (const Triangle &) const
virtual bool operator!= (const Triangle &) const
virtual bool operator*= (const Triangle &) const

Friends

Class friends
class TriangleEdge
class TrianglePoint
class TriangulatedSurface
class TriangulatedSphere
class TriangulatedSES
class TriangulatedSAS
class SESTriangulator
class SASTriangulator

Detailed Description

Generic TriangleEdge Class.


Constructor & Destructor Documentation

BALL::Triangle::Triangle (  ) 

Default constructor. This method creates a new Triangle object.

BALL::Triangle::Triangle ( TrianglePoint v1,
TrianglePoint v2,
TrianglePoint v3 
)

Detailed constructor. Creates a new Triangle object. Its vertices are initialized with the passed TrianglePoint instances.

BALL::Triangle::Triangle ( TriangleEdge e1,
TriangleEdge e2,
TriangleEdge e3,
bool  flip_normal = false 
)

Detailed constructor. Creates a new Triangle object. Its edges are initialized with the passed TriangleEdge instances. Its vertices are taken from the edges. This requires the edges to be properly oriented in a counter clockwise manner.

BALL::Triangle::Triangle ( const Triangle triangle,
bool  deep = false 
)

Copy constructor. Create a new Triangle object from another.

Parameters:
triangle the Triangle object to be copied
deep if deep = false, all pointers are set to NULL (default). Otherwise the new Triangle object is linked to the neighbours of the old Triangle object.
virtual BALL::Triangle::~Triangle (  )  [virtual]

Destructor. Destructs the Triangle object.


Member Function Documentation

TrianglePoint* BALL::Triangle::getPoint ( Position  i  )  const throw (Exception::IndexOverflow)

Return one of the three points of the Triangle.

Parameters:
i the relative index of the point which should be given back. If i is greater three, an exception is thrown.
Returns:
TrianglePoint* a pointer to the asked point
virtual bool BALL::Triangle::operator!= ( const Triangle  )  const [virtual]

Inequality operator.

Returns:
false

Reimplemented from BALL::GraphTriangle< TrianglePoint, TriangleEdge, Triangle >.

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

Similarity operator.

Returns:
true

Reimplemented from BALL::GraphTriangle< TrianglePoint, TriangleEdge, Triangle >.

Triangle& BALL::Triangle::operator= ( const Triangle triangle  ) 

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

Parameters:
triangle the Triangle object to assign from
virtual bool BALL::Triangle::operator== ( const Triangle  )  const [virtual]

Equality operator.

Returns:
true

Reimplemented from BALL::GraphTriangle< TrianglePoint, TriangleEdge, Triangle >.

void BALL::Triangle::remove ( TriangleEdge edge  ) 

Remove an edge from the Triangle. The edge is set to NULL.

Parameters:
edge the edge to delete
void BALL::Triangle::set ( const Triangle triangle,
bool  deep = false 
)

Assign from another Triangle.

Parameters:
triangle the Triangle object to assign from
deep if deep = false, all pointers are set to NULL (default). Otherwise the Triangle object is linked to the neighbours of the Triangle object to assign from
void BALL::Triangle::setPoint ( Position  i,
TrianglePoint point 
) throw (Exception::IndexOverflow)

Set one of the three points of the Triangle.

Parameters:
i the relative index of the point which should be set. If i is greater three, an exception is thrown.
point a pointer to the new point

Friends And Related Function Documentation

friend class SASTriangulator [friend]
friend class SESTriangulator [friend]
friend class TriangleEdge [friend]
friend class TrianglePoint [friend]
friend class TriangulatedSAS [friend]
friend class TriangulatedSES [friend]
friend class TriangulatedSphere [friend]
friend class TriangulatedSurface [friend]