Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Node *XMLScene::getNodebyID(string id) {
- if (root->getId() == id) return root;
- for (vector<Node *>::iterator it = sceneNodes.begin(); it != sceneNodes.end(); it++ )
- if (id == (*it)->getId()) return (*it);
- Node * empty = new Node("empty");
- cout << "ERRO : o no " << id << " nao existe.\n";
- return empty;
- }
- void XMLScene::loadNode(Node *node) {
- if (node->getId() == "empty") return;
- glPushMatrix();
- glMultMatrixf(node->getTransforMatrix());
- map<string, CGFappearance *>::iterator it = appearanceMap.find(node->getAppearance());
- if (it != appearanceMap.end())
- it->second->apply();
- for (unsigned int i = 0; i < node->getPrimitives().size(); i++)
- node->getPrimitives()[i]->draw();
- for (unsigned int i = 0; i < node->getChildren().size(); i++) {
- loadNode(getNodebyID(node->getChildren()[i]));
- } glPopMatrix();
- }
Add Comment
Please, Sign In to add comment