From c8c795e573bd88fb9d27331b56f0ea59b51fed1e Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Mon, 1 Feb 2021 17:03:19 +0100 Subject: [PATCH] Add ConvexHull-, SettingOverride-, and SliceableObject-Decorator info CURA-7502 --- docs/scene/scene.md | 49 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/docs/scene/scene.md b/docs/scene/scene.md index ace31763fa..45d8cb48ab 100644 --- a/docs/scene/scene.md +++ b/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 ----