Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

HRElem Class Reference

#include <HRElem.h>

Inheritance diagram for HRElem:

HRMeshElem Cluster HaarElem

List of all members.


Public Members

 HRElem ()
virtual ~HRElem ()
virtual Void Reset ()
Bool Refine ()
Refines any links whose error is too high, both in this element and its children. More...

Bool RefineLink (HRLink *link, Int levels)
Refines a particular link.

Void RefineFurther (Void*)
Internal routine for Refine().

Void PushPull (Void *v = 0)
Transform irradiances into radiosity at all levels.

Void GatherAll (Void *v = 0)
Gather radiosity to self and all children.

Void Gather ()
Gather radiosity to self.

virtual Bool IsLeaf () = 0
Is this a leaf element in the solution?

virtual Void ApplyToChildren (Void (HRElem::*method)(Void*), Void *ref = 0) = 0
Call given method on all children.

virtual Void MakeChildLinks (HRElem *other, HRLink *link, Int which, Int levels) = 0
Create links from children to 'other'.

virtual Void DistributeColours ()
Use basis functions to colour underlying mesh/model for display or saving mesh.

virtual Void DistributeColoursBest (ShadeInfo &shadeInfo)
Use basis functions to colour underlying mesh/model for display or saving mesh.

virtual GCLReal Error () = 0
Returns error of a push/pull traversal.

virtual Void Add () = 0
Add received (gathered) energy R to current irradiance B.

virtual Void Push () = 0
Push accumulated irradiance to children.

virtual Void Pull () = 0
Pull up radiosity from children.

virtual Void ClearB () = 0
Prepare for a push/pull: clear B.

virtual Void ClearR () = 0
Get ready for a gather: clear R.

virtual Void CalcLeafRadiosity () = 0
transforms irradiance in B to radiosity.

virtual Void InitRad ()
initialise radiosity.

Void DrawMatrix (Renderer &r, Int baseNum)
virtual Void DrawMatrixRec (Void *dmi)
Void DrawContributors (Renderer &r)
Draw contributors to patch.

Void DrawContributorsRec (Void *r)
Void DrawElem (Renderer &r)
Draw the element (top-level routine).

virtual Void DrawNodeElem (Renderer &r) = 0
Draw the node at this level.

virtual Void DrawLeafElem (Renderer &r) = 0
Draw the node by drawing corresponding leaves.

Void CalcStats (Void *statsIn)
fill in HRStats record.

Void DumpHierarchy (Void *v = 0)
Bool IsPatch ()
Bool IsCluster ()
Bool IsFaceClus ()
GCLReal EltVis (HRElem *toElt)
GCLReal EltVisToPoint (Point &p)
These both use EltSetVisPoints to estimate visibility.

virtual Void EltSetVisPoints (HRElem *to, Point p[]) = 0
return 16 points suitable for vis. sampling.

virtual Void EltUpdateBounds (Point &min, Point &max) = 0
update min/max to include element.

virtual GCLReal EltProjArea (const Vector &v) = 0
and cluster stuff.

virtual GCLReal EltArea () = 0
Total area of the element.

virtual Point EltCentre () = 0
Centre of element, used mainly for vis. stuff.

virtual Colour EltRho () = 0
Average reflectance of element.

virtual Void EltSampleTransport (Int numSamples, Point p[], Vector n[], Matd &coeffs) = 0
Find coeffs such that coeffs * src_radiosity = irradiance at p[], n[]. More...

virtual GCLReal EltCalcTransport (HRElem *from, Matd &coeffs) = 0
Use EltSampleTransport to find coeffs s.t. More...

virtual Int NumCoeffs ()
virtual Colour* R_Coeffs () = 0
radiosity coefficients.

virtual Colour* B_Coeffs () = 0
radiosity coefficients.

virtual Colour EltE () = 0
virtual Colour EltBA ()
Return average power of elem. Used by cluster radiosity. More...

virtual Void AddIrradiance (const Colour &E, const Vector &m) = 0
virtual Void AddChanIrradiance (const Colour &E, Int chan)
virtual Colour GetPower (const Vector &m) = 0
virtual Void EltGetSamples (Int numSamples, Point pts[]) = 0
virtual GCLReal EltMaxProjArea (const Vector &v)
vector radiosity stuff.

virtual Void DebugInfo ()
Flags16 flags
HRLinkList links
UInt32 id

Static Public Members

UInt32 gID = 0
ostream* out = &cout

Detailed Description

Definition at line 59 of file HRElem.h.


Constructor & Destructor Documentation

HRElem::HRElem ()

