Beispiel #1
0
        //=============================================================================
        private void CreateSheetButton_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;

            if (btn == null)
            {
                return;
            }

            MainWindow_ViewModel mainVM = btn.DataContext as MainWindow_ViewModel;

            if (mainVM == null)
            {
                return;
            }

            DrawingDocument curDoc = mainVM.CurrentDocument;

            if (curDoc == null)
            {
                return;
            }

            WarehouseSheet curSheet = curDoc.CurrentSheet as WarehouseSheet;

            if (curSheet == null || curSheet.SingleSelectedGeometry == null)
            {
                return;
            }

            SheetGeometry sheetGeometry = curSheet.SingleSelectedGeometry as SheetGeometry;

            if (sheetGeometry == null)
            {
                return;
            }
            if (sheetGeometry.BoundSheet != null)
            {
                return;
            }

            DrawingSheet newSheet = new DrawingSheet(curDoc);

            if (newSheet != null)
            {
                newSheet.Set_Length((UInt32)Utils.GetWholeNumber(sheetGeometry.Length_X), false, false);
                newSheet.Set_Width((UInt32)Utils.GetWholeNumber(sheetGeometry.Length_Y), false, false);
                curDoc.AddSheet(newSheet, false);
                sheetGeometry.BoundSheet = newSheet;
                curDoc.MarkStateChanged();
            }
        }
Beispiel #2
0
        //=============================================================================
        private void GoToBoundSheetButton_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;

            if (btn == null)
            {
                return;
            }

            MainWindow_ViewModel mainVM = btn.DataContext as MainWindow_ViewModel;

            if (mainVM == null)
            {
                return;
            }

            DrawingDocument curDoc = mainVM.CurrentDocument;

            if (curDoc == null)
            {
                return;
            }

            WarehouseSheet curSheet = curDoc.CurrentSheet as WarehouseSheet;

            if (curSheet == null || curSheet.SingleSelectedGeometry == null)
            {
                return;
            }

            SheetGeometry sheetGeometry = curSheet.SingleSelectedGeometry as SheetGeometry;

            if (sheetGeometry == null)
            {
                return;
            }
            if (sheetGeometry.BoundSheet == null)
            {
                return;
            }

            curDoc.CurrentSheet = sheetGeometry.BoundSheet;
        }
        //=============================================================================
        /// <summary>
        /// Clear and rebuild children geometry.
        /// </summary>
        public void UpdateGeometry()
        {
            if (this.Visibility != Visibility.Visible)
            {
                return;
            }

            if (!this.IsVisible)
            {
                return;
            }

            Factory3D.ResetBuilders();

            // Clear chidlren
            this.Children.Clear();

            // Create light
            ModelVisual3D ambLightVisualModel = new ModelVisual3D();

            ambLightVisualModel.Content = new AmbientLight(Color.FromRgb((byte)40, (byte)40, (byte)40));
            this.Children.Add(ambLightVisualModel);
            //
            this.Children.Add(new DefaultLights());

            // Add geometry visual.
            DrawingSheet sheet = this.Sheet;

            if (sheet != null)
            {
                if (eViewportContent.eSelectedRack == this.ViewportContent)
                {
                    Factory3D.sDrawRackBeamsColumnsWithRackColor = false;

                    // Create rack model
                    Rack rack = sheet.SingleSelectedGeometry as Rack;
                    if (rack != null)
                    {
                        Factory3D.AddGeometryVisual(rack, new Point3D(0.0, 0.0, 0.0), false, new Vector(0.0, 0.0), false);
                    }
                }
                else if (eViewportContent.eSelectedSheet == this.ViewportContent)
                {
                    Factory3D.sDrawRackBeamsColumnsWithRackColor = true;

                    // Create sheet model
                    Factory3D.AddSheetModel(sheet, new Point3D(0.0, 0.0, 0.0), sheet is WarehouseSheet, this.ShowWalls, true);

                    // Add roof for WarehouseSheet
                    if (this.ShowRoof)
                    {
                        WarehouseSheet whSheet = sheet as WarehouseSheet;
                        if (whSheet != null)
                        {
                            Factory3D.AddRoof(whSheet);
                        }
                    }
                }
            }

            List <Model3D>   modelsList    = Factory3D.GetModelsList();
            GeometryVisual3D contentVisual = new GeometryVisual3D(modelsList);

            this.Children.Add(contentVisual);

            //
            if (m_bZoomExtents)
            {
                this.UpdateLayout();
                if (this.CameraController != null)
                {
                    this.CameraController.ZoomExtents();
                    m_bZoomExtents = false;
                }
            }
        }