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(); }
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)); }
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(); }