#include <RadMesh.h>
Inheritance diagram for RadElem:
Public Members | |||
RadElem () | |||
virtual | ~RadElem () | ||
virtual Void | Draw (Renderer &r) | ||
Void | Compare (RadElem *to, GCLReal edgeLen, CompareStats &stats) | ||
virtual Colour | Sample (Coord c) | ||
Sample radiosity at this coord. | |||
Coord | FindCoord (Point &p) | ||
transform point on surface into elem's coord sys. | |||
virtual RadElem* | FindContainer (Coord &coord) | ||
Find the elem containing this coord. | |||
virtual Colour | SampleLeaf (Coord c) | ||
Sample radiosity of this elem, rather than descendants. | |||
GCLReal | EstPatchFactor (const Point &p, const Vector &n) | ||
dA->dA form factor. | |||
GCLReal | PatchFactor (const Point &p, const Vector &n) | ||
A->dA form factor from elem to elemental surface dS. | |||
GCLReal | ApproxPatchFactor (const Point &p, const Vector &np) | ||
Combines EstPatchFactor and PatchFactor according to
an approximation oracle. | |||
GCLReal | EstFormFactor (RadElem *to) | ||
Returns an estimate of the form factor from this
patch to 'to' by calling one of the above
methods. | |||
GCLReal | EdgeArea (const Vector &p, const Vector &q, const Vector &n) | ||
GCLReal | SampledFormFactor (Int n, RadElem *to, GCLReal &error) | ||
Int | OrientInfo (RadElem *to) | ||
GCLReal | Visibility (RadElem *to) | ||
GCLReal | CentreVis (const Point &p, const Vector &n) | ||
GCLReal | Visibility16 (const Point &p, const Vector &n) | ||
Bool | PotentiallyVis (RadElem *to) | ||
Bool | PotentiallyVisAndTouching (RadElem *to, Bool &touching) | ||
GCLReal | Visibility44 (RadElem *to) | ||
Void | SetVisPoints (Point p[]) | ||
GCLReal | RadVis4x4 (RadElem *to) | ||
GCLReal | RadVis16x1 (const Point &p, const Vector &n) | ||
virtual Void | ColourVertices (Int weights[]) | ||
Push element radiosities to vertices. | |||
virtual Void | CreatePatches (PatchList &patches) | ||
Split Elem into patches s.t. area < maxPatchSize. | |||
virtual Void | Print (ostream &s) | ||
virtual Void | Parse (istream &s) | ||
virtual Void | Reanimate (RadElem *parent) | ||
virtual StrConst | Name () | ||
Void | SetProps (RadProps *props) | ||
Void | SetHighlight (Int h) | ||
Void | DrawHighlight (Renderer &r) | ||
Void | RaiseVertex (Renderer &r, Int i) | ||
Used in function-view rendering. | |||
Void | SetColour (const Colour &c) | ||
Vector& | Vertex (Int i) | ||
Colour& | VtxClr (Int i) | ||
Vector& | Normal (Int i) | ||
Coord& | TexCoord (Int i) | ||
Void | SetIndexes ( Int dstIdx, RadElem *src, Int srcIdx ) | ||
Void | SetAllIndexes ( RadElem *s0, Int i0, RadElem *s1, Int i1, RadElem *s2, Int i2, RadElem *s3, Int i3 ) | ||
Vector& | Normal () | ||
Vector& | Centre () | ||
Colour& | Emittance () | ||
Colour& | Reflectance () | ||
Int | Sides () | ||
Bool | IsTri () | ||
Bool | IsQuad () | ||
Bool | IsTextured () | ||
Bool | HasNormals () | ||
Void | SendPoints (Renderer &r) | ||
virtual GCLReal | MemoryUse () | ||
Int | index [4] | ||
Indices of corner vertices. | |||
Int | clrIdx [4] | ||
Indices of corner colours. | |||
Int | normIdx [4] | ||
Indices of corner normals. | |||
Int | texIdx [4] | ||
Indices of corner texture coords. | |||
RadProps* | props | ||
elements of this mesh. | |||
Point | centre | ||
centre of this elem. | |||
Vector | normal | ||
normal at the centre. | |||
Colour | colour | ||
face colour -- shift this to array? | |||
GCLReal | area | ||
area of the quad/tri. | |||
Static Public Members | |||
Int | sGridMem = 0 | ||
Int | sGridChildMem = 0 |
Edge and vertex numbering for a quad element is as follows: 3 +-----+ |0 3| 0 | | 2 |1 2| +-----+ 1 Numbering for triangular elements is as follows: 0 |\ | \ 2 0 | \ | \ +----+ 1 2 1 In general: vertex numbering is counter-clockwise from the upper-left, and edge i is the edge from vertices i to (i + 1) % m. Thus index[0] is index of top-left vertex, etc. A triangle has three valid indices, with index[3] = -1. A quad is parameterised by [s, t] as follows: v[1] + s(v[2] - v[1]) + t(v[0] - v[1]): s, t E [0, 1] A tri is parameterised by : (1 - s - t) v[0] + sv[1] + tv[2]: s, t, s + t E [0, 1] There are also colour indices for each corner of the quad/tri, which lets us share colours for internal mesh vertices and along polys that share normals & surface attributes.
Definition at line 84 of file RadMesh.h.
RadElem::RadElem () |
Definition at line 116 of file RadMesh.cc.
RadElem::~RadElem () [virtual]
|
Definition at line 124 of file RadMesh.cc.
GCLReal RadElem::ApproxPatchFactor (const Point & p, const Vector & np) |
Combines EstPatchFactor and PatchFactor according to an approximation oracle.
Definition at line 460 of file RadMesh.cc.
Vector & RadElem::Centre () [inline]
|
GCLReal RadElem::CentreVis (const Point & p, const Vector & n) |
Definition at line 753 of file RadMesh.cc.
Void RadElem::ColourVertices (Int weights[]) [inline, virtual]
|
Push element radiosities to vertices.
Reimplemented in HierElem, HierGrid, and RadGrid.
Definition at line 673 of file RadMesh.cc.
Void RadElem::Compare (RadElem * to, GCLReal edgeLen, CompareStats & stats) |
Definition at line 269 of file RadMesh.cc.
Void RadElem::CreatePatches (PatchList & patches) [inline, virtual]
|
Split Elem into patches s.t. area < maxPatchSize.
Reimplemented in HierElem, HierGrid, HRMeshElem, and RadGrid.
Definition at line 684 of file RadMesh.cc.
Void RadElem::Draw (Renderer & r) [virtual]
|
Reimplemented in HierElem, HierGrid, HRMeshElem, and RadGrid.
Definition at line 155 of file RadMesh.cc.
Void RadElem::DrawHighlight (Renderer & r) |
Definition at line 139 of file RadMesh.cc.
GCLReal RadElem::EdgeArea (const Vector & p, const Vector & q, const Vector & n) |
Definition at line 391 of file RadMesh.cc.
Colour & RadElem::Emittance () [inline]
|
GCLReal RadElem::EstFormFactor (RadElem * to) |
Returns an estimate of the form factor from this patch to 'to' by calling one of the above methods.
Definition at line 499 of file RadMesh.cc.
GCLReal RadElem::EstPatchFactor (const Point & p, const Vector & n) |
RadElem * RadElem::FindContainer (Coord & coord) [inline, virtual]
|
Find the elem containing this coord.
Reimplemented in HierElem, HierGrid, and RadGrid.
Definition at line 224 of file RadMesh.cc.
Coord RadElem::FindCoord (Point & p) |
Bool RadElem::HasNormals () [inline]
|
Bool RadElem::IsQuad () [inline]
|
Bool RadElem::IsTextured () [inline]
|
Bool RadElem::IsTri () [inline]
|
GCLReal RadElem::MemoryUse () [virtual]
|
Reimplemented in HierElem, HierGrid, NbRadElem, and RadGrid.
Definition at line 1141 of file RadMesh.cc.
StrConst RadElem::Name () [virtual]
|
Reimplemented in HaarElem, HierElem, HierGrid, and RadGrid.
Definition at line 335 of file RadMesh.cc.
Vector & RadElem::Normal () [inline]
|
Vector & RadElem::Normal (Int i) [inline]
|
Int RadElem::OrientInfo (RadElem * to) |
Definition at line 602 of file RadMesh.cc.
Void RadElem::Parse (istream & s) [virtual]
|
GCLReal RadElem::PatchFactor (const Point & p, const Vector & n) |
Bool RadElem::PotentiallyVis (RadElem * to) |
Definition at line 804 of file RadMesh.cc.
Bool RadElem::PotentiallyVisAndTouching (RadElem * to, Bool & touching) |
Definition at line 838 of file RadMesh.cc.
Void RadElem::Print (ostream & s) [virtual]
|
Reimplemented in HaarElem, HierElem, HierGrid, HRMeshElem, and RadGrid.
Definition at line 340 of file RadMesh.cc.
GCLReal RadElem::RadVis16x1 (const Point & p, const Vector & n) |
Definition at line 1037 of file RadMesh.cc.
GCLReal RadElem::RadVis4x4 (RadElem * to) |
Definition at line 994 of file RadMesh.cc.
Void RadElem::RaiseVertex (Renderer & r, Int i) |
Void RadElem::Reanimate (RadElem * parent) [virtual]
|
Colour & RadElem::Reflectance () [inline]
|
Colour RadElem::Sample (Coord c) [inline, virtual]
|
Sample radiosity at this coord.
Reimplemented in AnaGrid.
Definition at line 259 of file RadMesh.cc.
Colour RadElem::SampleLeaf (Coord c) [inline, virtual]
|
Sample radiosity of this elem, rather than descendants.
Reimplemented in HaarElem.
Definition at line 229 of file RadMesh.cc.
GCLReal RadElem::SampledFormFactor (Int n, RadElem * to, GCLReal & error) |
Samples patch factor over n x n panes of the element to estimate form factor.
Definition at line 565 of file RadMesh.cc.
Void RadElem::SendPoints (Renderer & r) [inline]
|
Void RadElem::SetAllIndexes (RadElem * s0, Int i0, RadElem * s1, Int i1, RadElem * s2, Int i2, RadElem * s3, Int i3) |
Definition at line 1109 of file RadMesh.cc.
Void RadElem::SetColour (const Colour & c) [inline]
|
Void RadElem::SetHighlight (Int h) |
Void RadElem::SetIndexes (Int dstIdx, RadElem * src, Int srcIdx) |
Definition at line 1097 of file RadMesh.cc.
Void RadElem::SetProps (RadProps * parentProps) |
Definition at line 636 of file RadMesh.cc.
Void RadElem::SetVisPoints (Point p[]) |
Int RadElem::Sides () [inline]
|
Coord & RadElem::TexCoord (Int i) [inline]
|
Vector & RadElem::Vertex (Int i) [inline]
|
GCLReal RadElem::Visibility (RadElem * to) |
Definition at line 915 of file RadMesh.cc.
GCLReal RadElem::Visibility16 (const Point & p, const Vector & n) |
Definition at line 724 of file RadMesh.cc.
GCLReal RadElem::Visibility44 (RadElem * to) |
Definition at line 904 of file RadMesh.cc.
Colour & RadElem::VtxClr (Int i) [inline]
|
GCLReal RadElem::area |
Point RadElem::centre |
Int RadElem::clrIdx[4] |
Colour RadElem::colour |
Int RadElem::index[4] |
Int RadElem::normIdx[4] |
Vector RadElem::normal |
RadProps * RadElem::props |
Int RadElem::sGridChildMem = 0 [static]
|
Int RadElem::sGridMem = 0 [static]
|
Int RadElem::texIdx[4] |