Example #1
0
        private void PlaceObjectFromPlacementGuide(bool checkForIntersection)
        {
            ObjectPlacementGuide placementGuide      = ObjectPlacementGuide.Instance;
            GameObject           placedHierarchyRoot = null;

            OrientedBox       guideHierarchyWorldOrientedBox = ObjectPlacementGuide.SceneObject.GetHierarchyWorldOrientedBox();
            List <GameObject> intersectingObjects            = ObjectQueries.GetIntersectingObjects(guideHierarchyWorldOrientedBox, new List <GameObject> {
                _strokeSurface.SurfaceObject
            }, true);

            if (!checkForIntersection || ObjectPlacementSettings.Get().ObjectIntersectionSettings.AllowIntersectionForDecorPaintSingleModeDrag ||
                intersectingObjects.Count == 0)
            {
                placedHierarchyRoot = Octave3DScene.Get().InstantiateObjectHierarchyFromPrefab(placementGuide.SourcePrefab, placementGuide.gameObject.transform);
                ObjectHierarchyRootsWerePlacedInSceneMessage.SendToInterestedListeners(placedHierarchyRoot, ObjectHierarchyRootsWerePlacedInSceneMessage.PlacementType.ObjectPlacement);

                List <GameObject> allPlacedObjects = placedHierarchyRoot.GetAllChildrenIncludingSelf();
                _objectsPlacedWhileDragging.AddRange(allPlacedObjects);
                DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.Mask(allPlacedObjects);
            }

            _orientedBoxOfLastPlacedHierarchy = ObjectPlacementGuide.SceneObject.GetHierarchyWorldOrientedBox();
            _pivotPointsOfLastPlacedHierarchy.FromOrientedBoxAndDecorStrokeSurface(_orientedBoxOfLastPlacedHierarchy, _strokeSurface);

            if (DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.RandomizePrefabsInActiveCategory)
            {
                PrefabCategory activePrefabCategory = PrefabCategoryDatabase.Get().ActivePrefabCategory;
                if (activePrefabCategory != null)
                {
                    activePrefabCategory.RandomizeActivePrefab();
                }
            }
        }
Example #2
0
        private void PlaceObjects()
        {
            if (CanPlaceObjectsOnHoveredSurface())
            {
                var placementDataInstances             = _objectPlacementDataCalculator.Calculate(RotationToApplyForStrokeAlignment);
                List <GameObject> placedHierarchyRoots = Octave3DScene.Get().InstantiateObjectHirarchiesFromPlacementDataCollection(placementDataInstances);
                for (int rootIndex = 0; rootIndex < placedHierarchyRoots.Count; ++rootIndex)
                {
                    GameObject root = placedHierarchyRoots[rootIndex];
                    if (placementDataInstances[rootIndex].MustEmbedInSurface)
                    {
                        if (_strokeSurface.Type == DecorPaintStrokeSurfaceType.Terrain)
                        {
                            root.EmbedInSurfaceByVertex(-Vector3.up, _strokeSurface.SurfaceObject);
                        }
                        else if (_strokeSurface.Type == DecorPaintStrokeSurfaceType.Mesh)
                        {
                            root.EmbedInSurfaceByVertex(-_strokeSurface.Plane.normal, _strokeSurface.SurfaceObject);
                        }
                    }
                }

                List <GameObject> allPlacedObjects = GameObjectExtensions.GetAllObjectsInHierarchyCollection(placedHierarchyRoots);
                _objectsPlacedWhileDragging.AddRange(allPlacedObjects);
                DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.Mask(allPlacedObjects);

                ObjectHierarchyRootsWerePlacedInSceneMessage.SendToInterestedListeners(placedHierarchyRoots, ObjectHierarchyRootsWerePlacedInSceneMessage.PlacementType.ObjectPlacement);
            }

            RegisterPlacementPoint();
        }
        private void AcquireCurorRayHit()
        {
            MouseCursor.Instance.PushObjectPickMaskFlags(GetCursorPickMaskFlags());
            MouseCursor.Instance.PushObjectMask(DecorPaintObjectPlacement.Get().DecorPaintMask);

            _cursorRayHit = MouseCursor.Instance.GetRayHit();

            MouseCursor.Instance.PopObjectMask();
            MouseCursor.Instance.PopObjectPickMaskFlags();
        }
