Пример #1
0
        private void ViewPort_Drop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent("SceneItem"))
            {
                string item = e.Data.GetData("SceneItem") as string;

                var pos    = e.GetPosition(m_Viewport);
                var hitRes = VisualTreeHelper.HitTest(m_Viewport, pos);
                RayMeshGeometry3DHitTestResult rayMeshRes = hitRes as RayMeshGeometry3DHitTestResult;
                if (rayMeshRes != null)
                {
                    double x = (double)rayMeshRes.PointHit.X;
                    double y = (double)rayMeshRes.PointHit.Y;

                    Scene.SceneItem s = null;
                    if (item == typeof(SceneRect).ToString())
                    {
                        s = new Scene.SceneRect(x, y, 50, 50, System.Windows.Media.Color.FromRgb(0, 255, 0));
                    }
                    else if (item == typeof(SceneText).ToString())
                    {
                        s = new Scene.SceneText(x, y, "Text", System.Windows.Media.Color.FromRgb(255, 255, 255), 10.0, new FontFamily("Arial"));
                    }
                    else if (item == typeof(SceneTextViewer).ToString())
                    {
                        s = new Scene.SceneTextViewer(x, y, 0.2, 0.2, "Text", new FontFamily("Arial"), 10.0, System.Windows.Media.Color.FromRgb(255, 255, 255));
                    }
                    else if (item == typeof(SceneCircle).ToString())
                    {
                        s = new Scene.SceneCircle(x, y, 10, 0.0, Math.PI * 2.0, System.Windows.Media.Color.FromRgb(0, 255, 0));
                    }
                    else if (item == typeof(SceneImage).ToString())
                    {
                        s = new Scene.SceneImage(x, y, 100, 100, null);
                    }
                    else if (item == typeof(SceneVideo).ToString())
                    {
                        s = new Scene.SceneVideo(x, y, 100, 100, null);
                    }
                    else if (item == typeof(ScenePolygon).ToString())
                    {
                        s = new Scene.ScenePolygon(new Polygon(new Vector2[] { new Vector2(0 + x, 0 + y), new Vector2(50 + x, 50 + y), new Vector2(50 + x, y) }), System.Windows.Media.Color.FromRgb(0, 255, 0));
                    }
                    else if (item == typeof(SceneAudio).ToString())
                    {
                        s = new Scene.SceneAudio(null);
                    }

                    if (s != null)
                    {
                        SceneManager.Instance.CurrentScene.Add(s);
                    }
                    else
                    {
                        throw new NotImplementedException();
                    }
                }
            }
        }
Пример #2
0
 public Scene.Scene getAssemblyZoneAutoScene(AssembleyZones.AssemblyZone z)
 {
     Scene.SceneItem drawable = z.getDrawable(true);
     Scene.Scene     autoScene;
     if (drawable is Scene.Scene)
     {
         // we already have a scene
         autoScene = (Scene.Scene)drawable;
     }
     else
     {
         autoScene = new Scene.Scene();
         autoScene.Add(drawable);
     }
     return(autoScene);
 }
Пример #3
0
 public Scene.Scene getBoxAutoScene(Boxes.Box b)
 {
     Scene.SceneItem drawable = b.getDrawable(true);
     Scene.Scene     autoScene;
     if (drawable is Scene.Scene)
     {
         // we already have a scene
         autoScene = (Scene.Scene)drawable;
     }
     else
     {
         autoScene = new Scene.Scene();
         autoScene.Add(drawable);
     }
     return(autoScene);
 }
Пример #4
0
        protected void updateScene()
        {
            if (m_Contour != null)
            {
                if (m_SceneItem == null || !(m_SceneItem is ScenePolygon))
                {
                    m_SceneItem = new ScenePolygon(m_Contour, System.Windows.Media.Color.FromRgb(0, 255, 0));
                }
            }
            else
            {
                if (m_SceneItem == null || !(m_SceneItem is SceneRect))
                {
                    m_SceneItem = new SceneRect();
                }
            }

            m_SceneItem.X      = X;
            m_SceneItem.Y      = Y;
            m_SceneItem.Width  = Width;
            m_SceneItem.Height = Height;
            m_SceneItem.Touchy = false;
        }