Browse Source

Add ConvexHull-, SettingOverride-, and SliceableObject-Decorator info

CURA-7502
Kostas Karmas 4 years ago
parent
commit
c8c795e573
1 changed files with 48 additions and 1 deletions
  1. 48 1
      docs/scene/scene.md

+ 48 - 1
docs/scene/scene.md

@@ -99,7 +99,54 @@ node.callDecoration("isGroup") == True
 
 Group nodes decorated by GroupDecorators are added in the scene either by reading project files which contain grouped objects, or when the user selects multiple objects and groups them together (Ctrl + G).
 
-Group nodes that are left with only one child are removed from the scene, making their only child a child of their parent. Group nodes without any remaining children are removed from the scene.
+Group nodes that are left with only one child are removed from the scene, making their only child a child of the group's parent. Group nodes without any remaining children are removed from the scene.
+
+ConvexHullDecorator
+----
+
+As seen in the scene graph of the scene example, each CuraSceneNode that represents an object on the build plate is linked to a ConvexHullNode that provides the convex hull of the object as a shadow on the build plate. The ConvexHullDecorator is the link between these two nodes. 
+
+In essence, the CuraSceneNode has a ConvexHullDecorator which points to the ConvexHullNode of the object. The data of the object's convex hull can be accessed via
+
+```python
+node.callDecoration("getConvexHull")
+```
+
+The ConvexHullDecorator also provides convex hulls for the object that include the head, the fans, and the adhesion of the object. These are primarily used in One-at-a-time mode. 
+
+For more information on the functions added to the node by this decorator, visit the [ConvexHullDecorator.py](https://github.com/Ultimaker/Cura/blob/master/cura/Scene/ConvexHullDecorator.py).
+
+SettingOverrideDecorator
+----
+
+SettingOverrideDecorators are primarily used for modifier meshes such as support meshes, cutting meshes, infill meshes, and anti-overhang meshes. This decorator adds a PerObjectContainerStack to a node, which allows the user to modify the settings of a specific model. 
+
+For more information on the functions added to the node by this decorator, visit the [SettingOverrideDecorator.py](https://github.com/Ultimaker/Cura/blob/master/cura/Settings/SettingOverrideDecorator.py).
+
+
+SliceableObjectDecorator
+----
+
+This is a convenience decorator that allows us to easily identify the nodes which can be sliced. All **individual** objects (meshes) added to the build plate receive this decorator. 
+
+The SceneNodes that do not receive this decorator are:
+
+  - Cameras
+  - BuildVolume
+  - Platform
+  - ConvexHullNodes
+  - CuraSceneNodes that serve as group nodes
+  - The CuraSceneNode that serves as the layer data node
+  - ToolHandles
+  - NozzleNode
+
+This decorator provides the following function to the node:
+
+```python
+node.callDecoration("isSliceable")
+```
+
+
 
 Layer Data
 ----