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

RadControl.h

Go to the documentation of this file.
00001 /*
00002     File:           RadControl.h
00003 
00004     Function:       Defines a structure for all of the possible options for
00005                     the various radiosity illumination methods.
00006                     
00007     Author(s):      Andrew Willmott
00008 
00009     Copyright:      (c) 1997-2000, Andrew Willmott
00010  */
00011 
00012 #ifndef __RadOptions__
00013 #define __RadOptions__
00014 
00015 #include "gcl/Renderer.h"
00016 #include "gcl/Scene.h"
00017 
00018 enum RadType
00019 {
00020     kNoMethod,
00021     kMatrix,
00022     kProgressive,
00023     kProgSubstruct,
00024     kHierarchical, 
00025     kAnalytical,
00026     kNumRadMethods
00027 };
00028 
00029 enum HRBasisType
00030 {
00031     kHaar = 1,
00032     kFlatlet2,
00033     kFlatlet3,
00034     kMultiwavelet2,
00035     kMultiwavelet3
00036 };
00037 
00039 enum VisType    
00040 {
00041     vis_none,   
00042     vis_1,      
00043     vis_16x1,   
00045     vis_4x4     
00047 };
00048 
00049 enum MeshType
00050 {
00051     mesh_std,       
00052     mesh_random,    
00053     mesh_nonlin     
00054 };
00055 
00056 enum SolverType
00057 {
00058     sv_twoStage,    
00059     sv_interleaved, 
00060     sv_scheduled    
00061 };
00062 
00063 class HRElem;
00064 class RadMethod;
00065 
00068 class RadControl            
00069 {                           
00070     public:                 
00071 
00072     RadControl();
00073 
00074     //  Options for the current render
00075 
00076     RadType         method;
00077     HRBasisType     basis;
00078 
00079     //  Method options
00080 
00081     GCLReal     patchSubdivs;   
00082     GCLReal     eltSubdivs;     
00083     GCLReal     alpha;          
00084     GCLReal     error;          
00085     
00086     GCLReal     kFError;        
00087     GCLReal     kAError;        
00088     SolverType  solver;         
00089     Bool        useBF;          
00090     Bool        cluster;        
00091     Bool        gridOn;         
00092     Bool        textureRefl;    
00093     Bool        useConjGrad;    
00094     Bool        ambient;        
00095     Bool        refAllLinks;    
00097     Int         refineLevels;   
00099     Int         maxShots;       
00100     Int         schedIterations; 
00101 
00102     //  Visibility and form factor stuff.
00103 
00104     VisType     visibility;     
00105     Bool        jitterRot;      
00107     GCLReal     dFError;        
00109     GCLReal     visError;       
00113     Int         quadLevel;      
00114     GCLReal     forceVisReuseArea;  
00116     GCLReal     sampleFactor;   
00117     Bool        visInQuad;      
00119     GCLReal     favourReceiver; 
00122     //  Mesh options
00123 
00124     MeshType    mesh;           
00125     Bool        fixMesh;        
00126     Bool        connectMesh;    
00127     Bool        noGridMesh;     
00128 
00129     // MR complexity options
00130 
00131     GCLReal     rtComplexity;   
00132     GCLReal     meshComplexity; 
00133 
00134     //  Simulation opts.
00135 
00136     Bool        stop;
00137     Bool        step;
00138     Bool        pause;
00139 
00140     //  Display options
00141         
00142     Bool        graded;         
00143     Bool        anchor;         
00144     Bool        gouraud;        
00145     Bool        texture;        
00146     Bool        wire;           
00147 
00148     Bool        redWire;        
00149     Bool        shotDisplay;    
00150     Bool        patchView;      
00151     HRElem      *pvData;        
00152     Bool        funcView;       
00153     
00154     Bool        animate;        
00155     Bool        showRays;       
00156     Bool        showLinks;      
00157     Bool        showFCs;        
00158     
00159     Int         choke;          
00161     Bool        drawMatrix;     
00162     
00163     Bool        outlineClusters;
00164     Bool        outlineVisGrid;
00165 
00166     Bool        finalPass;      
00167     Bool        bestPass;       
00168     Bool        bestVisPass;    
00169     Int         bestLevels;     
00170 
00171     // debugging, adding code
00172 
00173     Bool        o1, o2, o3, o4, o5, o6;     
00174     
00175     //  Objects relevant to the current render
00176         
00177     RadMethod   *radObject;
00178     Int         stage;
00179     
00180     //  Statistics for the current render
00181     
00182     Bool        dumpTree;
00184     Bool        dumpScenes;
00186     Bool        updateScene;
00188     GCLReal     sliceTime, limitTime;
00189     Int         numPolys;
00190     Int         rays;
00191     GCLReal     mem;
00192     StrConst    outFile;
00193 };
00194 
00195 extern Reflectance  kRadRGBToLum;
00196 extern Int          radVersionMajor;
00197 extern Int          radVersionMinor;
00198 extern Int          radVersionFix;
00199 extern RadControl   *gRadControl;
00200 
00201 TempString          RadGetVersion();
00202 
00203 #endif

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