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

Haar.h

Go to the documentation of this file.
00001 /*
00002     File:       Haar.h
00003 
00004     Function:   Implements haar wavelet basis over an element
00005 
00006     Author:     Andrew Willmott
00007 
00008     Copyright:  (c) 1996-2000, Andrew Willmott
00009 */
00010 
00011 #ifndef __Haar__
00012 #define __Haar__
00013 
00014 #include "HRMesh.h"
00015 
00016 class HaarElem;
00017 
00018 class HaarLink : public HRLink
00019 {
00020 public:
00021     HRLink          *New() { return new HaarLink; };
00022 
00023     HaarElem        *To()   { return((HaarElem*) to); };
00024     HaarElem        *From() { return((HaarElem*) from); };
00025 
00026     Void            Gather();   
00027     Bool            CalcTransport();
00028     Bool            CalcVisibility(HRLink *parent, Bool reuse);
00029     GCLReal         Error();
00030     GCLReal         BFAError();
00031 
00032     Void            Print(ostream &s);
00033     Void            DrawLink(Renderer &r, 
00034                         GCLReal left, GCLReal top,
00035                         GCLReal right, GCLReal bottom, 
00036                         GCLReal weight
00037                     );
00038 
00039     GCLReal         Strength() { return(transport); };
00040     
00041     GCLReal         transport;
00042     GCLReal         error;
00043 };
00044 
00045 class HaarElem : public HRMeshElem
00046 {
00047 public:
00048     Void        SetParent(HierElem &parent);
00049     StrConst    Name() { return("haar"); };
00050     HierElem    *New() { return(new HaarElem); };
00051 
00052     Colour      SampleLeaf(Coord c);
00053     Void        Print(ostream &s);
00054     Void        PrintSelf(ostream &s);
00055     Void        ParseSelf(istream &s);
00056     
00057     Void        DistributeColours();
00058     Void        DistributeColoursBest(ShadeInfo &shadeInfo);
00059 
00060     Void        Add();
00061     Void        Push();
00062     Void        Pull();
00063     Void        CalcLeafRadiosity();
00064     GCLReal     Error();
00065     Void        ClearB();
00066     Void        ClearR();
00067 
00068     HaarElem    *Child(Int i)
00069                 { return((HaarElem*) child[i]); };
00070 
00071     // gen wave stuff
00072     Void        EltSampleTransport(Int numSamples, Point p[], Vector n[],
00073                         Matd &coeffs);
00074     GCLReal     EltCalcTransport(HRElem *from, Matd &coeffs);
00075 
00076     Void        AddIrradiance(const Colour &E, const Vector &m);
00077     Colour      GetPower(const Vector &m);
00078 
00079     Int         NumCoeffs() { return(1); };
00080     Colour      *B_Coeffs() { return(&B); };
00081     Colour      *R_Coeffs() { return(&R); };
00082 
00083     // Fields
00084     Colour      B;
00085     Colour      R;
00086     static Colour lastB;
00087 
00088 };
00089 
00090 #endif

Generated at Sat Aug 5 00:26:51 2000 for Radiator by doxygen 1.1.0 written by Dimitri van Heesch, © 1997-2000