Definition at line 25 of file HRElem.cc.

HRElem::~HRElem () [virtual]

Definition at line 35 of file HRElem.cc.


Member Function Documentation

Void HRElem::Add () [inline, pure virtual]

Add received (gathered) energy R to current irradiance B.

Reimplemented in Cluster, and HaarElem.

Void HRElem::AddChanIrradiance (const Colour & E, Int chan) [virtual]

Definition at line 538 of file HRElem.cc.

virtual Void HRElem::AddIrradiance (const Colour & E, const Vector & m) [pure virtual]

Reimplemented in Cluster, and HaarElem.

Void HRElem::ApplyToChildren (Void(HRElem::* method)(Void *), Void * ref = 0) [inline, pure virtual]

Call given method on all children.

Reimplemented in Cluster, and HRMeshElem.

Colour * HRElem::B_Coeffs () [inline, pure virtual]

radiosity coefficients.

Reimplemented in Cluster, and HaarElem.

Void HRElem::CalcLeafRadiosity () [inline, pure virtual]

transforms irradiance in B to radiosity.

Reimplemented in Cluster, and HaarElem.

Void HRElem::CalcStats (Void * statsIn)

fill in HRStats record.

Definition at line 283 of file HRElem.cc.

Void HRElem::ClearB () [inline, pure virtual]

Prepare for a push/pull: clear B.

Reimplemented in Cluster, and HaarElem.

Void HRElem::ClearR () [inline, pure virtual]

Get ready for a gather: clear R.

Reimplemented in Cluster, and HaarElem.

Void HRElem::DebugInfo () [virtual]

Definition at line 554 of file HRElem.cc.

Void HRElem::DistributeColours () [inline, virtual]

Use basis functions to colour underlying mesh/model for display or saving mesh.

Reimplemented in Cluster, and HaarElem.

Definition at line 136 of file HRElem.cc.

Void HRElem::DistributeColoursBest (ShadeInfo & shadeInfo) [inline, virtual]

Use basis functions to colour underlying mesh/model for display or saving mesh.

Reimplemented in Cluster, and HaarElem.

Definition at line 140 of file HRElem.cc.

Void HRElem::DrawContributors (Renderer & r)

Draw contributors to patch.

Definition at line 101 of file HRElem.cc.

Void HRElem::DrawContributorsRec (Void * r)

Definition at line 115 of file HRElem.cc.

Void HRElem::DrawElem (Renderer & r)

Draw the element (top-level routine).

Definition at line 45 of file HRElem.cc.

Void HRElem::DrawLeafElem (Renderer & r) [inline, pure virtual]

Draw the node by drawing corresponding leaves.

Reimplemented in Cluster, and HRMeshElem.

Void HRElem::DrawMatrix (Renderer & r, Int baseNum)

Definition at line 123 of file HRElem.cc.

Void HRElem::DrawMatrixRec (Void * dmi) [virtual]

Reimplemented in HRMeshElem.

Definition at line 132 of file HRElem.cc.

Void HRElem::DrawNodeElem (Renderer & r) [inline, pure virtual]

Draw the node at this level.

Reimplemented in Cluster, and HRMeshElem.

Void HRElem::DumpHierarchy (Void * v = 0)

Definition at line 305 of file HRElem.cc.

GCLReal HRElem::EltArea () [inline, pure virtual]

Total area of the element.

Reimplemented in Cluster, and HRMeshElem.

Colour HRElem::EltBA () [inline, virtual]

Return average power of elem. Used by cluster radiosity.

Defaults to returning EltArea() times first coefficient.

Definition at line 526 of file HRElem.cc.

GCLReal HRElem::EltCalcTransport (HRElem * from, Matd & coeffs) [inline, pure virtual]

Use EltSampleTransport to find coeffs s.t.

to->R_Coeffs += from->B_Coeffs * coeffs. Returns an error estimate.

Reimplemented in Cluster, and HaarElem.

Point HRElem::EltCentre () [inline, pure virtual]

Centre of element, used mainly for vis. stuff.

Reimplemented in Cluster, and HRMeshElem.

virtual Colour HRElem::EltE () [pure virtual]

Reimplemented in Cluster, and HRMeshElem.

virtual Void HRElem::EltGetSamples (Int numSamples, Point pts[]) [pure virtual]

Reimplemented in Cluster, and HRMeshElem.

GCLReal HRElem::EltMaxProjArea (const Vector & n) [inline, virtual]

vector radiosity stuff.

Reimplemented in Cluster.

Definition at line 549 of file HRElem.cc.

