#include <Cluster.h>
Inheritance diagram for Cluster:
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 |
Definition at line 17 of file Cluster.h.
Cluster::Cluster () |
Definition at line 34 of file Cluster.cc.
Cluster::~Cluster () [virtual]
|
Definition at line 46 of file Cluster.cc.
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]
|
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]
|
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]
|
Void Cluster::DrawPatches (Renderer & r) |
Definition at line 291 of file Cluster.cc.
GCLReal Cluster::EltArea () [inline, virtual]
|
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]
|
Colour Cluster::EltE () [inline, virtual]
|
Void Cluster::EltGetSamples (Int numSamples, Point p[]) [virtual]
|
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]
|
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]
|
Void Cluster::EltUpdateBounds (Point & min, Point & max) [inline, virtual]
|
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]
|
Void Cluster::InitRad () [virtual]
|
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]
|
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]
|
Void Cluster::Reset () [virtual]
|
Void Cluster::SetElems (HRElemList * elemsIn) |
Definition at line 77 of file Cluster.cc.
Colour Cluster::B |
Colour Cluster::E |
Colour Cluster::R |
Point Cluster::centre |
Cluster * Cluster::child[8] |
GCLReal Cluster::clusterArea |
GCLReal Cluster::clusterVol |
HRElemList Cluster::elems |
Colour Cluster::lastB [static]
|
Int Cluster::level |
Point Cluster::max |
Colour Cluster::maxRho |
Point Cluster::min |