Chapter 4. Tools

Table of Contents

4.1. Shoot-based
4.1.1. link a child
4.1.2. Shift to parent
4.1.3. Smooth
4.1.4. Bridge
4.1.5. Split
4.1.6. fit Diameter
4.1.7. Move to 000
4.1.8. toM
4.1.9. Remove
4.1.10. Usage
4.2. Tree-based
4.2.1. Move to 0,0,0
4.2.2. Color code
4.2.3. shift all
4.2.4. Remove Order
4.2.5. Remove highest order
4.2.6. Show/hide

4.1. Shoot-based

4.1.1. link a child

To change the taxonomy of the tree, a node a can be linked as a child of a node b. During this process the old parent of a is disconnected and the local transformation of a is adjusted to keep it in the same global position.

This function works with apical and lateral children, using different edge-types to connect a to a. Apical links are represented by successor edges and lateral links by branch edges.

4.1.1.1. Usage

To link a child using the toolbar, first select the parent and then the child.

icon function RGG call
latChild link as lateral child makeLateralChild(newParent, child);
apicalChild link as apical child makeApicalChild(newParent, child);
X link as custom child makeChild(newParen, child, edgeBit);

4.1.2. Shift to parent

This translates the start of a given shoot on the axis of the parent shoot. The shift on the parent shoot can be either, top, center, bottom or on the closest possible point on the axis. The last option does choose the point base on the parent axis not on the parent it self, therefore it is possible that the child is afterwards not attached to the parent (if it is on a position of the axis higher than the length of the parent).

For lateral children an additional shift in the direction of the child is added with the length of the radius of the parent. This is done to attach the child to the surface of the parent rather then the center.

4.1.2.1. Usage

To shift using the toolbar select the shoot to shift

icon function RGG call
jumpAxis shift to axis jumpToParentAxis(shoot);
jumpTop shift to start jumpToParentStart(shoot);
jumpCenter shift to center jumpToParentCenter(shoot);
jumpBottom shift to end jumpToParentEnd(shoot);

4.1.3. Smooth

The path between a shoot start and a shoot end can be smoothed if the path between them is of only successors and a maximum length of 10 shoots.

The process is replacing all shoots between start and end with a single new shoot starting at the end of start and ending at the start of end. All lateral children of the replaced shoots are added as children to the new shoot.

If end is a direct child of start, start and end are replaced by a new shoot starting at the end of the parent of start and ending at the start of the parent of end. This is not supported for the root shoot as well as for tip-shoots (with no children).

4.1.3.1. Usage

To create a smooth path using the toolbar select first the start shoot, then the end shoot and then press the button.

icon function RGG call
smooth smooth smooth(start,end);

4.1.4. Bridge

A new shoot can be created between a shoot start and a shoot end ignoring any previous relation ship between them. The new shoot is a lateral child of start and replaces the old parent of end as the new apical parent. The new shoot start at the end of start and ends at the start of end.

4.1.4.1. Usage

To create a bridge using the toolbar select first the start shoot, then the end shoot and then press the button.

icon function RGG call
bride bridge bridge(start,end);

4.1.5. Split

A shoot can be split into two shoots at a given ratio (0.0-1.0). All lateral children of the original shoot are distributed between the two new shoots based on their location on the axis of the original shoots, to ensure the closest possible connection.

4.1.5.1. Usage

To split a shoot with the toolbar, select it, then press the button and enter the ratio in the appearing dialog.

icon function RGG call
slice split shoot split(shoot, ratio);

4.1.6. fit Diameter

This function replaces the diameter of a shoot with the average diameter of its parent and its successor. If only one of the two exists this diameter is used. If the parent connected as a branch (the node is a lateral child) the parent diameter is only considered half.

4.1.6.1. Usage

To fit the diameter of shoot using the toolbar, select the shoot and press the button.

icon function RGG call
fitDiameter fit diameter fitDiameter(shoot);

4.1.7. Move to 000

Set the local translation of a shoot to 0,0,0. Meaning to the end of the parent.

4.1.7.1. Usage

To move a shoot using the toolbar, select the shoot and press the button.

icon function RGG call
fitDiameter move to 000 moveTo000(shoot);

4.1.8. toM

Turn a shoot into a turtle step to render it invisible and remove its volume and diameter without changing the trend or order of its children

4.1.8.1. Usage

To turn a shoot into an M using the toolbar, select the shoot and press the button.

icon function RGG call
hide toM toM(shoot);

4.1.9. Remove

It it possible to either remove a shoot alone without effecting its children, or to remove the whole sub-tree below it. If the shoot is remove alone its children are added as children to its parent. The remove with sub-tree works identically to pressing the delete key on the keyboard.

4.1.10. Usage

To remove of shoot using the toolbar, select the shoot and press the button.

icon function RGG call
remove remove remove(shoot);
removeAlone removeAlone removeAlone(shoot);