private void ShowBoundingBoxes() { _octTreeLinesModelVisual3D.Children.Clear(); var colors = new System.Windows.Media.Color[] { Colors.Red, Colors.Green, Colors.Blue, Colors.Black }; bool showActualBoundingBox = ActualBoundingBoxCheckBox.IsChecked ?? false; int startNodeLevel = 2; for (int i = startNodeLevel; i <= MaxNodeLevels; i++) { var boundingBoxs = _octTree.CollectBoundingBoxesInLevel(i, showActualBoundingBox); foreach (var boundingBox in boundingBoxs) { var wireBoxVisual3D = new Ab3d.Visuals.WireBoxVisual3D() { CenterPosition = boundingBox.ToRect3D().GetCenterPosition(), Size = boundingBox.ToRect3D().Size, LineColor = colors[(i - startNodeLevel) % (colors.Length)], LineThickness = 2 }; _octTreeLinesModelVisual3D.Children.Add(wireBoxVisual3D); } } }
public ObjectSelectionSample() { InitializeComponent(); _standardMaterial = new DiffuseMaterial(Brushes.DeepSkyBlue); _standardMaterial.Freeze(); _selectedMaterial = new DiffuseMaterial(Brushes.Yellow); _selectedMaterial.Freeze(); // _wireBoxVisual3D will be used to show box with mouse over _wireBoxVisual3D = new Ab3d.Visuals.WireBoxVisual3D() { LineColor = Colors.Yellow, LineThickness = 2 }; CreateSceneObjects(); this.Loaded += delegate(object sender, RoutedEventArgs args) { // Start with selecting 8th box SelectBox(8); }; }