Files Classes Functions Hierarchy
#include <trianglevisualize.h>
Public Member Functions | |
| trianglevisualize (gobjContainer &_gX, triangle< T > const &_tr) | |
| Constructor with basic switch display defaults. | |
| void | eval () const |
| Evaluate the graphics writing it out to gX. | |
Public Attributes | |
| bool | mesh_on |
| Display the triangle. | |
| bool | midpoints_on |
| Display the midpoints. | |
| bool | midpoint_center_on |
| Display the centroid. | |
| bool | altitude_to_point_on |
| Display the altitudes to there opposite points, and the orthocenter. | |
| bool | altitude_on |
| Display the circumcenter. | |
| bool | innercircle_on |
| Display the inner circle. | |
This is a monolythic design. Turn the switches on and then eval() to write the graphics out to the graphics container passed in at contruction time.
Definition at line 16 of file trianglevisualize.h.
| trianglevisualize< T >::trianglevisualize | ( | gobjContainer & | _gX, | |
| triangle< T > const & | _tr | |||
| ) | [inline] |
Constructor with basic switch display defaults.
Definition at line 58 of file trianglevisualize.h.
00062 : gX(_gX), tr(_tr), mesh_on(true), midpoints_on(false), 00063 midpoint_center_on(false), altitude_to_point_on(false), 00064 altitude_on(false), innercircle_on(false) 00065 { 00066 }
| void trianglevisualize< T >::eval | ( | ) | const [inline] |
Evaluate the graphics writing it out to gX.
Definition at line 70 of file trianglevisualize.h.
References trianglevisualize< T >::altitude_on, trianglevisualize< T >::altitude_to_point_on, triangle< PT, PD >::bisectangle(), triangle< PT, PD >::centroid(), triangle< PT, PD >::circumcenter(), point3< T >::dot(), triangle< PT, PD >::innercircle(), trianglevisualize< T >::innercircle_on, trianglevisualize< T >::mesh_on, triangle< PT, PD >::midpoint(), trianglevisualize< T >::midpoint_center_on, trianglevisualize< T >::midpoints_on, triangle< PT, PD >::orthocenter(), triangle< PT, PD >::orthocenteri(), triangle< PT, PD >::pi, r, gobjQuadric::radius, point3< T >::x, and point3< T >::y.
00071 { 00072 gX.push_back( new gobjglDisable(GL_LIGHTING) ); 00073 00074 if (mesh_on) 00075 { 00076 00077 gX.push_back( new gobjglColor3ub(0,0,255) ); 00078 00079 gX.push_back( new gobjglBegin(GL_LINES) ); 00080 00081 gX.push_back( new gobjglVertex3f(tr.pi[0]) ); 00082 gX.push_back( new gobjglVertex3f(tr.pi[1]) ); 00083 gX.push_back( new gobjglVertex3f(tr.pi[0]) ); 00084 gX.push_back( new gobjglVertex3f(tr.pi[2]) ); 00085 gX.push_back( new gobjglVertex3f(tr.pi[1]) ); 00086 gX.push_back( new gobjglVertex3f(tr.pi[2]) ); 00087 00088 gX.push_back( new gobjglEnd() ); 00089 00090 } 00091 00092 gX.push_back( new gobjglColor3ub(255,0,255) ); 00093 00094 T m0 = tr.midpoint(0); 00095 T m1 = tr.midpoint(1); 00096 T m2 = tr.midpoint(2); 00097 00098 gobjQuadric * gd = new gobjQuadric(); 00099 gd->radius=.02; 00100 gX.push_back( gd ); 00101 00102 if (midpoints_on) 00103 { 00104 gX.push_back( new gobjglColor3ub(255,0,255) ); 00105 gX.push_back( new gobjMySphereDraw(m0,gd) ); 00106 gX.push_back( new gobjMySphereDraw(m1,gd) ); 00107 gX.push_back( new gobjMySphereDraw(m2,gd) ); 00108 } 00109 00110 if (midpoint_center_on) 00111 { 00112 gX.push_back( new gobjglColor3ub(0,255,0) ); 00113 gX.push_back( new gobjglBegin(GL_LINES) ); 00114 gX.push_back( new gobjglVertex3f(tr.pi[0]) ); 00115 gX.push_back( new gobjglVertex3f(m0) ); 00116 gX.push_back( new gobjglVertex3f(tr.pi[1]) ); 00117 gX.push_back( new gobjglVertex3f(m1) ); 00118 gX.push_back( new gobjglVertex3f(tr.pi[2]) ); 00119 gX.push_back( new gobjglVertex3f(m2) ); 00120 gX.push_back( new gobjglEnd() ); 00121 00122 T mc = tr.centroid(); 00123 gX.push_back( new gobjMySphereDraw(mc,gd) ); 00124 } 00125 00126 T vc = tr.orthocenter(); 00127 00128 if (altitude_to_point_on) 00129 { 00130 gX.push_back( new gobjglColor3ub(184,134,11) ); 00131 T v0 = tr.orthocenteri(0); 00132 gX.push_back( new gobjMySphereDraw(v0,gd) ); 00133 T v1 = tr.orthocenteri(1); 00134 gX.push_back( new gobjMySphereDraw(v1,gd) ); 00135 T v2 = tr.orthocenteri(2); 00136 gX.push_back( new gobjMySphereDraw(v2,gd) ); 00137 00138 00139 gX.push_back( new gobjglColor3ub(255,215,0) ); 00140 gX.push_back( new gobjglBegin(GL_LINES) ); 00141 gX.push_back( new gobjglVertex3f(tr.pi[0]) ); 00142 gX.push_back( new gobjglVertex3f(v0) ); 00143 gX.push_back( new gobjglVertex3f(tr.pi[1]) ); 00144 gX.push_back( new gobjglVertex3f(v1) ); 00145 gX.push_back( new gobjglVertex3f(tr.pi[2]) ); 00146 gX.push_back( new gobjglVertex3f(v2) ); 00147 gX.push_back( new gobjglEnd() ); 00148 00149 gX.push_back( new gobjMySphereDraw(vc,gd) ); 00150 } 00151 00152 T cc = tr.circumcenter(); 00153 00154 gobjMyCircle * gc = new gobjMyCircle(); 00155 00156 if(altitude_on) 00157 { 00158 gX.push_back( new gobjglColor3ub(255,0,0) ); 00159 gX.push_back( new gobjMySphereDraw(cc,gd) ); 00160 00161 gX.push_back( new gobjglBegin(GL_LINES) ); 00162 gX.push_back( new gobjglVertex3f(cc) ); 00163 gX.push_back( new gobjglVertex3f(m0) ); 00164 gX.push_back( new gobjglVertex3f(cc) ); 00165 gX.push_back( new gobjglVertex3f(m1) ); 00166 gX.push_back( new gobjglVertex3f(cc) ); 00167 gX.push_back( new gobjglVertex3f(m2) ); 00168 gX.push_back( new gobjglEnd() ); 00169 00170 00171 gX.push_back( gc ); 00172 point3<double> cc2(cc); 00173 point3<double> radius(cc2); 00174 radius.x -= tr.pi[0].x; 00175 radius.y -= tr.pi[0].y; 00176 gX.push_back( new gobjMyCircleDraw(sqrt(radius.dot()),cc2,*gc) ); 00177 00178 } 00179 00180 gX.push_back( new gobjglBegin(GL_LINES) ); 00181 gX.push_back( new gobjglVertex3f(cc) ); 00182 gX.push_back( new gobjglColor3ub(255,215,0) ); 00183 gX.push_back( new gobjglVertex3f(vc) ); 00184 gX.push_back( new gobjglEnd() ); 00185 00186 if (innercircle_on) 00187 { 00188 T b0(tr.bisectangle(0)); 00189 T b1 = tr.bisectangle(1); 00190 T b2 = tr.bisectangle(2); 00191 gX.push_back( new gobjglColor3ub(127,255,212) ); 00192 gX.push_back( new gobjMySphereDraw(b0,gd) ); 00193 gX.push_back( new gobjMySphereDraw(b1,gd) ); 00194 gX.push_back( new gobjMySphereDraw(b2,gd) ); 00195 00196 00197 T x; 00198 double r; 00199 tr.innercircle(x,r); 00200 gX.push_back( new gobjMySphereDraw(x,gd) ); 00201 gX.push_back( new gobjMyCircleDraw(r,point3<double>(x),*gc) ); 00202 00203 gX.push_back( new gobjglBegin(GL_LINES) ); 00204 gX.push_back( new gobjglVertex3f(tr.pi[0]) ); 00205 gX.push_back( new gobjglVertex3f(b0) ); 00206 gX.push_back( new gobjglVertex3f(tr.pi[1]) ); 00207 gX.push_back( new gobjglVertex3f(b1) ); 00208 gX.push_back( new gobjglVertex3f(tr.pi[2]) ); 00209 gX.push_back( new gobjglVertex3f(b2) ); 00210 gX.push_back( new gobjglEnd() ); 00211 } 00212 00213 }
| bool trianglevisualize< T >::altitude_on |
Display the circumcenter.
Definition at line 35 of file trianglevisualize.h.
Referenced by trianglevisualize< T >::eval().
| bool trianglevisualize< T >::altitude_to_point_on |
Display the altitudes to there opposite points, and the orthocenter.
Definition at line 33 of file trianglevisualize.h.
Referenced by trianglevisualize< T >::eval().
| bool trianglevisualize< T >::innercircle_on |
Display the inner circle.
Definition at line 37 of file trianglevisualize.h.
Referenced by trianglevisualize< T >::eval().
| bool trianglevisualize< T >::mesh_on |
Display the triangle.
Definition at line 26 of file trianglevisualize.h.
Referenced by trianglevisualize< T >::eval().
| bool trianglevisualize< T >::midpoint_center_on |
Display the centroid.
Definition at line 30 of file trianglevisualize.h.
Referenced by trianglevisualize< T >::eval().
| bool trianglevisualize< T >::midpoints_on |
Display the midpoints.
Definition at line 28 of file trianglevisualize.h.
Referenced by trianglevisualize< T >::eval().
1.5.8