Example #4
0
 private bool DoesBoxPassObjectIntersectionTest(OrientedBox objectBox, GameObject prefab, TransformMatrix objectMatrix)
 {
     if (_allowObjectIntersection)
     {
         return(true);
     }
     return(!Octave3DScene.Get().BoxIntersectsAnyObjectBoxes(objectBox, new List <GameObject> {
         DecorPaintObjectPlacement.Get().DecorPaintSurfaceObject
     }, true));
 }
Example #5
0
        private void RenderControlsForDecorPaintPlacementMode()
        {
            if (DecorPaintObjectPlacementSettings.Get().DecorPaintMode == DecorPaintMode.Brush)
            {
                DecorPaintObjectPlacementBrushDatabase.Get().View.Render();
                EditorGUILayout.Separator();
            }

            DecorPaintObjectPlacement.Get().DecorPaintMask.View.Render();
        }
        private void PlaceObjects()
        {
            if (CanPlaceObjectsOnHoveredSurface())
            {
                var placementDataInstances             = _objectPlacementDataCalculator.Calculate(RotationToApplyForStrokeAlignment);
                List <GameObject> placedHierarchyRoots = Octave3DScene.Get().InstantiateObjectHirarchiesFromPlacementDataCollection(placementDataInstances);

                List <GameObject> allPlacedObjects = GameObjectExtensions.GetAllObjectsInHierarchyCollection(placedHierarchyRoots);
                _objectsPlacedWhileDragging.AddRange(allPlacedObjects);
                DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.Mask(allPlacedObjects);

                ObjectHierarchyRootsWerePlacedInSceneMessage.SendToInterestedListeners(placedHierarchyRoots, ObjectHierarchyRootsWerePlacedInSceneMessage.PlacementType.ObjectPlacement);
            }

            RegisterPlacementPoint();
        }
Example #7
0
 private void AcquireCursorRayHit(bool dragging)
 {
     if (!dragging)
     {
         _circleShape.AcquireCursorRayHit(DecorPaintObjectPlacement.Get().DecorPaintMask, MouseCursorObjectPickFlags.ObjectBox);
     }
     else
     {
         if (_circleShape.HasCursorPickedTerrainObject())
         {
             // When we are dragging on the surface of a terrain object, we don't want to allow the brush to
             // start hovering other objects. That can be very undesirable. So we will always attempt to keep
             // the brush over the terrain.
             _circleShape.AcquireCursorRayHitForTerrainObject(_circleShape.GetGameObjectPickedByCursor());
         }
         else
         {
             _circleShape.AcquireCursorRayHit(DecorPaintObjectPlacement.Get().DecorPaintMask, MouseCursorObjectPickFlags.ObjectBox);
         }
     }
 }
