Guest User

Untitled

a guest
Jan 20th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. Node *XMLScene::getNodebyID(string id) {
  2. if (root->getId() == id) return root;
  3.  
  4. for (vector<Node *>::iterator it = sceneNodes.begin(); it != sceneNodes.end(); it++ )
  5. if (id == (*it)->getId()) return (*it);
  6.  
  7. Node * empty = new Node("empty");
  8. cout << "ERRO : o no " << id << " nao existe.\n";
  9. return empty;
  10. }
  11.  
  12. void XMLScene::loadNode(Node *node) {
  13. if (node->getId() == "empty") return;
  14.  
  15. glPushMatrix();
  16. glMultMatrixf(node->getTransforMatrix());
  17.  
  18. map<string, CGFappearance *>::iterator it = appearanceMap.find(node->getAppearance());
  19. if (it != appearanceMap.end())
  20. it->second->apply();
  21.  
  22. for (unsigned int i = 0; i < node->getPrimitives().size(); i++)
  23. node->getPrimitives()[i]->draw();
  24.  
  25. for (unsigned int i = 0; i < node->getChildren().size(); i++) {
  26. loadNode(getNodebyID(node->getChildren()[i]));
  27. } glPopMatrix();
  28. }
Add Comment
Please, Sign In to add comment