GCLReal HRElem::EltProjArea (const Vector & v) [inline, pure virtual]

and cluster stuff.

Reimplemented in Cluster, and HRMeshElem.

Colour HRElem::EltRho () [inline, pure virtual]

Average reflectance of element.

Reimplemented in Cluster, and HRMeshElem.

Void HRElem::EltSampleTransport (Int numSamples, Point p[], Vector n[], Matd & coeffs) [inline, pure virtual]

Find coeffs such that coeffs * src_radiosity = irradiance at p[], n[].

If n = 0, calculate isotropic point irradiance at each point.

Reimplemented in Cluster, and HaarElem.

Void HRElem::EltSetVisPoints (HRElem * to, Point p[]) [inline, pure virtual]

return 16 points suitable for vis. sampling.

Reimplemented in Cluster, and HRMeshElem.

Void HRElem::EltUpdateBounds (Point & min, Point & max) [inline, pure virtual]

update min/max to include element.

Reimplemented in Cluster, and HRMeshElem.

GCLReal HRElem::EltVis (HRElem * to)

Definition at line 474 of file HRElem.cc.

GCLReal HRElem::EltVisToPoint (Point & p)

These both use EltSetVisPoints to estimate visibility.

Definition at line 423 of file HRElem.cc.

GCLReal HRElem::Error () [inline, pure virtual]

Returns error of a push/pull traversal.

Reimplemented in Cluster, and HaarElem.

Void HRElem::Gather ()

Gather radiosity to self.

Definition at line 329 of file HRElem.cc.

Void HRElem::GatherAll (Void * v = 0)

Gather radiosity to self and all children.

Definition at line 349 of file HRElem.cc.

virtual Colour HRElem::GetPower (const Vector & m) [pure virtual]

Reimplemented in Cluster, and HaarElem.

Void HRElem::InitRad () [inline, virtual]

initialise radiosity.

Reimplemented in Cluster.

Definition at line 532 of file HRElem.cc.

Bool HRElem::IsCluster () [inline]

Definition at line 146 of file HRElem.h.

Bool HRElem::IsFaceClus () [inline]

Definition at line 148 of file HRElem.h.

Bool HRElem::IsLeaf () [inline, pure virtual]

Is this a leaf element in the solution?

Reimplemented in Cluster, and HRMeshElem.

Bool HRElem::IsPatch () [inline]

Definition at line 144 of file HRElem.h.

Void HRElem::MakeChildLinks (HRElem * other, HRLink * link, Int which, Int levels) [inline, pure virtual]

Create links from children to 'other'.

Reimplemented in Cluster, and HRMeshElem.

Int HRElem::NumCoeffs () [inline, virtual]

Reimplemented in Cluster, and HaarElem.

Definition at line 198 of file HRElem.h.

Void HRElem::Pull () [inline, pure virtual]

Pull up radiosity from children.

Reimplemented in Cluster, and HaarElem.

Void HRElem::Push () [inline, pure virtual]

Push accumulated irradiance to children.

Reimplemented in Cluster, and HaarElem.

Void HRElem::PushPull (Void * v = 0)

Transform irradiances into radiosity at all levels.

Definition at line 402 of file HRElem.cc.

Colour * HRElem::R_Coeffs () [inline, pure virtual]

radiosity coefficients.

Reimplemented in Cluster, and HaarElem.

Bool HRElem::Refine ()

Refines any links whose error is too high, both in this element and its children.

Returns true if any links were refined.

Definition at line 241 of file HRElem.cc.

Void HRElem::RefineFurther (Void * result)

Internal routine for Refine().

Definition at line 250 of file HRElem.cc.

Bool HRElem::RefineLink (HRLink * link, Int levels)

Refines a particular link.

Definition at line 149 of file HRElem.cc.

Void HRElem::Reset () [virtual]

Reimplemented in Cluster, and HRMeshElem.

Definition at line 40 of file HRElem.cc.


Member Data Documentation

Flags16 HRElem::flags

Definition at line 153 of file HRElem.h.

UInt32 HRElem::gID = 0 [static]

Definition at line 156 of file HRElem.h.

UInt32 HRElem::id

Definition at line 155 of file HRElem.h.

HRLinkList HRElem::links

Definition at line 154 of file HRElem.h.

ostream * HRElem::out = &cout [static]

Definition at line 218 of file HRElem.h.


The documentation for this class was generated from the following files:
Generated at Sat Aug 5 00:26:56 2000 for Radiator by doxygen 1.1.0 written by Dimitri van Heesch, © 1997-2000