protected virtual void OnLoadPanel(LoadPanelMessage msg)
        {
            if (msg.PanelHolderId == PanelHolderId)
            {
                var builder = new MeshBuilder();
                var center  = GetPanelCenter(msg.Length, msg.Width, msg.Height);

                builder.AddBox(Position + center, msg.Length, msg.Width, msg.Height);

                _panel = new MeshGeometryVisual3D()
                {
                    MeshGeometry = builder.ToMesh(),
                    Material     = Materials.Orange,
                    Fill         = Brushes.Orange
                };

                _getBounds = () => (_panel as MeshGeometryVisual3D).MeshGeometry.Bounds;

                Children.Add(_panel);
                msg?.NotifyExecution?.Invoke(true);
                if (msg.BackNotifyId > 0)
                {
                    Messenger.Default.Send(new BackNotificationMessage()
                    {
                        DestinationId = msg.BackNotifyId
                    });
                }
            }
        }
Example #2
0
        protected override void OnLoadPanel(LoadPanelMessage msg)
        {
            if (msg.PanelHolderId == PanelHolderId)
            {
                var center = GetPanelCenter(msg.Length, msg.Width, msg.Height);

                PanelViewModel = new PanelViewModel()
                {
                    SizeX   = msg.Length,
                    SizeY   = msg.Width,
                    SizeZ   = msg.Height,
                    CenterX = Position.X + center.X,
                    CenterY = Position.Y + center.Y,
                    CenterZ = Position.Z + center.Z
                };

                PanelViewModel.Initialize();

                _panel = new ModelVisual3D()
                {
                    Content = PanelViewModel.PanelModel
                };
                _getBounds = () => PanelViewModel.PanelModel.Bounds;

                Children.Add(_panel);
                msg?.NotifyExecution?.Invoke(true);
                if (msg.BackNotifyId > 0)
                {
                    Messenger.Default.Send(new BackNotificationMessage()
                    {
                        DestinationId = msg.BackNotifyId
                    });
                }
            }
        }