示例#1
0
 /// <summary>Creates a 800x600 window with the specified title.</summary>
 public Program()
     : base(800, 600, GraphicsMode.Default, "UIST Demo")
 {
     int size = 4;
     Vector3[] vertices = new Vector3 [size * size];
     test = new SphericalMesh(150, 70);
     deform = new CalculateDeform(test);
     deform.program = this;
     VSync = VSyncMode.On;
     WindowState = OpenTK.WindowState.Fullscreen;
 }
示例#2
0
 public void SwitchToNextMesh()
 {
     if (test.undoStack.Count == 0)
     {
         lastMeshNum = (lastMeshNum + 1) % 4;
         if (lastMeshNum == 0) test = new SphericalMesh(150, 100);
         if (lastMeshNum == 1) test = new CartesianMesh(100, 100);
         if (lastMeshNum == 2) test = new CylindricalMesh(150, 100);
         if (lastMeshNum == 3) test = new TorusMesh(150, 100);
         deform = new CalculateDeform(test);
         deform.editMode = editMode;
     }
 }
示例#3
0
 public CalculateDeform(Mesh mesh)
 {
     this.mesh = mesh;
 }
示例#4
0
 public void SetCameraToParameters(Mesh m, Vector3 param)
 {
     lookFrom = m.VertexFromParameters(param);
     lookDir = -1 * m.UnitC(param);
     lookUp = m.UnitB(param);
 }
示例#5
0
 private void ResetCameraToMeshActiveCenter(Mesh m)
 {
     Vector2 meshCenterImageParam = m.activeAreaStart + .5f * m.activeAreaSize;
     Vector3 meshCenterParam = new Vector3(Mesh.Wrap2D(meshCenterImageParam));
     meshCenterParam.Z = 2.0f;
     this.SetCameraToParameters(test, meshCenterParam);
 }
示例#6
0
 private void MoveByThenResetCamera(Mesh m, Vector2 d)
 {
     m.activeAreaStart += d;
     ResetCameraToMeshActiveCenter(m);
 }