diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/index.md | 3 | ||||
-rw-r--r-- | docs/scene/scene.md | 26 |
2 files changed, 28 insertions, 1 deletions
diff --git a/docs/index.md b/docs/index.md index 0165e3d741..08ee83c1e5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,4 +18,5 @@ Index ---- The following chapters are available in this documentation: * [Repositories](repositories.md): An overview of the repositories that together make up the Cura application. -* [Profiles](profiles/profiles.md): About the setting and profile system of Cura.
\ No newline at end of file +* [Profiles](profiles/profiles.md): About the setting and profile system of Cura. +* [Scene](scene/scene.md): How Cura's 3D scene looks.
\ No newline at end of file diff --git a/docs/scene/scene.md b/docs/scene/scene.md new file mode 100644 index 0000000000..fc1e61a88d --- /dev/null +++ b/docs/scene/scene.md @@ -0,0 +1,26 @@ +Scene +==== +The 3D scene in Cura is designed as a [Scene Graph](https://en.wikipedia.org/wiki/Scene_graph), which is common in many 3D graphics applications. The scene graph of Cura is usually very flat, but has the possibility to have nested objects which inherit transformations from each other. + +Scene Graph +---- +Cura's scene graph is a mere tree data structure. This tree contains all scene nodes, which represent the objects in the 3D scene. + +The main idea behind the scene tree is that each scene node has a transformation applied to it. The scene nodes can be nested beneath other scene nodes. The transformation of the parents is then also applied to the children. This way you can have scene nodes grouped together and transform the group as a whole. Since the transformations are all linear, this ensures that the elements of this group stay in the same relative position and orientation. It will look as if the whole group is a single object. This idea is very common for games where objects are often composed of multiple 3D models but need to move together as a whole. For Cura it is used to group objects together and to transform the collision area correctly. + +A Typical Scene +---- +Cura's scene has a few nodes that are always present, and a few nodes that are repeated for every object that the user loads onto their build plate. To give an idea of how a scene normally looks, this is an overview of a typical scene tree for Cura. + +* Root + * Camera + * Build volume + * Platform + * Object 1 + * Group 1 + * Object 2 + * Object 3 + * Object 1 convex hull node + * Object 2 convex hull node + * Object 3 convex hull node + * Group 1 convex hull node
\ No newline at end of file |