proj home

Files   Classes   Functions   Hierarchy  

tetrahedrontest.cpp

Go to the documentation of this file.
00001 #include <commandline.h>
00002 #include <gobj.h>
00003 #include <graphmisc.h>
00004 #include <tetrahedron.h>
00005 #include <tetrahedrondisplay.h>
00006 #include <tetrahedrontest.h>
00007 #include <triangle.h>
00008 #include <triangle3D.h>
00009 #include <triangledisplay.h>
00010 #include <zpr.h>
00011 
00012 
00013 void tetrahedrontest::keyboard01(unsigned char key, int x, int y)
00014 {
00015   switch (key)
00016   {
00017     case 27:
00018       exit(0);
00019       break;
00020   }
00021 }
00022 
00023 void tetrahedrontest::display01()
00024 { 
00025   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00026 
00027   assert(gobj::global!=0);
00028   gobj::global->draw();
00029 
00030   glerrordisplay();
00031   
00032   glutSwapBuffers();
00033 }
00034 
00035 
00036 void tetrahedrontest::test01(int argc, char** argv)
00037 {
00038   glutInit(&argc,argv);
00039   glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
00040   glutInitWindowSize(800,600);
00041   glutCreateWindow("");
00042   glutDisplayFunc(display01);
00043   glutKeyboardFunc(keyboard01);
00044 
00045   zpr zz;
00046 
00047   OpenGLinitialisation();
00048 
00049   glEnable(GL_DEPTH_TEST);
00050   glEnable(GL_CULL_FACE);
00051   glEnable(GL_NORMALIZE);
00052  
00053   commandline cmd(argc,argv);
00054 
00055   double a0=0.0;
00056   double a1=0.0;
00057   double a2=0.0;
00058   double b0=1.3;
00059   double b1=0.0;
00060   double b2=0.0;
00061 
00062   double c0=0.5;
00063   double c1=0.0;
00064   double c2=1.0;
00065 
00066   double d0=1.0;
00067   double d1=2.0;
00068   double d2=0.0;
00069 
00070   cmd.mapvar(a0,"a0");
00071   cmd.mapvar(a1,"a1");
00072   cmd.mapvar(a2,"a2");
00073   cmd.mapvar(b0,"b0");
00074   cmd.mapvar(b1,"b1");
00075   cmd.mapvar(b2,"b2");
00076   cmd.mapvar(c0,"c0");
00077   cmd.mapvar(c1,"c1");
00078   cmd.mapvar(c2,"c2");
00079   cmd.mapvar(d0,"d0");
00080   cmd.mapvar(d1,"d1");
00081   cmd.mapvar(d2,"d2");
00082 
00083   typedef point3<double> pt3;
00084 
00085   pt3 a(a0,a1,a2);
00086   pt3 b(b0,b1,b2);
00087   pt3 c(c0,c1,c2);
00088   pt3 d(d0,d1,d2);
00089 
00090   //gX.push_back( new gobjglDisable(GL_LIGHTING) );
00091 
00092   tetrahedron<pt3,double> tet(a,b,c,d);
00093 
00094 /*
00095   visualize_tetrahedron<double> v(gX,t);
00096 
00097   cmd.mapvar(v.mesh_on,"mesh_on");
00098   cmd.mapvar(v.midpoints_on,"midpoints_on");
00099   cmd.mapvar(v.midpoint_center_on,"midpoint_center_on");
00100   cmd.mapvar(v.altitude_to_point_on,"altitude_to_point_on");
00101   cmd.mapvar(v.altitude_on,"altitude_on");
00102   cmd.mapvar(v.innersphere_on,"innersphere_on");
00103 */
00104 
00105   gX.set();
00106 
00107 
00108   tetrahedrondisplay< tetrahedron<pt3,double> > td(gX,tet);
00109   cmd.mapvar(td.mesh,"mesh");
00110   cmd.mapvar(td.centroid,"centroid");
00111   cmd.mapvar(td.trianglecenterpoints,"trianglecenterpoints");
00112   cmd.mapvar(td.trianglecenters,"trianglecenters");
00113   td.draw();
00114 
00115 
00116 /*
00117   tetrahedrondisplaymesh< tetrahedron<pt3,double> > td(gX,tet);
00118   td.draw();
00119 
00120   typedef triangledisplaypoints< triangle3D<pt3,double> > 
00121     tridisptype;
00122   typedef tetrahedron<pt3,double> tettype;
00123 
00124   tetrahedrontriangledisplay< tettype, tridisptype > tetd(gX,tet);
00125   tetrahedrontriangledisplaytdimacro(tetd, turnon() ); 
00126 
00127   tetd.draw();
00128 */
00129     
00130 
00131 //  v.eval();
00132 
00133   //t.circumcenter();
00134 
00135 
00136   zz.update();
00137   glutMainLoop();
00138 }
00139 
00140 
00141 void tetrahedrontest::test02(int argc, char** argv)
00142 {
00143   glutInit(&argc,argv);
00144   glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
00145   glutInitWindowSize(800,600);
00146   glutCreateWindow("");
00147   glutDisplayFunc(display01);
00148   glutKeyboardFunc(keyboard01);
00149 
00150   zpr zz;
00151 
00152   OpenGLinitialisation();
00153 
00154   glEnable(GL_DEPTH_TEST);
00155   glEnable(GL_CULL_FACE);
00156   glEnable(GL_NORMALIZE);
00157  
00158   commandline cmd(argc,argv);
00159 
00160   double a0=0.0;
00161   double a1=0.0;
00162   double a2=0.0;
00163   double b0=1.3;
00164   double b1=0.0;
00165   double b2=0.0;
00166 
00167   double c0=0.5;
00168   double c1=0.0;
00169   double c2=1.0;
00170 
00171   double d0=1.0;
00172   double d1=2.0;
00173   double d2=0.0;
00174 
00175   cmd.mapvar(a0,"a0");
00176   cmd.mapvar(a1,"a1");
00177   cmd.mapvar(a2,"a2");
00178   cmd.mapvar(b0,"b0");
00179   cmd.mapvar(b1,"b1");
00180   cmd.mapvar(b2,"b2");
00181   cmd.mapvar(c0,"c0");
00182   cmd.mapvar(c1,"c1");
00183   cmd.mapvar(c2,"c2");
00184   cmd.mapvar(d0,"d0");
00185   cmd.mapvar(d1,"d1");
00186   cmd.mapvar(d2,"d2");
00187 
00188   typedef point3<double> pt3;
00189 
00190   pt3 a(a0,a1,a2);
00191   pt3 b(b0,b1,b2);
00192   pt3 c(c0,c1,c2);
00193   pt3 d(d0,d1,d2);
00194 
00195   //gX.push_back( new gobjglDisable(GL_LIGHTING) );
00196 
00197   tetrahedron<pt3,double> tet(a,b,c,d);
00198 
00199   gX.set();
00200 
00201   tetrahedrondisplay< tetrahedron<pt3,double> > td(gX,tet);
00202   cmd.mapvar(td.mesh,"mesh");
00203   cmd.mapvar(td.centroid,"centroid");
00204   cmd.mapvar(td.test,"test");
00205   cmd.mapvar(td.trianglecenterpoints,"trianglecenterpoints");
00206   cmd.mapvar(td.trianglecenters,"trianglecenters");
00207   td.draw();
00208 
00209   tetrahedron<pt3,double> tet2;
00210 
00211   uint n(1);
00212   cmd.mapvar(n,"n");
00213 
00214   //tet.applytoself(tet2, & triangle3D<pt3,double>::centroid );
00215   //tet.applytoself(tet2, & triangle3D<pt3,double>::centroid, n );
00216   //tet.applytoself(tet2, & triangle3D<pt3,double>::gergonnepoint, n );
00217   //tet.applytoself(tet2, & triangle3D<pt3,double>::circumcenter, n );
00218   //tet.applytoself(tet2, & triangle3D<pt3,double>::incenter, n );
00219   //tet.applytoself(tet2, & triangle3D<pt3,double>::orthocenter, n );
00220   tet.applytoself(tet2, & triangle3D<pt3,double>::napoleanpoint, n );
00221  
00222 
00223   tetrahedrondisplaymesh< tetrahedron<pt3,double> > td2(gX,tet2);
00224   td2.draw();
00225 
00226   
00227 
00228   zz.update();
00229   glutMainLoop();
00230 }
00231 

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