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

Cluster Class Reference

#include <Cluster.h>

Inheritance diagram for Cluster:

HRElem

Collaboration diagram for Cluster:

List of all members.


Public Members

 Cluster ()
virtual ~Cluster ()
Void SetElems (HRElemList *elemIn)
Cluster* CreateHierarchy ()
Void PushElems ()
Void CreateBounds ()
Void DrawNodeElem (Renderer &r)
Draw the node at this level.

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

Void DrawPatches (Renderer &r)
Void Print (ostream &s)
Void Reset ()
Bool IsLeaf ()
Is this a leaf element in the solution?

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

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

GCLReal EltArea ()
Total area of the element.

GCLReal EltProjArea (const Vector &n)
find projected area of the cluster in the direction of n.

GCLReal EltMaxProjArea (const Vector &n)
find max projected area of the cluster in the direction of n.

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

Colour EltE ()
Colour EltRho ()
Average reflectance of element.

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

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

Void AddIrradiance (const Colour &E, const Vector &m)
Colour GetPower (const Vector &m)
Void EltGetSamples (Int numSamples, Point pts[])
Void DistributeColours ()
Use basis functions to colour underlying mesh/model for display or saving mesh.

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

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

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

Void Push ()
Push accumulated irradiance to children.

Void Pull ()
Pull up radiosity from children.

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

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

Void CalcLeafRadiosity ()
transforms irradiance in B to radiosity.

Void InitRad ()
initialise radiosity.

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

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

Int NumCoeffs ()
Colour* B_Coeffs ()
radiosity coefficients.

Colour* R_Coeffs ()
radiosity coefficients.

Point min
Point max
Point centre
Int level
HRElemList elems
Cluster* child [8]
GCLReal clusterVol
GCLReal clusterArea
Colour maxRho
Colour E
Colour B
Colour R

Static Public Members

Colour lastB


Detailed Description

Definition at line 17 of file Cluster.h.


Constructor & Destructor Documentation

Cluster::Cluster ()

Definition at line 34 of file Cluster.cc.

Cluster::~Cluster () [virtual]

Definition at line 46 of file Cluster.cc.


Member Function Documentation

Void Cluster::Add () [virtual]

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

Reimplemented from HRElem.

Definition at line 307 of file Cluster.cc.

Void Cluster::AddIrradiance (const Colour & srcR, const Vector & r) [virtual]

Reimplemented from HRElem.

Definition at line 631 of file Cluster.cc.

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

Call given method on all children.

Reimplemented from HRElem.

Definition at line 454 of file Cluster.cc.

Colour * Cluster::B_Coeffs () [inline, virtual]

radiosity coefficients.

Reimplemented from HRElem.

Definition at line 78 of file Cluster.h.

Void Cluster::CalcLeafRadiosity () [virtual]

transforms irradiance in B to radiosity.

Reimplemented from HRElem.

Definition at line 364 of file Cluster.cc.

Void Cluster::ClearB () [virtual]

Prepare for a push/pull: clear B.

Reimplemented from HRElem.

Definition at line 358 of file Cluster.cc.

Void Cluster::ClearR () [virtual]

Get ready for a gather: clear R.

Reimplemented from HRElem.

Definition at line 389 of file Cluster.cc.

Void Cluster::CreateBounds ()

Definition at line 66 of file Cluster.cc.

Cluster * Cluster::CreateHierarchy ()

Definition at line 146 of file Cluster.cc.

Void Cluster::DistributeColours () [virtual]

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

Reimplemented from HRElem.

Definition at line 713 of file Cluster.cc.

Void Cluster::DistributeColoursBest (ShadeInfo & shadeInfo) [virtual]

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

Reimplemented from HRElem.

Definition at line 725 of file Cluster.cc.

Void Cluster::DrawLeafElem (Renderer & r) [virtual]

Draw the node by drawing corresponding leaves.

Reimplemented from HRElem.

Definition at line 265 of file Cluster.cc.

Void Cluster::DrawNodeElem (Renderer & r) [virtual]

Draw the node at this level.

Reimplemented from HRElem.

Definition at line 255 of file Cluster.cc.

Void Cluster::DrawPatches (Renderer & r)

Definition at line 291 of file Cluster.cc.

GCLReal Cluster::EltArea () [inline, virtual]

