예제 #1
0
        public void Save()
        {
            var path = Path.Combine(Application.RootFolder, "Routes", Name + ".route");

            if (!File.Exists(path))
            {
                File.Delete(path);
            }

            List <string> lines = new List <string>();

            lines.Add(PreviewCameraPosition.ConvertToString());
            lines.Add(PreviewCameraDirection.ConvertToString());
            lines.Add("");
            lines.Add(SpawnPosition.ConvertToString());
            lines.Add(SpawnRotation.ConvertToString());
            lines.Add("");

            Application.Console.WriteLine("[Route.Save]: Saving route " + Name + " with " + Barriers.Count + " barriers");
            foreach (var b in Barriers)
            {
                Application.Console.WriteLine("[Route.Save]: Writing barrier with midpoint " + b.Midpoint.X + " | " + b.Midpoint.Y);
                for (int j = 0; j < b.Coordinates.Count; j++)
                {
                    lines.Add(b.Coordinates[j].ConvertToString());
                    Application.Console.WriteLine(b.Coordinates[j].ConvertToString());
                }
                lines.Add("");
            }

            File.WriteAllLines(path, lines);
        }
예제 #2
0
        private void InitGL()
        {
            if (glview == null)
            {
                previewType        = PreviewGeometryType.Cube;
                previewCameraMode  = PreviewCameraMode.Perspective;
                previewPosition    = PreviewCameraPosition.Perspective;
                glview             = new OpenTK.GLControl(GraphicsMode.Default);
                glview.Load       += Glview_Load;
                glview.Paint      += Glview_Paint;
                glview.MouseWheel += Glview_MouseWheel;
                glview.MouseMove  += Glview_MouseMove;
                glview.MouseDown  += Glview_MouseDown;

                FHost.Child   = glview;
                previewObject = new Transform();

                camera = new Camera();
                camera.LocalEulerAngles = new Vector3(25, 45, 0);
                camera.LocalPosition    = new Vector3(0, 0, 3);
                camera.OnCameraChanged += Camera_OnCameraChanged;

                light = new Light();
                light.LocalPosition = new Vector3(0, 2, 2);
                light.Color         = new Vector3(1, 1, 1);
                light.LocalScale    = new Vector3(0.01f, 0.01f, 0.01f);
            }
        }
예제 #3
0
        private void CameraPosition_Click(object sender, RoutedEventArgs e)
        {
            MenuItem s = sender as MenuItem;

            PreviewCameraPosition ctype;

            Enum.TryParse <PreviewCameraPosition>(s.Header.ToString().Replace("_", ""), out ctype);

            previewPosition = ctype;

            switch (previewPosition)
            {
            case PreviewCameraPosition.Back:
                rotX = 0; rotY = 180;
                break;

            case PreviewCameraPosition.Front:
                rotX = 0; rotY = 0;
                break;

            case PreviewCameraPosition.Top:
                rotX = 90; rotY = 0;
                break;

            case PreviewCameraPosition.Bottom:
                rotX = 270; rotY = 0;
                break;

            case PreviewCameraPosition.Right:
                rotX = 0; rotY = 90;
                break;

            case PreviewCameraPosition.Left:
                rotX = 0; rotY = 270;
                break;

            case PreviewCameraPosition.Perspective:
                rotX = 25; rotY = 45;
                break;

            default:
                rotX = 0; rotY = 0;
                break;
            }


            rotation = Quaternion.FromEulerAngles(rotX * ((float)Math.PI / 180.0f), rotY * ((float)Math.PI / 180.0f), 0);

            Invalidate();
        }
예제 #4
0
        private void CameraPosition_Click(object sender, RoutedEventArgs e)
        {
            MenuItem s = sender as MenuItem;

            PreviewCameraPosition ctype;

            Enum.TryParse <PreviewCameraPosition>(s.Header.ToString().Replace("_", ""), out ctype);

            previewPosition = ctype;

            switch (previewPosition)
            {
            case PreviewCameraPosition.Back:
                camera.LocalEulerAngles = new Vector3(0, 180, 0);
                break;

            case PreviewCameraPosition.Front:
                camera.LocalEulerAngles = new Vector3(0, 0, 0);
                break;

            case PreviewCameraPosition.Top:
                camera.LocalEulerAngles = new Vector3(90, 0, 0);
                break;

            case PreviewCameraPosition.Bottom:
                camera.LocalEulerAngles = new Vector3(270, 0, 0);
                break;

            case PreviewCameraPosition.Right:
                camera.LocalEulerAngles = new Vector3(0, 90, 0);
                break;

            case PreviewCameraPosition.Left:
                camera.LocalEulerAngles = new Vector3(0, 270, 0);
                break;

            case PreviewCameraPosition.Perspective:
                camera.LocalEulerAngles = new Vector3(25, 45, 0);
                break;

            default:
                camera.LocalEulerAngles = new Vector3(0, 0, 0);
                break;
            }

            Invalidate();
        }
예제 #5
0
        private void InitGL()
        {
            if (glview == null)
            {
                previewType       = PreviewGeometryType.Cube;
                previewCameraMode = PreviewCameraMode.Perspective;
                previewPosition   = PreviewCameraPosition.Perspective;

                glview                  = new GLControl(GraphicsMode.Default);
                glview.Load            += Glview_Load;
                glview.Paint           += Glview_Paint;
                glview.MouseWheel      += Glview_MouseWheel;
                glview.MouseMove       += Glview_MouseMove;
                glview.MouseDown       += Glview_MouseDown;
                FHost.Child             = glview;
                previewObject           = new Transform();
                camera                  = new Camera();
                camera.LocalEulerAngles = new Vector3(25, 45, 0);
                camera.LocalPosition    = new Vector3(0, 0, 3);
            }
        }
예제 #6
0
        private void InitGL()
        {
            if (glview == null)
            {
                previewType       = PreviewGeometryType.Cube;
                previewCameraMode = PreviewCameraMode.Perspective;
                previewPosition   = PreviewCameraPosition.Front;

                glview             = new TK.GLControl(new GraphicsMode(new ColorFormat(8, 8, 8, 8), 24));
                glview.Load       += Glview_Load;
                glview.Paint      += Glview_Paint;
                glview.MouseWheel += Glview_MouseWheel;
                glview.MouseMove  += Glview_MouseMove;
                glview.MouseDown  += Glview_MouseDown;
                FHost.Child        = glview;
                rotX              = 25;
                rotY              = 45;
                rotation          = Quaternion.FromEulerAngles(rotX * ((float)Math.PI / 180.0f), rotY * ((float)Math.PI / 180.0f), 0);
                cameraTranslation = new Vector3(0, 0, 3);
                objectTranslation = new Vector3(0, 0, 0);
            }
        }