00001 /* 00002 File: RadScene.h 00003 00004 Function: Defines various useful GCL scene primitives 00005 00006 Author(s): Andrew Willmott 00007 00008 Copyright: (c) 1997-2000, Andrew Willmott 00009 */ 00010 00011 #ifndef __RadScene__ 00012 #define __RadScene__ 00013 00014 #include "RadMesh.h" 00015 #include "gcl/SceneObjects.h" 00016 00017 class scRadMesh : public scPrimitive 00025 { 00026 public: 00027 scRadMesh() : scPrimitive(pExtension), rad(0) {}; 00028 00029 Object *Clone() const { return new scRadMesh(SELF); }; 00030 00031 Void Draw(Renderer &r, SLContext *context); 00032 00033 // Parsing 00034 00035 Void Print(ostream &s) const; 00036 Void Parse(istream &s); 00037 00038 // Radiosity methods 00039 00040 // Void Compare(scPrimitive *to, GCLReal edgeLen, 00041 // CompareStats &stats); 00042 00043 Void SetMethod(RadMethod *rm) { rad = rm; }; 00044 00045 protected: 00046 RadMethod *rad; 00047 }; 00048 00049 class scMatrixDisplay : public scPrimitive 00052 { 00053 public: 00054 scMatrixDisplay(Void **method) : scPrimitive(pExtension), method(method) {}; 00055 scMatrixDisplay(const scMatrixDisplay &md) : scPrimitive(md), method(md.method) {}; 00056 00057 Object *Clone() const { return new scMatrixDisplay(SELF); }; 00058 00059 Void Draw(Renderer &r, SLContext *context); 00060 StrConst Label() const; 00061 00062 Void **method; 00063 }; 00064 00065 #endif