Table of Contents
VR Skeletonization
The plugin VRSkeletonization enables to build a graph that follow the branch/ successor pattern from 3d coordinates.
The VRSkeletonizations are composed of any Node under the RGGRoot, linked by BRANCH and SUCCESSOR edges. The knowledge of the skeletonization is kept by VRSPoint. The VRSPoints define the start and end of the VRS structure.
VRSPoints are added to a VRSBase with BRANCH edges. Each VRSBase correspond to one skeletonization. The structure of the skeletonization is done by VRS edges: VRSObject#EDGE_START_POINT and VRSObject#EDGE_END_POINT.
Each VRSPoint have at most two VRS edges (one of each type). By default the vrs edges are connected from the Node toward the VRSPoint. With the exception of branches. The VRS edges follow the following patterns:
- EDGE_START_POINT:
- null: the VRSPoint is at an end of a branch. There are no Node after this VRSPoint on the branch in the skeletonization.
- source the Node, target the VRSPoint: the VRSPoint represents the starting point of that node.
- EDGE_END_POINT:
- null: the VRSPoint is at the “root” of the plant. There are no Node in the skeletonization before this VRSPoint.
- source the Node, target the VRSPoint: The VRSPoint represents the ending point of that Node.
- source the VRSPoint, target the Node: The VRSPoint is the beginning of a Branch. The Node is the parent of that branch and should be linked with a BRANCH edge to the Node whose “start” is that VRSPoint.
VRSPoint have global positions and are updated when their linked Nodes are modified.
IMP interface
The VRS is accessible from the GUI as a navigator. It can be selected has follow:
This navigation keep the default navigation and selection. Additionally it includes three short cuts:
- R + left click: adds a VRSBase and a VRSPoint to either: the selected Node location, or 0,0,0 by default.
- N + left click: adds a VRSPoint to the click location. It requires to have an existing VRSPoint selected. A Node (Axis of the selected type) using the selected VRSPoint as start, and the newly created one as end.
- B + left click: adds a VRSPoint as branch to the selected Node at the click location. It requires to have a Node selected which is part of an existing skeletonization.
Node Type
Between each VRSPoint is added a Node. By construction, any de.grogra.graph.impl.Node would work. But currently only the Nodes that extends AxisBase are properly updating their transformation to fit both the local transformation so the branches/successors works without the skeleton; and the global transformations of the VRSPoints so the Node follow the locations of the VRSPoint if modified.
It is possible to change the type of Node used from the preferences as shown:
By default, only turtle F, M and 3D primitives Parallelogram and Cylinders are listed. Any class or module defined in the current project that extends AxisBase (or any of its sub classes) will be listed here as well.
Commands
If used from another UI than IMP GUI, the commands available are:
- /ui/vrs/addroot : it takes as paramters:
- context: a context
- x: a double
- y: a double
- z: a double
- selected: (optional) a boolean if the added node is selected after being added
- /ui/vrs/addpoint : it takes as paramters:
- context: a context
- x: a double
- y: a double
- z: a double
- selected: (optional) a boolean if the added node is selected after being added
- /ui/vrs/addbranch : it takes as paramters:
- context: a context
- x: a double
- y: a double
- z: a double
- selected: (optional) a boolean if the added node is selected after being added
- /ui/vrs/settype
- context: a context
- newtype: a String that represent the Simple name of the type to use (one of the listed ones in preferences).