[Toxicengine-cvs] toxic/tools/photonviewer photonviewer.cpp,1.2,1.3
Status: Alpha
Brought to you by:
jperret
From: Jonathan P. <jp...@us...> - 2004-11-09 22:39:55
|
Update of /cvsroot/toxicengine/toxic/tools/photonviewer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27055/tools/photonviewer Modified Files: photonviewer.cpp Log Message: dictoon's remaining changes : - ProgressMonitor renamed to IProgressMonitor - BinaryStream rewritten Index: photonviewer.cpp =================================================================== RCS file: /cvsroot/toxicengine/toxic/tools/photonviewer/photonviewer.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** photonviewer.cpp 7 Oct 2004 23:34:41 -0000 1.2 --- photonviewer.cpp 9 Nov 2004 22:39:44 -0000 1.3 *************** *** 131,134 **** --- 131,137 ---- } + #include "common/math/point2.h" + #include "common/meshio/triangulator.h" + void PhotonViewer::Render() { glEnable(GL_DEPTH_TEST); *************** *** 137,142 **** --- 140,490 ---- glDisable(GL_COLOR_MATERIAL); + #if 0 + vector<Point3> polygon_vertices; + + /* polygon_vertices.push_back(Point3(-10.92, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-9.34, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-9.34, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-7.12, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-7.12, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-6.44, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-6.44, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-7.12, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-4.94, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-4.94, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-3.86, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-3.86, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-0.54, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-0.54, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-0.0008, 12.04, -2.52)); + polygon_vertices.push_back(Point3(0, 15.4, -2.52)); + polygon_vertices.push_back(Point3(-2.04, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-2.04, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-2.72, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-2.72, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-2.04, 15.13, -2.52)); + polygon_vertices.push_back(Point3(0, 15.4, -2.52)); + polygon_vertices.push_back(Point3(-10.92, 15.4, -2.52));*/ + + /* polygon_vertices.push_back(Point3(0, 15.4, -2.52)); + polygon_vertices.push_back(Point3(2.04, 15.13, -2.52)); + polygon_vertices.push_back(Point3(2.72, 15.13, -2.52)); + polygon_vertices.push_back(Point3(2.72, 14.45, -2.52)); + polygon_vertices.push_back(Point3(2.04, 14.45, -2.52)); + polygon_vertices.push_back(Point3(2.04, 15.13, -2.52)); + polygon_vertices.push_back(Point3(0, 15.4, -2.52)); + polygon_vertices.push_back(Point3(0.0008, 12.04, -2.52)); + polygon_vertices.push_back(Point3(0.54, 12.04, -2.52)); + polygon_vertices.push_back(Point3(0.54, 12.035, -2.52)); + polygon_vertices.push_back(Point3(3.86, 12.035, -2.52)); + polygon_vertices.push_back(Point3(3.86, 12.04, -2.52)); + polygon_vertices.push_back(Point3(4.94, 12.04, -2.52)); + polygon_vertices.push_back(Point3(4.94, 12.035, -2.52)); + polygon_vertices.push_back(Point3(8.26, 12.035, -2.52)); + polygon_vertices.push_back(Point3(8.26, 12.04, -2.52)); + polygon_vertices.push_back(Point3(7.12, 14.45, -2.52)); + polygon_vertices.push_back(Point3(6.44, 14.45, -2.52)); + polygon_vertices.push_back(Point3(6.44, 15.13, -2.52)); + polygon_vertices.push_back(Point3(7.12, 15.13, -2.52)); + polygon_vertices.push_back(Point3(7.12, 14.45, -2.52)); + polygon_vertices.push_back(Point3(8.26, 12.04, -2.52)); + polygon_vertices.push_back(Point3(9.34, 12.04, -2.52)); + polygon_vertices.push_back(Point3(9.34, 12.035, -2.52)); + polygon_vertices.push_back(Point3(10.92, 12.035, -2.52)); + polygon_vertices.push_back(Point3(10.92, 15.4, -2.52));*/ + + /* polygon_vertices.push_back(Point3(0, 15.4, 2.52)); + polygon_vertices.push_back(Point3(-2.04, 15.13, 2.52)); + polygon_vertices.push_back(Point3(-2.72, 15.13, 2.52)); + polygon_vertices.push_back(Point3(-2.72, 14.45, 2.52)); + polygon_vertices.push_back(Point3(-2.04, 14.45, 2.52)); + polygon_vertices.push_back(Point3(-2.04, 15.13, 2.52)); + polygon_vertices.push_back(Point3(0, 15.4, 2.52)); + polygon_vertices.push_back(Point3(-0.0008, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-0.54, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-0.54, 12.035, 2.52)); + polygon_vertices.push_back(Point3(-3.86, 12.035, 2.52)); + polygon_vertices.push_back(Point3(-3.86, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-4.94, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-4.94, 12.035, 2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.035, 2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-7.12, 14.45, 2.52)); + polygon_vertices.push_back(Point3(-6.44, 14.45, 2.52)); + polygon_vertices.push_back(Point3(-6.44, 15.13, 2.52)); + polygon_vertices.push_back(Point3(-7.12, 15.13, 2.52)); + polygon_vertices.push_back(Point3(-7.12, 14.45, 2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-9.34, 12.04, 2.52)); + polygon_vertices.push_back(Point3(-9.34, 12.035, 2.52)); + polygon_vertices.push_back(Point3(-10.92, 12.035, 2.52)); + polygon_vertices.push_back(Point3(-10.92, 15.4, 2.52));*/ + + /* polygon_vertices.push_back(Point3(10.92, 12.035, 2.52)); + polygon_vertices.push_back(Point3(9.34, 12.035, 2.52)); + polygon_vertices.push_back(Point3(9.34, 12.04, 2.52)); + polygon_vertices.push_back(Point3(8.26, 12.04, 2.52)); + polygon_vertices.push_back(Point3(7.12, 14.45, 2.52)); + polygon_vertices.push_back(Point3(7.12, 15.13, 2.52)); + polygon_vertices.push_back(Point3(6.44, 15.13, 2.52)); + polygon_vertices.push_back(Point3(6.44, 14.45, 2.52)); + polygon_vertices.push_back(Point3(7.12, 14.45, 2.52)); + polygon_vertices.push_back(Point3(8.26, 12.04, 2.52)); + polygon_vertices.push_back(Point3(8.26, 12.035, 2.52)); + polygon_vertices.push_back(Point3(4.94, 12.035, 2.52)); + polygon_vertices.push_back(Point3(4.94, 12.04, 2.52)); + polygon_vertices.push_back(Point3(3.86, 12.04, 2.52)); + polygon_vertices.push_back(Point3(3.86, 12.035, 2.52)); + polygon_vertices.push_back(Point3(0.54, 12.035, 2.52)); + polygon_vertices.push_back(Point3(0.54, 12.04, 2.52)); + polygon_vertices.push_back(Point3(0.0008, 12.04, 2.52)); + polygon_vertices.push_back(Point3(0, 15.4, 2.52)); + polygon_vertices.push_back(Point3(2.04, 15.13, 2.52)); + polygon_vertices.push_back(Point3(2.04, 14.45, 2.52)); + polygon_vertices.push_back(Point3(2.72, 14.45, 2.52)); + polygon_vertices.push_back(Point3(2.72, 15.13, 2.52)); + polygon_vertices.push_back(Point3(2.04, 15.13, 2.52)); + polygon_vertices.push_back(Point3(0, 15.4, 2.52)); + polygon_vertices.push_back(Point3(10.92, 15.4, 2.52));*/ + + ////////////////////////// + + /* polygon_vertices.push_back(Point3(2.0, 0.0, 0.0)); + polygon_vertices.push_back(Point3(2.0, 2.0, 0.0)); + polygon_vertices.push_back(Point3(0.0, 2.0, 0.0)); + polygon_vertices.push_back(Point3(0.0, 4.0, 0.0)); + polygon_vertices.push_back(Point3(-2.0, 4.0, 0.0)); + polygon_vertices.push_back(Point3(-2.0, 0.0, 0.0));*/ + + /* polygon_vertices.push_back(Point3(0,6,0)/2); + polygon_vertices.push_back(Point3(0,0,0)/2); + polygon_vertices.push_back(Point3(3,0,0)/2); + polygon_vertices.push_back(Point3(4,1,0)/2); + polygon_vertices.push_back(Point3(6,1,0)/2); + polygon_vertices.push_back(Point3(8,0,0)/2); + polygon_vertices.push_back(Point3(12,0,0)/2); + polygon_vertices.push_back(Point3(13,2,0)/2); + polygon_vertices.push_back(Point3(8,2,0)/2); + polygon_vertices.push_back(Point3(8,4,0)/2); + polygon_vertices.push_back(Point3(11,4,0)/2); + polygon_vertices.push_back(Point3(11,6,0)/2); + polygon_vertices.push_back(Point3(6,6,0)/2); + polygon_vertices.push_back(Point3(4,3,0)/2); + polygon_vertices.push_back(Point3(2,6,0)/2);*/ + + /* polygon_vertices.push_back(Point3(-11, 8.5271, -2.52)); + polygon_vertices.push_back(Point3(-10.9544, 8.66143, -2.52)); + polygon_vertices.push_back(Point3(-10.8589, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-10.739, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-10.5967, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-10.4345, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-10.255, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-10.0614, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-9.83, 9.62916, -2.52)); + polygon_vertices.push_back(Point3(-9.59857, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-9.405, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-9.22554, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-9.06327, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-8.92097, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-8.80106, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-8.8, 8.85285, -2.52)); + polygon_vertices.push_back(Point3(-8.79894, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-8.67903, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-8.53673, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-8.37446, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-8.195, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-8.00143, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-7.77, 9.62916, -2.52)); + polygon_vertices.push_back(Point3(-7.53857, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-7.345, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-7.16554, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-7.00327, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-6.86097, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-6.74106, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-6.6456, 8.66143, -2.52)); + polygon_vertices.push_back(Point3(-6.6, 8.5271, -2.52)); + polygon_vertices.push_back(Point3(-6.5544, 8.66143, -2.52)); + polygon_vertices.push_back(Point3(-6.45894, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-6.33903, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-6.19673, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-6.03446, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-5.855, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-5.66143, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-5.43, 9.62916, -2.52)); + polygon_vertices.push_back(Point3(-5.19857, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-5.005, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-4.82554, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-4.66327, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-4.52097, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-4.40106, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-4.4, 8.85285, -2.52)); + polygon_vertices.push_back(Point3(-4.39894, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-4.27903, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-4.13673, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-3.97446, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-3.795, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-3.60143, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-3.37, 9.62916, -2.52)); + polygon_vertices.push_back(Point3(-3.13857, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-2.945, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-2.76554, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-2.60327, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-2.46097, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-2.34106, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-2.2456, 8.66143, -2.52)); + polygon_vertices.push_back(Point3(-2.2, 8.5271, -2.52)); + polygon_vertices.push_back(Point3(-2.1544, 8.66143, -2.52)); + polygon_vertices.push_back(Point3(-2.05894, 8.855, -2.52)); + polygon_vertices.push_back(Point3(-1.93903, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(-1.79673, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-1.63446, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-1.455, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-1.26143, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-1.03, 9.62916, -2.52)); + polygon_vertices.push_back(Point3(-0.79857, 9.5544, -2.52)); + polygon_vertices.push_back(Point3(-0.605, 9.45894, -2.52)); + polygon_vertices.push_back(Point3(-0.42554, 9.33903, -2.52)); + polygon_vertices.push_back(Point3(-0.26327, 9.19673, -2.52)); + polygon_vertices.push_back(Point3(-0.12097, 9.03446, -2.52)); + polygon_vertices.push_back(Point3(0, 8.85285, -2.52)); + polygon_vertices.push_back(Point3(-0.00106, 8.855, -2.52)); + polygon_vertices.push_back(Point3(0, 10.8, -2.52)); + polygon_vertices.push_back(Point3(-10.92, 10.8, -2.52));*/ + + /* polygon_vertices.push_back(Point3(-10.92, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-9.34, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-9.34, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-7.12, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-7.12, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-6.44, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-6.44, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-7.12, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-8.26, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-4.94, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-4.94, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-3.86, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-3.86, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-0.54, 12.035, -2.52)); + polygon_vertices.push_back(Point3(-0.54, 12.04, -2.52)); + polygon_vertices.push_back(Point3(-0.0008, 12.04, -2.52)); + polygon_vertices.push_back(Point3(0, 15.4, -2.52)); + polygon_vertices.push_back(Point3(-2.04, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-2.04, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-2.72, 14.45, -2.52)); + polygon_vertices.push_back(Point3(-2.72, 15.13, -2.52)); + polygon_vertices.push_back(Point3(-2.04, 15.13, -2.52)); + polygon_vertices.push_back(Point3(0, 15.4, -2.52)); + polygon_vertices.push_back(Point3(-10.92, 15.4, -2.52));*/ + + /*polygon_vertices.push_back(Point3(0.410487, 0.802906, 0.000238)); + polygon_vertices.push_back(Point3(0.410487, 0.802905, -0.089214)); + polygon_vertices.push_back(Point3(0.52152, 0.827372, -0.089214)); + polygon_vertices.push_back(Point3(0.430198, 0.462238, 0.000137));*/ + + polygon_vertices.push_back(Point3(-2.95053, 0.824436, -0.654723)); + polygon_vertices.push_back(Point3(-2.95059, 0.824439, -0.559136)); + polygon_vertices.push_back(Point3(-2.90517, 0.808184, -0.559112)); + polygon_vertices.push_back(Point3(-3.06592, 0.808181, -0.6547)); + + //reverse(polygon_vertices.begin(), polygon_vertices.end()); + + glBegin(GL_LINE_LOOP); + for(vector<Point3>::const_iterator i = polygon_vertices.begin(), e = polygon_vertices.end(); i != e; ++i) { + glVertex3d(i->m_x, i->m_y, i->m_z); + } + glEnd(); + + glColor3d(1.0, 0.0, 0.0); glPointSize(3.0f); + glBegin(GL_POINTS); + for(vector<Point3>::const_iterator i = polygon_vertices.begin(), e = polygon_vertices.end(); i != e; ++i) { + glVertex3d(i->m_x, i->m_y, i->m_z); + } + glEnd(); + + /* const Vector3 normal(-0.57691254100933098, -0.23829445408953298, -0.78127311049102943); + + glColor3d(1.0, 1.0, 0.0); + glBegin(GL_LINES); + glVertex3d(0.0, 0.0, 0.0); + glVertex3d(normal.m_x * 10, normal.m_y * 10, normal.m_z * 10); + glEnd();*/ + + vector<int> triangles; + const bool success = TriangulatePolygon3(polygon_vertices, &triangles); + + if(success) { + srand(1); + + for(int i = 0; i < triangles.size(); i += 3) { + const Point3 &v0 = polygon_vertices[triangles[i]]; + const Point3 &v1 = polygon_vertices[triangles[i + 1]]; + const Point3 &v2 = polygon_vertices[triangles[i + 2]]; + + glColor3d(float(rand())/RAND_MAX, float(rand())/RAND_MAX, float(rand())/RAND_MAX); + + glBegin(GL_TRIANGLES); + glVertex3d(v0.m_x, v0.m_y, v0.m_z); + glVertex3d(v1.m_x, v1.m_y, v1.m_z); + glVertex3d(v2.m_x, v2.m_y, v2.m_z); + glEnd(); + } + } + + /* const Point2 a(1.0, 1.0); + const Point2 b(-1.0, 1.0); + const Point2 c(1.0, -1.0); + + glBegin(GL_LINE_LOOP); + glColor3d(1.0, 0.0, 0.0); + glVertex3d(a.m_x, a.m_y, 0.0); + glColor3d(0.0, 1.0, 0.0); + glVertex3d(b.m_x, b.m_y, 0.0); + glColor3d(0.0, 0.0, 1.0); + glVertex3d(c.m_x, c.m_y, 0.0); + glEnd(); + + srand(1); + glPointSize(2.0f); + glBegin(GL_POINTS); + for(int i = 0; i < 5000; ++i) { + const Point2 p(6*float(rand())/RAND_MAX-3, 6*float(rand())/RAND_MAX-3); + if(IsPointInsideTriangle2(a, b, c, p)) + glColor3d(0.0, 1.0, 0.0); + else glColor3d(1.0, 0.0, 0.0); + glVertex3d(p.m_x, p.m_y, 0.0); + } + glEnd();*/ + + /* srand(1); + //glPointSize(3.0f); + //glBegin(GL_POINTS); + const int m = 10; + const int n = 4 * m; + for(int j = 0; j < m; ++j) { + for(int i = 0; i < n; ++i) { + const Real xi1 = (j + float(rand())/RAND_MAX) / m; + const Real xi2 = (i + float(rand())/RAND_MAX) / n; + assert(xi1 >= 0.0 && xi1 <= 1.0); + assert(xi2 >= 0.0 && xi2 <= 1.0); + const Point3 p = UniformHemisphereSampling(xi1, xi2); + // glVertex3f(p.m_x, p.m_y, p.m_z); + } + } + //glEnd();*/ + + return; + #endif + + glPointSize(3.0f); + glBegin(GL_POINTS); + + glColor3f(1.0f, 1.0f, 0.0f); for(photonmap_vector_const_it i = m_pms.begin(), e = m_pms.end(); i != e; ++i) { |