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