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