#include <HierMesh.h>
Inheritance diagram for HierElem:
Public Members | |||
HierElem () | |||
virtual | ~HierElem () | ||
virtual Void | SetParent (HierElem &parent) | ||
virtual HierElem* | New () | ||
Bool | HasChildren () | ||
Void | FreeChildren () | ||
Void | Draw (Renderer &r) | ||
virtual Void | DrawLeaf (Renderer &r) | ||
Void | DrawQuad (Renderer &r, RenderStyle start, Int code, RadElem *mid) | ||
Void | DrawTri (Renderer &r, RenderStyle start, Int code, RadElem *mid) | ||
Void | ProjQuad (Renderer &r, RenderStyle start, Int code, RadElem *mid) | ||
Void | ProjTri (Renderer &r, RenderStyle start, Int code, RadElem *mid) | ||
Void | Reanimate (RadElem *parent) | ||
Void | ConnectNeighbours () | ||
Void | Subdivide () | ||
Void | SetColour (const Colour &c) | ||
Void | ColourVertices (Int weights[]) | ||
Push element radiosities to vertices. | |||
RadElem* | FindContainer (Coord &coord) | ||
Find the elem containing this coord. | |||
Void | CreatePatches (PatchList &patches) | ||
Split Elem into patches s.t. area < maxPatchSize. | |||
Void | CreateElements (PatchList &elements, IndexList &eltParents, Int parent) | ||
GCLReal | RadError () | ||
Int | CalcMidCode (RadElem *mid) | ||
Void | CollectLeaves (PatchList &leaves) | ||
Void | SplitElement (Int &numElems, HierElemPtr subElems[5]) | ||
Void | CorrectLeaves () | ||
Void | Print (ostream &s) | ||
Void | PrintRec (ostream &s) | ||
virtual Void | PrintSelf (ostream &s) | ||
Void | Parse (istream &s) | ||
virtual Void | ParseSelf (istream &s) | ||
Void | PrintID (ostream &s) | ||
StrConst | Name () | ||
GCLReal | MemoryUse () | ||
HierElem*& | NbFace (Int i) | ||
HierElem* | child [4] | ||
HierElem* | parent | ||
Int | level | ||
UInt32 | treeCode |
Definition at line 24 of file HierMesh.h.
HierElem::HierElem () |
Definition at line 73 of file HierMesh.cc.
HierElem::~HierElem () [virtual]
|
Definition at line 82 of file HierMesh.cc.
Int HierElem::CalcMidCode (RadElem * mid) |
Definition at line 1086 of file HierMesh.cc.
Void HierElem::CollectLeaves (PatchList & leaves) |
Definition at line 1310 of file HierMesh.cc.
Void HierElem::ColourVertices (Int weights[]) [virtual]
|
Push element radiosities to vertices.
Reimplemented from RadElem.
Definition at line 343 of file HierMesh.cc.
Void HierElem::ConnectNeighbours () |
Definition at line 107 of file HierMesh.cc.
Void HierElem::CorrectLeaves () |
If a mesh is balanced, the elements might not correspond to actual leaf nodes. We must do a pseudo-push to correct for this before t-meshing. This should only be called on *solution* leaves.
Definition at line 1292 of file HierMesh.cc.
Void HierElem::CreateElements (PatchList & elements, IndexList & eltParents, Int parent) |
Definition at line 1039 of file HierMesh.cc.
Void HierElem::CreatePatches (PatchList & patches) [virtual]
|
Split Elem into patches s.t. area < maxPatchSize.
Reimplemented from RadElem.
Reimplemented in HRMeshElem.
Definition at line 1022 of file HierMesh.cc.
Void HierElem::Draw (Renderer & r) [virtual]
|
Reimplemented from RadElem.
Reimplemented in HRMeshElem.
Definition at line 831 of file HierMesh.cc.
Void HierElem::DrawLeaf (Renderer & r) [virtual]
|
Definition at line 771 of file HierMesh.cc.
Void HierElem::DrawQuad (Renderer & r, RenderStyle style, Int code, RadElem * mid) |
Definition at line 490 of file HierMesh.cc.
Void HierElem::DrawTri (Renderer & r, RenderStyle style, Int code, RadElem * mid) |
Definition at line 584 of file HierMesh.cc.
RadElem * HierElem::FindContainer (Coord & coord) [virtual]
|
Find the elem containing this coord.
Reimplemented from RadElem.
Definition at line 930 of file HierMesh.cc.
Void HierElem::FreeChildren () |
Definition at line 97 of file HierMesh.cc.
Bool HierElem::HasChildren () [inline]
|
Definition at line 34 of file HierMesh.h.
GCLReal HierElem::MemoryUse () [virtual]
|
StrConst HierElem::Name () [virtual]
|
HierElem *& HierElem::NbFace (Int i) [inline]
|
Definition at line 82 of file HierMesh.h.
HierElem * HierElem::New () [inline, virtual]
|
Void HierElem::Parse (istream & s) [virtual]
|
Void HierElem::ParseSelf (istream & s) [virtual]
|
Void HierElem::Print (ostream & s) [virtual]
|
Reimplemented from RadElem.
Reimplemented in HaarElem, and HRMeshElem.
Definition at line 890 of file HierMesh.cc.
Void HierElem::PrintID (ostream & s) |
Definition at line 857 of file HierMesh.cc.
Void HierElem::PrintRec (ostream & s) |
Definition at line 870 of file HierMesh.cc.
Void HierElem::PrintSelf (ostream & s) [virtual]
|
Void HierElem::ProjQuad (Renderer & r, RenderStyle style, Int code, RadElem * mid) |
Definition at line 630 of file HierMesh.cc.
Void HierElem::ProjTri (Renderer & r, RenderStyle style, Int code, RadElem * mid) |
Definition at line 724 of file HierMesh.cc.
GCLReal HierElem::RadError () |
Definition at line 987 of file HierMesh.cc.
Void HierElem::Reanimate (RadElem * par) [virtual]
|
Void HierElem::SetColour (const Colour & c) |
Void HierElem::SetParent (HierElem & itsParent) [virtual]
|
Void HierElem::SplitElement (Int & numElems, HierElemPtr subElems[5]) |
Eliminate T-vertices from this triangle by triangulating it. This is normally done on the fly in the drawing code, but we also need to do it when writing out a conformant mesh after calculations.
Definition at line 1138 of file HierMesh.cc.
Void HierElem::Subdivide () |
Definition at line 202 of file HierMesh.cc.
HierElem * HierElem::child[4] |
Definition at line 86 of file HierMesh.h.
Int HierElem::level |
Definition at line 88 of file HierMesh.h.
HierElem * HierElem::parent |
Definition at line 87 of file HierMesh.h.
UInt32 HierElem::treeCode |
Definition at line 89 of file HierMesh.h.