Edge Class Reference

#include <Edge.h>

List of all members.

Detailed Description

Half edge for the mesh datastructure.

In addition to the usual members which edge for the half-edge datastructure has (such as pointers to the next and pair edges, pointer to the vertex at the start of the edge and pointer to the touching face); this edge class has some extra data for circle pattern algorithm. The main data is a length of an edge and a theta angle associated with an edge. We also store an alpha angle associated with each edge (aplhaOposite). This angle is formed by another two edges of the triangle which touches the edge. For boundary edges alphaOposite are equal to 0. Various functions of theta angle are precomputed and stored: cos(theta), sin(theta), tan(0.5*(M_PI - theta)), Cl2(2.0*(M_PI - theta)).

Definition at line 31 of file Edge.h.

Public Member Functions

 Edge (void)
void assignData (const Edge &rhs)
bool isBoundary () const
VertexoppositeVertex ()
const double & Cl2TStar () const
const double & tanHalfTStar () const
const double & sinTheta () const
const double & cosTheta () const
const double & theta () const
void setTheta (const double &_th)

Public Attributes

double alphaOposite
 Alpha angle oposite to the edge (different for pair edges).
bool check
 Check for various iterations.
double length
 Length of the edge (same for pair edges).
int ID
 Used for angle optimization.
int patchID
 If the mesh is cut into multiple patches, this stores the patch ID that edge belongs to.

Private Attributes

double th
 theta angles
double cTheta
double sTheta
double cl2TS
double tanHTS

Constructor & Destructor Documentation

Edge::Edge void   )  [inline]

Definition at line 66 of file Edge.h.

00066               : next(NULL), pair(NULL), vertex(NULL), face(NULL),
00067       length(0)
00068    {
00069       patchID = 0;
00070       th = 0;
00071       alphaOposite = 0;
00072    }

Member Function Documentation

void Edge::assignData const Edge rhs  )  [inline]

Definition at line 75 of file Edge.h.

00075                                    {
00076       if (this != &rhs) {
00077           alphaOposite = rhs.alphaOposite;
00078           length = rhs.length; 
00079           th = rhs.th; 
00080           cTheta = rhs.cTheta; 
00081           sTheta = rhs.sTheta; 
00082           cl2TS = rhs.cl2TS; 
00083           tanHTS = rhs.tanHTS;
00084       }
00085    }

const double& Edge::Cl2TStar  )  const [inline]

Definition at line 90 of file Edge.h.

00090 {return cl2TS;}

const double& Edge::cosTheta  )  const [inline]

Definition at line 93 of file Edge.h.

00093 {return cTheta;}

bool Edge::isBoundary  )  const [inline]

Definition at line 87 of file Edge.h.

00087 {return !(face && pair->face);}

Vertex* Edge::oppositeVertex  )  [inline]

Definition at line 88 of file Edge.h.

00088 {return next->next->vertex;}

void Edge::setTheta const double &  _th  )  [inline]

Definition at line 96 of file Edge.h.

00096                                      {
00097       th = _th;
00098       cTheta = cos(th);
00099       sTheta = sin(th);
00100       tanHTS = tan(0.5*(M_PI - th));
00101       cl2TS = CirclePattern::Cl2(2.0*(M_PI - th));   
00102    }

const double& Edge::sinTheta  )  const [inline]

Definition at line 92 of file Edge.h.

00092 {return sTheta;}

const double& Edge::tanHalfTStar  )  const [inline]

Definition at line 91 of file Edge.h.

00091 {return tanHTS;}

const double& Edge::theta  )  const [inline]

Definition at line 95 of file Edge.h.

00095 {return th;}

Member Data Documentation

double Edge::alphaOposite

Alpha angle oposite to the edge (different for pair edges).

Definition at line 50 of file Edge.h.

bool Edge::check

Check for various iterations.

Definition at line 53 of file Edge.h.

double Edge::cl2TS [private]

Definition at line 38 of file Edge.h.

double Edge::cTheta [private]

Definition at line 36 of file Edge.h.

Face* Edge::face

Definition at line 47 of file Edge.h.

int Edge::ID

Used for angle optimization.

Definition at line 59 of file Edge.h.

double Edge::length

Length of the edge (same for pair edges).

Definition at line 56 of file Edge.h.

Edge* Edge::next

Definition at line 44 of file Edge.h.

Edge* Edge::pair

Definition at line 45 of file Edge.h.

int Edge::patchID

If the mesh is cut into multiple patches, this stores the patch ID that edge belongs to.

Definition at line 63 of file Edge.h.

double Edge::sTheta [private]

Definition at line 37 of file Edge.h.

double Edge::tanHTS [private]

Definition at line 39 of file Edge.h.

double Edge::th [private]

theta angles

Definition at line 35 of file Edge.h.

Vertex* Edge::vertex

Definition at line 46 of file Edge.h.

The documentation for this class was generated from the following file:
Generated on Sat Jun 3 13:33:42 2006 for CirclePatterns by  doxygen 1.4.5