proj home

Files   Classes   Functions   Hierarchy  

d3tessdraw.h

Go to the documentation of this file.
00001 #ifndef D3TESSDRAW_H
00002 #define D3TESSDRAW_H
00003 
00004 #include <d3marchdisp.h>
00005 #include <d3tess.h>
00006 #include <gobj.h>
00007 #include <graphicsImmediateDeferred.h>
00008 
00009 
00030 class d3tessdraw : public gobj
00031 {
00032 public:
00033 
00034   /* Moving over the mesh changes the mesh. */
00035   d3tess & tess; 
00036   /* Mesh geometry */
00037   gobjContainer gdynamic;
00038 
00039   enum 
00040   { 
00042     points=0,         // Number the points.
00043     simplexes=1,      // Number the triangles.
00044     multicolor=2,     // Randomly color the tessellation.
00045     voronoi=3,        // Voronoi Diagram.
00047     winding=0,        // Draw each simplices winding.
00048     grid=1,           // Draw the mesh.
00049     cp=2,             // Draw the cp.
00050     surface=3,        // Draw the surface.
00051     circle=4,         // Draw a circle through three point of cp.
00052     circles=5,        // Draw circles through all simplices.
00053     voronoip=6        // Draws voronoi polygons at base.
00054   };
00055 
00058   gobjContainerSwitch graphicsDeffered;
00059 
00061   gobjContainerSwitch graphicsImmediate;
00062 
00065   d3tessdraw(d3tess & tess_);
00066 
00068   void draw();
00069 
00071   void meshupdate();
00072 
00073 };
00074 
00075 class writepointsobj : public gobj
00076 {
00077   d3tess const & tess;
00078 public:
00079 
00080   gobjglColor3ub col;
00081 
00082   writepointsobj(d3tess const & tess_)
00083     : tess(tess_), col(255,255,0) {}
00084 
00085   void draw();
00086 };
00087 
00088 class writewindingobj : public gobj
00089 {
00090   d3tess const  & tess;
00091 public:
00092 
00093   writewindingobj(d3tess const & tess_)
00094     : tess(tess_) {}
00095 
00096   void draw();
00097 };
00098 
00099 class writegridobj : public gobj
00100 {
00101   d3tess const  & tess;
00102 public:
00103 
00104   // Configure the grid or mesh color.
00105   gobjglColor3ub gridcolor;
00106 
00107   writegridobj(d3tess const & tess_)
00108     : tess(tess_), gridcolor(gobjglColor3ub(0,0,255)) {}
00109 
00110   void draw();
00111 };
00112 
00113 class writesimplicesobj : public gobj
00114 {
00115   d3tess const  & tess;
00116 public:
00117 
00118   writesimplicesobj(d3tess const & tess_)
00119     : tess(tess_) {}
00120 
00121   void draw();
00122 };
00123 
00124 class writecpobj : public gobj
00125 {
00126   d3tess const  & tess;
00127 public:
00128 
00129   writecpobj(d3tess const & tess_)
00130     : tess(tess_) {}
00131 
00132   void draw();
00133 };
00134 
00135 
00136 class writesurfaceobj : public gobj
00137 {
00138   d3tess const  & tess;
00139 public:
00140 
00141   // Configure the surface color.
00142   gobjglColor3ub surfacecolor;
00143 
00144   // Configure the c-value in surface.
00145   d3marchdisp surface;
00146 
00147   writesurfaceobj(d3tess const & tess_)
00148     : tess(tess_), surfacecolor(gobjglColor3ub(255,0,0)) {}
00149 
00150   void draw();
00151 };
00152 
00153 
00154 class writecpcircleobj : public gobj
00155 {
00156   d3tess const  & tess;
00157   gobjMyCircle cir;
00158 public:
00159 
00160   writecpcircleobj(d3tess const & tess_)
00161     : tess(tess_) {}
00162 
00163   void draw();
00164 };
00165 
00166 class writecirclesobj : public gobj
00167 {
00168   d3tess const  & tess;
00169   gobjMyCircle cir;
00170 public:
00171 
00172   writecirclesobj(d3tess const & tess_)
00173     : tess(tess_) {}
00174 
00175   void draw();
00176 };
00177 
00178 class writecpvoronoiobj : public gobj
00179 {
00180   d3tess & tess;
00181   void onevertex() const;
00182 public:
00183 
00184   writecpvoronoiobj(d3tess & tess_)
00185     : tess(tess_) {}
00186 
00187   void draw();
00188 };
00189 
00190 class writemulticolorobj : public gobj
00191 {
00192   d3tess const  & tess;
00193 public:
00194 
00195   writemulticolorobj(d3tess const & tess_)
00196     : tess(tess_) {}
00197 
00198   void draw();
00199 };
00200 
00201 class writevoronoidiagramobj : public gobj
00202 {
00203   d3tess & tess;
00204   // Iterates around tess.vs
00205   void onevertex() const;
00206 public:
00207 
00208   writevoronoidiagramobj(d3tess & tess_)
00209     : tess(tess_) {}
00210 
00211   void draw();
00212 };
00213 
00214 
00215 
00216 
00217 
00218 #endif
00219 
00220 

Generated on Fri Mar 4 00:49:26 2011 for Chelton Evans Source by  doxygen 1.5.8