/// <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;
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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;
        }
Exemple #8
0
        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 + "");
        }