Nodes Spline
Topic overview of this page
This group is comparable to a standard Node group, which can be used to combine any Nodes. The only difference is that a Geometry output is already available, e.g., to lead a newly-created spline geometry out of the group.
Above all, however, the Nodes Spline is designed to serve as a basis for the creation of asset capsules. Spline geometries created within a Nodes Spline can therefore also be used directly in the Object Manager. To do this, drag the Nodes Spline directly from the Asset Browser into the Object Manager. Double-clicking on the Nodes Spline icon in the Object Manager automatically opens the Node Editor in capsule mode.
You can find more information on the use of this Node type in the following section, and on the subject of asset construction in general on this page.
If you want to process or create classic point or polygon geometry instead, select Node Mesh.
Additional inputs required for the group can be added via the Resource Editor or, for example, by right-clicking on the group and selecting Add input. Further information on adding and managing these individual parameters to assets can be found on this page on the user interface.
These inputs are already available and are mainly useful if the Nodes Spline is used directly in the Object Manager:
This is the matrix of the capsule in the Object Manager, which is calculated in relation to any existing parent object. However, if the capsule is not in a hierarchy, this matrix corresponds to the global capsule matrix.
This matrix shows the position, size and rotational position of the capsule in relation to the global axis system.
The working principle
The Node automatically forwards all settings typical for splines to the Attribute Manager. So if you use the Node as a capsule directly in the Object Manager, a user can set the open/close status of the generated spline, its interpolation and also the generation of intermediate points directly in the Attribute Manager - without having to open the Node Editor. The settings configured within the asset are made available directly in the Attribute Manager as auto settings, but can also be overwritten there individually if, for example, a spline that is actually closed is to be opened manually.
The following illustration demonstrates the principle. There, the Nodes Spline Capsule was first dragged from the Asset Browser into the Object Manager (shown in the illustration on the right). The content of the asset is then displayed in the Capsule mode of the Node Editor and can be filled with any number of Nodes. In the example shown, two parametric splines are connected and opened at the end using the Set Closed Status Node before they are sent to the output of the Node as geometry.
Exactly this shape is generated in the Attribute Manager and also displayed in the views, provided that the Auto settings for Type and Close spline are active there (see middle part of the following illustration). The Close Spline Status and also the Type of spline can also be overwritten there in a different way to the configuration within the Node Editor.
Processing Child object splines in the Object Manager
In the example above, spline basic objects based on Nodes were used directly within the Node circuit of the Nodes Spline. This has the advantage that you can work directly with the available spline functions of the Node environment. However, situations are also conceivable in which, for example, you want to leave it up to the user to decide which splines should be processed by the asset. You can use user data to access Child objects of the asset. This page informs you about all the options for using user data on an asset. Let's look at another simple example.
To do this, call up the Nodes category via the Asset Browser and open the entry for Nodes > Asset Construction in the left-hand category list. You will find the entry for the Nodes Spline there, which you can drag directly into the Object Manager with the mouse. This asset should work with two splines that a user has to subordinate there. The following illustration shows this on the left-hand side.
So that we can now access these two splines under the Nodes Spline in the Node Editor, two corresponding inputs must also be created there. To do this, double-click on the icon of the Nodes Spline object in the Object Manager to open the Node Editor in Capsule mode. This lets you see the currently empty content of the Nodes Spline.
Now right-click in the Node Editor and select Add input > Object - Sub-object. This will give you a new input on the left-hand side of the Node Editor, which you can use to access the topmost object under the Nodes Spline in the Object Manager (see middle illustration in the figure above). Double-click on this input to rename it individually in the Node Editor.
Repeat this to add a second input in the Node Editor. As can also be seen on the right-hand side of the figure above, these inputs can also be expanded in order to directly access all important properties of the two Child objects, such as their geometry or matrix.
Please note that the information at the Geometry ports for splines is generally only provided as line geometry. It is also possible that the user accidentally subordinates polygon objects instead of splines. You should therefore carry out a few checks so that you can be sure you are working with the correct object types.
As can be seen in the figure above, a Connect Node can be used to convert the line geometry into a spline geometry (see output mode setting for this Node). If you require all Child objects as separate geometry within the circuit, simply route each Geometry input to a separate Connect Node, as shown in the example on the left-hand side of the illustration for the first Child object.
Alternatively, several Geometry inputs can also be configured on the Connect Node, as shown in the illustration on the right. In this case, all connected line geometries become individual segments on a spline geometry. The first Child object therefore becomes segment 0 and the second becomes segment 1 on the connected spline.
When processing geometry, it should generally be noted that its points and tangents, for example, are only ever passed on in local coordinates. If you are planning a spline output based on the subordinate splines in the Object Manager, for example, which also moves accordingly when the spline objects are moved or rotated, the line geometries in the circuit must be converted globally. To do this, we use Transform Geometry Nodes, as shown in the following illustration.
If you combine these Nodes with the matrix of the introduced geometry, you will receive a globally converted geometry at the Geometry outputs of the Transform Nodes. Just make sure that the Type setting on the Transform Geometry Node is set to points, as we are dealing with a line geometry that does not contain any edges or polygons.
But stop ... How do we actually know that the user has done everything correctly and that two spline objects, as required by our asset, have actually been subordinated in the Object Manager? Well, of course we can't know that and should therefore check it in the circuit before we work with these geometries.
Check Child objects
A Geometry Info Node can be used to check whether an object required in the circuit is actually available and also has the required type. This provides various outputs with bool signals, which can be used to query whether a geometry exists at all(Has value) and whether the geometry is of type line(Is line), for example. In our example, we compare the two outputs mentioned with a Boolean operator in AND mode. This Node then only supplies a positive bool signal if both inputs are also positive, i.e., both a geometry is present and the line type is positive. As two line geometries are required in the circuit, we carry out the same check for the second Geometry input. The results of both checks can be summarized again with an AND check, which then only returns a positive result (or TRUE or 1) if all criteria apply to both Child objects.
As can be seen in the following illustration, this could be used, for example, as an index for a Switch Node to provide either the geometry of the two inputs or, for example, a standard geometry (here a circle with the Ring option activated to obtain two segments) for further geometry calculations or the output.