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