Пример #1
0
 public void DrawLapCoord(NonManifoldMesh mesh)
 {
     GL.LineWidth(2.0f);
     GL.Color3(1.0, 0.0, 0.0);
     GL.Begin(BeginMode.Lines);
     double[] lapCoordiante = MeshOperators.ComputeDualLap(ref mesh);
     for (int i = 0, j = 0; i < mesh.FaceCount; i++, j += 3)
     {
         GraphicResearchHuiZhao.Vector3D u   = mesh.GetDualPosition(i);
         GraphicResearchHuiZhao.Vector3D lap = new GraphicResearchHuiZhao.Vector3D(lapCoordiante[j], lapCoordiante[j + 1], lapCoordiante[j + 2]);
         GraphicResearchHuiZhao.Vector3D v   = u + 3.0 * lap;
         GL.Vertex3(u.x, u.y, u.z);
         GL.Vertex3(v.x, v.y, v.z);
     }
     GL.End();
 }
Пример #2
0
 public GraphicResearchHuiZhao.Vector3D Project(GraphicResearchHuiZhao.Vector3D p)
 {
     OpenTK.Vector3 result;
     OpenTK.Graphics.Glu.Project(new OpenTK.Vector3((float)p.x, (float)p.y, (float)p.z), modelView, projection, viewport, out result);
     return(new GraphicResearchHuiZhao.Vector3D(result.X, result.Y, result.Z));
 }
Пример #3
0
 public void DrawLapCoord(NonManifoldMesh mesh)
 {
     GL.LineWidth(2.0f);
     GL.Color3(1.0, 0.0, 0.0);
     GL.Begin(BeginMode.Lines);
     double[] lapCoordiante = MeshOperators.ComputeDualLap(ref mesh);
     for (int i = 0, j = 0; i < mesh.FaceCount; i++, j += 3)
     {
         GraphicResearchHuiZhao.Vector3D u = mesh.GetDualPosition(i);
         GraphicResearchHuiZhao.Vector3D lap = new GraphicResearchHuiZhao.Vector3D(lapCoordiante[j], lapCoordiante[j + 1], lapCoordiante[j + 2]);
         GraphicResearchHuiZhao.Vector3D v = u + 3.0 * lap;
         GL.Vertex3(u.x, u.y, u.z);
         GL.Vertex3(v.x, v.y, v.z);
     }
     GL.End();
 }