/// <summary> /// Redraws the Class view /// </summary> /// <param name="clObject">Main object of the class view</param> public void DrawClassView(DrawableClassObject clObject) { // if (IsDrawingBoardOpen) CloseDrawingBoardBegin(); ClassCanvas.DrawClass(clObject); _currentClass = clObject; }
public void DrawClass(DrawableClassObject clObject) { MainCanvas.Children.Clear(); InstanceObject instance = clObject.Instances.First(); List <InstanceObject> instances = new List <InstanceObject>(); instances.Add(instance); new Angelina().ExploreAfrica(new SceneGraph(instances), MainCanvas); }
public HardCodedHardWoodModelBecauseLongNamesAreAwesome() : base() { DrawableClassObject c1 = CreateNewClass(new Point(80, 150), new SolidColorBrush(Colors.AliceBlue), VisualShape.Rectangle, new Point(40, 20), 1); DrawableClassObject c2 = CreateNewClass(new Point(40, 40), new SolidColorBrush(Colors.Red), VisualShape.Rectangle, new Point(60, 10), 1); DrawableClassObject c3 = CreateNewClass(new Point(190, 50), new SolidColorBrush(Colors.Olive), VisualShape.Ellipse, new Point(120, 90), 1); AddInstanceToClass(c2.Instances.First(), c1.Instances.First()); CreateInstanceOfClass(c2, new Point(350, 140), 1); CreateInstanceOfClass(c2, new Point(350, 140), 0.8); }
public DrawableClassObject CreateNewClass(Point size, Brush brush, VisualShape shape, Point position, double scale) { DrawableClassObject newClass = new DrawableClassObject(size, brush, shape); _classes.Add(newClass); InstanceObject newInstance = new InstanceObject(newClass, position, scale); newClass.Instances.Add(newInstance); StartTranslation(); return(newClass); }
public InstanceObject CreateInstanceOfClass(DrawableClassObject classObject, Point position, double scale) { InstanceObject newInstance = new InstanceObject(classObject, new Point(position.X, position.Y), scale); classObject.Instances.Add(newInstance); // Check for collisions? AddInstanceToRoot(newInstance); StartTranslation(); return(newInstance); }
public void RemoveClass(DrawableClassObject classObject) { if (_classes.Contains(classObject)) { _classes.Remove(classObject); } foreach (InstanceObject instance in classObject.Instances) { if (instance.Parent == instance.ClassObject) { Debug.WriteLine("Instance is standalone. Should not be happening"); break; } instance.Parent.RemoveAttribute(instance); } StartTranslation(); }
public GalleryIcon(ClassGallery parent, Canvas canvas, DrawableClassObject clObject) { this.InitializeComponent(); ClassObject = clObject; RightTapped += GalleryIcon_RightTapped; _parent = parent; DrawingGrid.Children.Add(canvas); Icon = canvas; IconName.Text = ClassObject.ClassName; PointerPressed += OnPointerPressed; PointerReleased += OnPointerReleased; PointerEntered += OnPointerEntered; PointerExited += OnPointerExited; Tapped += OnTapped; }
public override void OnClick(object sender, TappedRoutedEventArgs e) { if (sender is DrawingCanvas) { DrawingCanvas canvas = sender as DrawingCanvas; if (clicked) { clicked = false; Point pos = new Point() { X = rect.Margin.Left, Y = rect.Margin.Top }; DrawableClassObject clObject = ModelManager.GetInstance() .CreateNewClass(new Point(rect.Width, rect.Height), rect.Fill, VisualShape.Rectangle, pos, 1); EditPage.Instance.ClassGallery.FillClasses(); EditPage.Instance.DrawClassView(clObject); EditPage.Instance.PropertiesPanel.FillWithClass(clObject); return; } rect = new Rectangle(); double x = e.GetPosition(canvas).X; double y = e.GetPosition(canvas).Y; rect.Fill = _randomColor.Shuffle(); thickness = new Thickness(x, y, 0, 0); rect.Margin = thickness; off_x = x; off_y = y; canvas.AddUIControl(rect); clicked = true; } else if (sender is GalleryIcon) { GalleryIcon icon = sender as GalleryIcon; EditPage.Instance.DrawClassView(icon.ClassObject); } }
public override void OnClick(object sender, TappedRoutedEventArgs e) { if (sender is GalleryIcon) { GalleryIcon icon = sender as GalleryIcon; if (!_clicked) { _clicked = true; // select instance to add EditPage.Instance.CurrentCanvas.Opacity = 1; EditPage.Instance.CurrentCanvas.IsHitTestVisible = true; InstanceObject instance = icon.ClassObject.Instances.First(); _node = new SceneNode(instance, 1); _clObject = icon.ClassObject; } } else if (sender is DrawingCanvas) { DrawingCanvas canvas = sender as DrawingCanvas; if (_clicked) { // create new instance Point pos = new Point() { X = e.GetPosition(canvas).X - _clObject.Size.X / 2, Y = e.GetPosition(canvas).Y - _clObject.Size.Y / 2 }; Model.ModelManager.GetInstance().CreateInstanceOfClass(_clObject, pos, 1); EditPage.Instance.Redraw(); _clicked = false; _node = null; return; } } else if (sender is Shape && _clicked) { // _node.Instance.Scale = 1; Point pos = new Point() { X = e.GetPosition(sender as Shape).X - _clObject.Size.X / 2, Y = e.GetPosition(sender as Shape).Y - _clObject.Size.Y / 2 }; InstanceObject inst = new InstanceObject(_node.Instance.ClassObject, pos, 1); ((sender as Shape).Tag as SceneNode).Instance.ClassObject.AddAttribute(inst); EditPage.Instance.Redraw(); _clicked = false; _node = null; return; } // Debug.WriteLine(_clicked + ""); }