#include <Edge.h>
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 |
Vertex * | oppositeVertex () |
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 | |
Edge * | next |
Edge * | pair |
Vertex * | vertex |
Face * | face |
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 |
|
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 }
|
|
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 }
|
|
Definition at line 90 of file Edge.h. 00090 {return cl2TS;}
|
|
Definition at line 93 of file Edge.h. 00093 {return cTheta;}
|
|
Definition at line 87 of file Edge.h.
|
|
Definition at line 88 of file Edge.h.
|
|
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 }
|
|
Definition at line 92 of file Edge.h. 00092 {return sTheta;}
|
|
Definition at line 91 of file Edge.h. 00091 {return tanHTS;}
|
|
Definition at line 95 of file Edge.h. 00095 {return th;}
|
|
Alpha angle oposite to the edge (different for pair edges).
|
|
Check for various iterations.
|
|
|
|
|
|
|
|
Used for angle optimization.
|
|
Length of the edge (same for pair edges).
|
|
|
|
|
|
If the mesh is cut into multiple patches, this stores the patch ID that edge belongs to.
|
|
|
|
|
|
theta angles
|
|
|