|
User Documentation |
|
Centre for Vision, Speech & Signal Processing |
Comments:
==============================================================
GENERAL SURFACE ELEMENT
Element nodes/edges in ccw order
class ElementC: protected RefCounterC {
Variables:
- DListC nodes;
-
list of surface element nodes
- DListC edges;
-
list of surface element edges
---------------------------------------------------------------
Methods:
- ElementC(SurfaceC & s)
-
construct
- ElementC(const ElementC & e)
-
- ~ElementC()
-
destructor
----------------------- Public Data Structure ----------------
- void Copy(const ElementC & elem)
-
copy contents of elem to this element
- const ElementC & operator=(const ElementC & e)
-
assignment of reference copy
------------------------ Access to surface ---------------------
- void Ins()
-
Insert a new element into the element surface
Element nodes must be in anti-clockwise order
- IntT TestInsElem()
-
Test if this element exists in the surface
1 = exists, 0 = not found
- void Del()
-
delete this element + resulting empty nodes
empty this element
- void DelOnly()
-
delete this element only
empty this element
------------------------- General -----------------
- int IsValid()
-
Is element a valid polygon (nodes>2,edges>2)
- int IsBound()
-
Is element nodes/edges on surface boundary
- IntT Equal(ElementC & elem)
-
Is this element equal to elem
test node & edge list
cost O(nodes^2)
- void Empty()
-
Empty element node and edge lists
------------------------- Local 2D Coordinate Frame ----
- void Get(const SurfaceAdjC & a0)
-
Extract the surface element from a surface node adjacency.
Use anti-clockwise node adjacency to extract the element.
Test the initial adjacency to see if surface element exists.
Returns empty element if no element exists.
- Vector3dC Proj(const Vector3dC & p)
-
Orthogonal projection of point v onto the plane defined by the element
- Point2dC ProjLocal(const Vector3dC & p)
-
2D Orthogonal projection of point v in the plane defined by the element
- Vector3dC ProjGlobal(const Point2dC & p)
-
3D Coordinates of Point in the 2D element plane
- Vector3dC Normal()
-
unit vector normal to element plane
normal direction defined by ccw order or nodes
- OrthoProjection3to2dC Local()
-
Local element coorinates
---------------------------- Element 3D Properties ----------
- Vector3dC Centroid()
-
element centroid (center of gravity)
average of node positions
- Vector3dC TriCircumCenter()
-
center of circle passing through triangle verticies (in element plane)
- Vector3dC TriInCenter()
-
In center of circle inside the triangular element (in element plane)
- RealT TriArea()
-
Area of triangular face
- RealT MaxEdgeLength()
-
Longest length of element edges in 3D space
- RealT MinEdgeLength()
-
Shortest length of element edges in 3D space
- RealT MaxAngle()
-
Maximum internal angle between adjacent edges in 3D space
- SurfaceNodeC NodeMaxAngle()
-
Node with maximum internal angle between adjacent edges in 3D space
- int IsInside(const Vector3dC & p)
-
Is point p inside the element
----------------------- Triangular Element --------
- void SplitTri(SurfaceNodeC & node)
-
Split triangular element into 2
node is inserted in the 1st element edge
return this element = node-2nd-....
----------------------- Nearest -----------------
- SurfaceNearestPointT NearestPoint(const Vector3dC & v)
-
Nearest point on element to v
------------------------- Label ----------------------
- IntT & Marker()
-
set marker
- IntT Marker() const
-
get marker
----------------------- Output -------------------
- void Print()
-
Print surface element nodes and edges
|
Programmer:Adrian Hilton, Documentation by CxxDoc: Tue Mar 20 10:48:08 2001
|