Developer Documentation
Centre for Vision, Speech & Signal Processing
USER IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
ElementC::ElementC(SurfaceC &)
ElementC::ElementC(const ElementC &)
ElementC::~ElementC(void)
ElementC::Copy(const ElementC &)
ElementC::operator=(const ElementC &)
ElementC::Ins(void)
ElementC::TestInsElem(void)
ElementC::Del(void)
ElementC::DelOnly(void)
ElementC::IsValid(void)
ElementC::IsBound(void)
ElementC::Equal(ElementC &)
ElementC::Empty(void)
ElementC::Get(const SurfaceAdjC &)
ElementC::Proj(const Vector3dC &)
ElementC::ProjLocal(const Vector3dC &)
ElementC::ProjGlobal(const Point2dC &)
ElementC::Normal(void)
ElementC::Local(void)
ElementC::Centroid(void)
ElementC::TriCircumCenter(void)
ElementC::TriInCenter(void)
ElementC::TriArea(void)
ElementC::MaxEdgeLength(void)
ElementC::MinEdgeLength(void)
ElementC::MaxAngle(void)
ElementC::NodeMaxAngle(void)
ElementC::IsInside(const Vector3dC &)
ElementC::SplitTri(SurfaceNodeC &)
ElementC::NearestPoint(const Vector3dC &)
ElementC::Marker(void)
ElementC::Marker(void) const
ElementC::Print(void)
ElementC::ElementC(SurfaceC &,DListC &,DListC &)
ElementC::Delete(void)
ElementC::DelPrivate(const int)
ElementC::SetLocal(void)
ElementC
 
include "amma/SurfElem.hh"
User Level:Default
Library:surf
Example: cri.cc
Section:default.Adrian Hilton
In Scope:std

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

SurfaceC & surface;
reference to surface of which element is a member ------------------------- Local Element 2D Coordinate System --

OrthoProjection3to2dC local;
local 2D projection

int local_set;
flag local coordinates setup

Vector3dC normal;
Element normal

int normal_set;
flag normal setup --------------------------------- Marker

IntT marker;

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

ElementC(SurfaceC & s,DListC<SurfaceNodeC> & n,DListC<SurfaceEdgeC> & e)
construct elements from node/edge lists

void Delete()
private delete contents of element

void DelPrivate(const int type)
delete this element nodes/edges ------------------------- INTERNAL DATA --------------------- ------------------------- Surface ---------------------------

void SetLocal()
Setup local coordinates


Programmer:Adrian Hilton, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001