Example #8
0
        protected override void HandleButtonClick(int buttonIndex)
        {
            switch (buttonIndex)
            {
            case 0:

                //UndoEx.RecordForToolAction(DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask);
                DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.Mask(ObjectSelection.Get().GetAllSelectedGameObjects());
                break;

            case 1:

                //UndoEx.RecordForToolAction(DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask);
                DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.Unmask(ObjectSelection.Get().GetAllSelectedGameObjects());
                break;

            case 2:

                //UndoEx.RecordForToolAction(ObjectSnapping.Get().ObjectSnapMask.ObjectCollectionMask);
                ObjectSnapping.Get().ObjectSnapMask.ObjectCollectionMask.Mask(ObjectSelection.Get().GetAllSelectedGameObjects());
                break;

            case 3:

                //UndoEx.RecordForToolAction(ObjectSnapping.Get().ObjectSnapMask.ObjectCollectionMask);
                ObjectSnapping.Get().ObjectSnapMask.ObjectCollectionMask.Unmask(ObjectSelection.Get().GetAllSelectedGameObjects());
                break;

            case 4:

                ObjectEraser.Get().EraseMask.ObjectCollectionMask.Mask(ObjectSelection.Get().GetAllSelectedGameObjects());
                break;

            case 5:

                ObjectEraser.Get().EraseMask.ObjectCollectionMask.Unmask(ObjectSelection.Get().GetAllSelectedGameObjects());
                break;
            }
        }
        private GameObjectRayHit FindClosestHitObjectWhichCanBeUsedAsPaintSurface(MouseCursorRayHit cursorRayHit)
        {
            ObjectMask decorPaintMask = DecorPaintObjectPlacement.Get().DecorPaintMask;

            List <GameObjectRayHit> gameObjectHits = cursorRayHit.SortedObjectRayHits;

            for (int hitIndex = 0; hitIndex < gameObjectHits.Count; ++hitIndex)
            {
                GameObject hitObject = gameObjectHits[hitIndex].HitObject;

                if (!hitObject.HasMesh() && !hitObject.HasTerrain() && !hitObject.IsSprite())
                {
                    continue;
                }
                if (decorPaintMask.IsGameObjectMasked(hitObject))
                {
                    continue;
                }

                return(gameObjectHits[hitIndex]);
            }

            return(null);
        }
Example #10
0
        private void RemoveNullGameObjectReferences()
        {
            ObjectSelection.Get().RemoveNullGameObjectEntries();
            Octave3DWorldBuilder.ActiveInstance.PlacementObjectGroupDatabase.RemoveGroupsWithNullParents();
            ObjectSnapping.Get().ObjectSnapMask.RemoveInvalidEntries();
            DecorPaintObjectPlacement.Get().DecorPaintMask.RemoveInvalidEntries();

            if (PrefabTagDatabase.Get().ContainsNullEntries())
            {
                Debug.Log("Detected null prefab tag references. This bug has been fixed and should never happen. If you are reading this, please contact me.");

                List <PrefabCategory> allPrefabCategories = PrefabCategoryDatabase.Get().GetAllPrefabCategories();
                foreach (var category in allPrefabCategories)
                {
                    List <Prefab> allPrefabsInCategory = category.GetAllPrefabs();
                    foreach (var prefab in allPrefabsInCategory)
                    {
                        prefab.TagAssociations.RemoveNullEntries();
                    }
                }

                PrefabTagDatabase.Get().RemoveNullEntries();
            }
        }
 protected override void OnStrokeEnded(Event e)
 {
     DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.Unmask(_objectsPlacedWhileDragging);
     _objectsPlacedWhileDragging.Clear();
     _objectPlacementDataCalculator.EndSession();
 }
Example #12
0
 protected override void RenderContent()
 {
     DecorPaintObjectPlacement.Get().BrushCircleRenderSettings.View.Render();
 }
