Unigine.NodeDummy Class
Inherits: | Node |
A dummy node is a zero-sized node that has no visual representation. It is used to organize the other nodes into a hierarchy: the dummy node serves as a parent node and enables to organize the other nodes that are made its children into a group.
A bounding box of the dummy node is equal to the bounding boxes of all its child nodes combined together.
Creating a Dummy Node
To create a dummy node, perform as follows:
- Create an instance of the NodeDummy class.
- Release script ownership so that the node can be added to UnigineEditor.
- Add the node to UnigineEditor (wherein, node ownership will be passed to the editor automatically).
You can also specify such settings as a name, transformation and so on.
// AppWorldLogic.cs
using Unigine;
namespace UnigineApp
{
class AppWorldLogic : WorldLogic
{
public override int init()
{
// create a dummy node and release script ownership
NodeDummy dummy = new NodeDummy();
// set a name
dummy.setName("DummyNode");
// release script ownership
dummy.release();
// add the dummy node to the editor
Editor.get().addNode(dummy.getNode());
return 1;
}
}
}
Organizing a Nodes Hierarchy
To organize nodes in a hierarchy, perform as follows:
- Create an instance of the NodeDummy class.
- Release script ownership so that the node can be added to UnigineEditor.
- Create a node and add it as a child to the created dummy node.
- Add the dummy node to UnigineEditor (wherein, node ownership will be passed to the editor automatically).
// AppWorldLogic.cs
using Unigine;
#if UNIGINE_DOUBLE
using Vec3 = Unigine.dvec3;
using Mat4 = Unigine.dmat4;
#else
using Vec3 = Unigine.vec3;
using Mat4 = Unigine.mat4;
#endif
namespace UnigineApp
{
class AppWorldLogic : WorldLogic
{
public override int init()
{
// create a dummy node
NodeDummy root = new NodeDummy();
// set a name for the node
root.setName("root");
// release script ownership
root.release();
// create child nodes
for (int y = -10; y <= 10; y++)
{
for (int x = -10; x <= 10; x++)
{
// create a mesh
Mesh mesh = new Mesh();
mesh.addBoxSurface("box_0", new vec3(1.0f));
// create a node (an instance of the ObjectMeshStatic class)
ObjectMeshStatic node = new ObjectMeshStatic(mesh);
// assign a material and a property to the node
for (int i = 0; i < node.getNumSurfaces(); i++)
{
node.setMaterial("mesh_base", i);
node.setProperty("surface_base", i);
}
// set node transformation
node.setWorldTransform(MathLib.translate(new Vec3(x * 2, y * 2, 0.0f)));
// set a name for the node
node.setName(String.Format("mesh_{0}_{1}", x + 10, y + 10));
// release script ownership
node.release();
// add the node as a child to the root dummy node
root.addWorldChild(node);
}
}
// add the root dummy node with its children to UnigineEditor
Editor.get().addNode(root);
return 1;
}
}
}
NodeDummy Class
Members
static NodeDummy()
Constructor. Creates a dummy node.NodeDummy cast(Node node)
Casts a NodeDummy out of the Node instance.Arguments
- Node node - Node instance.
Return value
NodeDummy instance.int type()
Returns the type of the node.Return value
NodeDummy type identifier.Last update: 2018-08-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)