Total area of the element.

Reimplemented from HRElem.

Definition at line 42 of file Cluster.h.

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

Use EltSampleTransport to find coeffs s.t.

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

Reimplemented from HRElem.

Definition at line 545 of file Cluster.cc.

Point Cluster::EltCentre () [inline, virtual]

Centre of element, used mainly for vis. stuff.

Reimplemented from HRElem.

Definition at line 46 of file Cluster.h.

Colour Cluster::EltE () [inline, virtual]

Reimplemented from HRElem.

Definition at line 48 of file Cluster.h.

Void Cluster::EltGetSamples (Int numSamples, Point p[]) [virtual]

Reimplemented from HRElem.

Definition at line 534 of file Cluster.cc.

GCLReal Cluster::EltMaxProjArea (const Vector & n) [virtual]

find max projected area of the cluster in the direction of n.

Reimplemented from HRElem.

Definition at line 682 of file Cluster.cc.

GCLReal Cluster::EltProjArea (const Vector & n) [virtual]

find projected area of the cluster in the direction of n.

Reimplemented from HRElem.

Definition at line 648 of file Cluster.cc.

Colour Cluster::EltRho () [inline, virtual]

Average reflectance of element.

Reimplemented from HRElem.

Definition at line 50 of file Cluster.h.

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

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

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

Reimplemented from HRElem.

Definition at line 470 of file Cluster.cc.

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

return 16 points suitable for vis. sampling.

Reimplemented from HRElem.

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

update min/max to include element.

Reimplemented from HRElem.

Definition at line 40 of file Cluster.h.

GCLReal Cluster::Error () [virtual]

Returns error of a push/pull traversal.

Reimplemented from HRElem.

Definition at line 384 of file Cluster.cc.

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

Reimplemented from HRElem.

Definition at line 643 of file Cluster.cc.

Void Cluster::InitRad () [virtual]

initialise radiosity.

Reimplemented from HRElem.

Definition at line 370 of file Cluster.cc.

Bool Cluster::IsLeaf () [virtual]

Is this a leaf element in the solution?

Reimplemented from HRElem.

Definition at line 449 of file Cluster.cc.

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

Create links from children to 'other'.

Reimplemented from HRElem.

Definition at line 397 of file Cluster.cc.

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

Reimplemented from HRElem.

Definition at line 77 of file Cluster.h.

Void Cluster::Print (ostream & s)

Definition at line 241 of file Cluster.cc.

Void Cluster::Pull () [virtual]

Pull up radiosity from children.

Reimplemented from HRElem.

Definition at line 331 of file Cluster.cc.

Void Cluster::Push () [virtual]

Push accumulated irradiance to children.

Reimplemented from HRElem.

Definition at line 314 of file Cluster.cc.

Void Cluster::PushElems ()

Definition at line 89 of file Cluster.cc.

Colour * Cluster::R_Coeffs () [inline, virtual]

radiosity coefficients.

Reimplemented from HRElem.

Definition at line 79 of file Cluster.h.

Void Cluster::Reset () [virtual]

Reimplemented from HRElem.

Definition at line 56 of file Cluster.cc.

Void Cluster::SetElems (HRElemList * elemsIn)

Definition at line 77 of file Cluster.cc.


Member Data Documentation

Colour Cluster::B

Definition at line 92 of file Cluster.h.

Colour Cluster::E

Definition at line 91 of file Cluster.h.

Colour Cluster::R

Definition at line 93 of file Cluster.h.

Point Cluster::centre

Definition at line 83 of file Cluster.h.

Cluster * Cluster::child[8]

Definition at line 86 of file Cluster.h.

GCLReal Cluster::clusterArea

Definition at line 89 of file Cluster.h.

GCLReal Cluster::clusterVol

Definition at line 88 of file Cluster.h.

HRElemList Cluster::elems

Definition at line 85 of file Cluster.h.

Colour Cluster::lastB [static]

Definition at line 94 of file Cluster.h.

Int Cluster::level

Definition at line 84 of file Cluster.h.

Point Cluster::max

Definition at line 82 of file Cluster.h.

Colour Cluster::maxRho

Definition at line 90 of file Cluster.h.

Point Cluster::min

Definition at line 82 of file Cluster.h.


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