Example #13
0
        public override void Initialize()
        {
            base.Initialize();
            if (Octave3DWorldBuilder.ActiveInstance == null)
            {
                return;
            }

            ObjectPlacementSettings.Get().ObjectIntersectionSettings.View.IsVisible = false;

            _objectPlacementLookAndFeelSettingsView.IsVisible = false;
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.ToggleVisibilityBeforeRender = true;
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.VisibilityToggleLabel        = "Block";
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.IndentContent = true;
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.IsVisible     = false;

            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.ToggleVisibilityBeforeRender = true;
            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.VisibilityToggleLabel        = "Path";
            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.IndentContent = true;
            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.IsVisible     = false;

            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.ToggleVisibilityBeforeRender = true;
            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.VisibilityToggleLabel        = "Decor Paint";
            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.IndentContent = true;
            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.IsVisible     = false;

            ObjectGroupDatabaseView objectGroupDatabaseView = Octave3DWorldBuilder.ActiveInstance.PlacementObjectGroupDatabase.View;

            objectGroupDatabaseView.ToggleVisibilityBeforeRender = true;
            objectGroupDatabaseView.VisibilityToggleLabel        = "Object Groups";
            objectGroupDatabaseView.IsVisible       = false;
            objectGroupDatabaseView.SurroundWithBox = true;

            ObjectPlacementGuideSettings objectPlacementGuideSettings = ObjectPlacementSettings.Get().ObjectPlacementGuideSettings;

            objectPlacementGuideSettings.KeyboardRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.KeyboardRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.KeyboardRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.KeyboardRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.KeyboardRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            objectPlacementGuideSettings.KeyboardRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.KeyboardRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            objectPlacementGuideSettings.MouseRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.MouseRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.MouseRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.MouseRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.MouseRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.MouseRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.MouseRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            objectPlacementGuideSettings.MouseRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.MouseRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.MouseRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.MouseRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            ObjectPlacement.Get().MirrorView.IsVisible = false;
            InteractableMirrorSettings mirrorSettings = ObjectPlacement.Get().MirrorSettings;

            mirrorSettings.View.IsVisible = false;
            mirrorSettings.View.ToggleVisibilityBeforeRender = true;
            mirrorSettings.View.VisibilityToggleLabel        = "More settings";
            mirrorSettings.View.VisibilityToggleIndent       = 1;
            mirrorSettings.View.IndentContent = true;
            mirrorSettings.KeyboardRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.KeyboardRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.KeyboardRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.KeyboardRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.KeyboardRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Hover Surface Normal Settings";

            mirrorSettings.KeyboardRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.KeyboardRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            mirrorSettings.MouseRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.MouseRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.MouseRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.MouseRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.MouseRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.MouseRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.MouseRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Hover Surface Normal Settings";

            mirrorSettings.MouseRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.MouseRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.MouseRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.MouseRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            InteractableMirrorRenderSettingsView mirrorRenderSettingsView = ObjectPlacement.Get().MirrorRenderSettings.View;

            mirrorRenderSettingsView.VisibilityToggleLabel        = "Look and feel";
            mirrorRenderSettingsView.ToggleVisibilityBeforeRender = true;
            mirrorRenderSettingsView.IndentContent          = true;
            mirrorRenderSettingsView.VisibilityToggleIndent = 1;
            mirrorRenderSettingsView.IsVisible = false;

            ObjectRotationRandomizationSettings     placementGuideRotationRandomizationSettings     = PointAndClickObjectPlacementSettings.Get().PlacementGuideRotationRandomizationSettings;
            ObjectRotationRandomizationSettingsView placementGuideRotationRandomizationSettingsView = placementGuideRotationRandomizationSettings.View;

            placementGuideRotationRandomizationSettingsView.VisibilityToggleIndent = 1;
            placementGuideRotationRandomizationSettingsView.VisibilityToggleLabel  = "Rotation Randomization Settings";
            placementGuideRotationRandomizationSettingsView.IsVisible = false;
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.CustomAxisRandomizationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            placementGuideRotationRandomizationSettings     = DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.PlacementGuideRotationRandomizationSettings;
            placementGuideRotationRandomizationSettingsView = placementGuideRotationRandomizationSettings.View;
            placementGuideRotationRandomizationSettingsView.VisibilityToggleIndent = 1;
            placementGuideRotationRandomizationSettingsView.VisibilityToggleLabel  = "Rotation Randomization Settings";
            placementGuideRotationRandomizationSettingsView.IsVisible = false;
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.CustomAxisRandomizationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            ObjectScaleRandomizationSettings     placementGuideScaleRandomizationSettings = PointAndClickObjectPlacementSettings.Get().PlacementGuideScaleRandomizationSettings;
            ObjectScaleRandomizationSettingsView guideScaleRandomizationSettingsView      = placementGuideScaleRandomizationSettings.View;

            guideScaleRandomizationSettingsView.VisibilityToggleIndent = 1;
            guideScaleRandomizationSettingsView.VisibilityToggleLabel  = "Scale Randomization Settings";
            guideScaleRandomizationSettingsView.IsVisible     = false;
            guideScaleRandomizationSettingsView.IndentContent = true;

            placementGuideScaleRandomizationSettings = DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.PlacementGuideScaleRandomizationSettings;
            guideScaleRandomizationSettingsView      = placementGuideScaleRandomizationSettings.View;
            guideScaleRandomizationSettingsView.VisibilityToggleIndent = 1;
            guideScaleRandomizationSettingsView.VisibilityToggleLabel  = "Scale Randomization Settings";
            guideScaleRandomizationSettingsView.IsVisible     = false;
            guideScaleRandomizationSettingsView.IndentContent = true;

            AxisAlignmentSettingsView placementGuideSurfaceAlignmentSettingsView = PointAndClickObjectPlacementSettings.Get().PlacementGuideSurfaceAlignmentSettings.View;

            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            placementGuideSurfaceAlignmentSettingsView = PathObjectPlacementSettings.Get().PlacementGuideSurfaceAlignmentSettings.View;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            placementGuideSurfaceAlignmentSettingsView = BlockObjectPlacementSettings.Get().PlacementGuideSurfaceAlignmentSettings.View;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            placementGuideSurfaceAlignmentSettingsView = DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.PlacementGuideSurfaceAlignmentSettings.View;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            ObjectRotationRandomizationSettings     blockObjectRotationRandomizationSettings     = ObjectPlacement.Get().BlockObjectPlacement.BlockSettings.ManualConstructionSettings.ObjectRotationRandomizationSettings;
            ObjectRotationRandomizationSettingsView blockObjectRotationRandomizationSettingsView = blockObjectRotationRandomizationSettings.View;

            blockObjectRotationRandomizationSettings.CustomAxisRandomizationSettings.View.ToggleVisibilityBeforeRender = false;
            blockObjectRotationRandomizationSettings.CustomAxisRandomizationSettings.View.IsVisible = false;
            blockObjectRotationRandomizationSettings.CustomAxisRandomizationSettings.Randomize      = false;
            blockObjectRotationRandomizationSettingsView.SurroundWithBox        = false;
            blockObjectRotationRandomizationSettingsView.VisibilityToggleIndent = 1;
            blockObjectRotationRandomizationSettings.XAxisRandomizationSettings.View.VisibilityToggleLabel = blockObjectRotationRandomizationSettings.XAxisRandomizationSettings.Axis + " Axis Settings";
            blockObjectRotationRandomizationSettings.YAxisRandomizationSettings.View.VisibilityToggleLabel = blockObjectRotationRandomizationSettings.YAxisRandomizationSettings.Axis + " Axis Settings";
            blockObjectRotationRandomizationSettings.ZAxisRandomizationSettings.View.VisibilityToggleLabel = blockObjectRotationRandomizationSettings.ZAxisRandomizationSettings.Axis + " Axis Settings";

            XZOrientedEllipseShapeRenderSettingsView xzOrientedElipseShapeRenderSettingsView = DecorPaintObjectPlacement.Get().BrushCircleRenderSettings.View;

            xzOrientedElipseShapeRenderSettingsView.ToggleVisibilityBeforeRender = true;
            xzOrientedElipseShapeRenderSettingsView.IndentContent         = true;
            xzOrientedElipseShapeRenderSettingsView.VisibilityToggleLabel = "Brush Circle";
            xzOrientedElipseShapeRenderSettingsView.IsVisible             = false;

            ObjectPivotPointsRenderSettingsView guidePivotPointsSettingsView = ObjectPlacement.Get().GuidePivotPointsRenderSettings.View;

            guidePivotPointsSettingsView.ToggleVisibilityBeforeRender = true;
            guidePivotPointsSettingsView.IndentContent         = true;
            guidePivotPointsSettingsView.VisibilityToggleLabel = "Guide Pivot Points";
            guidePivotPointsSettingsView.IsVisible             = false;

            ObjectPlacement.Get().ObjectVertexSnapSessionRenderSettings.View.IsVisible = false;

            ProjectedBoxFacePivotPointsRenderSettings     projectedBoxFacePointsRenderSettings     = ObjectPlacement.Get().GuidePivotPointsRenderSettings.ProjectedBoxFacePivotPointsRenderSettings;
            ProjectedBoxFacePivotPointsRenderSettingsView projectedBoxFacePointsRenderSettingsView = projectedBoxFacePointsRenderSettings.View;

            projectedBoxFacePointsRenderSettingsView.ToggleVisibilityBeforeRender = true;
            projectedBoxFacePointsRenderSettingsView.IndentContent         = true;
            projectedBoxFacePointsRenderSettingsView.VisibilityToggleLabel = "Projected Guide Pivot Points";
            projectedBoxFacePointsRenderSettingsView.IsVisible             = false;

            SingleObjectPivotPointRenderSettingsView activePivotPointRenderSettingsView = projectedBoxFacePointsRenderSettings.ActivePivotPointRenderSettings.View;

            activePivotPointRenderSettingsView.ToggleVisibilityBeforeRender = true;
            activePivotPointRenderSettingsView.VisibilityToggleLabel        = "Active Pivot Point";
            activePivotPointRenderSettingsView.IndentContent          = true;
            activePivotPointRenderSettingsView.VisibilityToggleIndent = 1;

            SingleObjectPivotPointRenderSettingsView inactivePivotPointRenderSettingsView = projectedBoxFacePointsRenderSettings.InactivePivotPointRenderSettings.View;

            inactivePivotPointRenderSettingsView.ToggleVisibilityBeforeRender = true;
            inactivePivotPointRenderSettingsView.VisibilityToggleLabel        = "Inactive Pivot Point";
            inactivePivotPointRenderSettingsView.IndentContent          = true;
            inactivePivotPointRenderSettingsView.VisibilityToggleIndent = 1;

            ObjectMaskView objectMaskView = DecorPaintObjectPlacement.Get().DecorPaintMask.View;

            objectMaskView.SurroundWithBox = true;

            ObjectLayerObjectMaskView objectLayerObjectMaskView = DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectLayerObjectMask.View;

            objectLayerObjectMaskView.IsVisible = false;
            objectLayerObjectMaskView.ToggleVisibilityBeforeRender = true;
            objectLayerObjectMaskView.VisibilityToggleIndent       = 1;
            objectLayerObjectMaskView.VisibilityToggleLabel        = "Object Layer Decor Paint Mask";

            ObjectCollectionMaskView objectCollectionMaskView = DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.View;

            objectCollectionMaskView.IsVisible = false;
            objectCollectionMaskView.ToggleVisibilityBeforeRender = true;
            objectCollectionMaskView.VisibilityToggleIndent       = 1;
            objectCollectionMaskView.VisibilityToggleLabel        = "Object Decor Paint Mask";

            LabelRenderSettings labelRenderSettings = ObjectPlacement.Get().BlockObjectPlacement.BlockRenderSettings.ManualConstructionRenderSettings.DimensionsLabelRenderSettings;

            labelRenderSettings.Bold      = true;
            labelRenderSettings.FontSize  = 15;
            labelRenderSettings.TextColor = Color.white;
            LabelRenderSettingsView labelRenderSettingsView = labelRenderSettings.View;

            labelRenderSettingsView.ToggleVisibilityBeforeRender = true;
            labelRenderSettingsView.VisibilityToggleLabel        = "Dimensions Label";
            labelRenderSettingsView.IndentContent = true;
        }