Unigine::NodeDummy Class
Header: | #include <UnigineNodes.h> |
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.
#include <UnigineEditor.h>
#include <UnigineNodes.h>
using namespace Unigine;
int AppWorldLogic::init() {
// create a dummy node
NodeDummyPtr dummy = NodeDummy::create();
// 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.cpp
#include <UnigineEditor.h>
#include <UnigineNodes.h>
#include <UnigineString.h>
using namespace Unigine;
using namespace Math;
int AppWorldLogic::init() {
// create a dummy node
NodeDummyPtr root = NodeDummy::create();
// 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
MeshPtr mesh = Mesh::create();
mesh->addBoxSurface("box_0", vec3(1.0f));
// create a node (an instance of the ObjectMeshStatic class)
ObjectMeshStaticPtr node = ObjectMeshStatic::create(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(translate(Vec3(x * 2, y * 2, 0.0f)));
// set a name for the node
node->setName(String::format("mesh_%d_%d", x + 10, y + 10).get());
// release script ownership
node->release();
// add the node as a child to the root dummy node
root->addWorldChild(node->getNode());
}
}
// add the root dummy node with its children to UnigineEditor
Editor::get()->addNode(root->getNode());
return 1;
}
NodeDummy Class
Members
static NodeDummyPtr create()
Constructor. Creates a dummy node.Ptr<NodeDummy> cast(const Ptr<Node> & node)
Casts a NodeDummy out of the Node instance.Arguments
- const Ptr<Node> & node - Pointer to Node.
Return value
Pointer to NodeDummy.int type()
Returns the type of the node.Return value
NodeDummy type identifier.Last update: 20.10.2017
Помогите сделать статью лучше
Была ли эта статья полезной?
(или выберите слово/фразу и нажмите Ctrl+Enter