ModelNode.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "anki/scene/ModelNode.h"
  2. #include "anki/resource/Model.h"
  3. #include "anki/resource/Skeleton.h"
  4. #include <boost/foreach.hpp>
  5. #include <boost/lexical_cast.hpp>
  6. namespace anki {
  7. //==============================================================================
  8. // ModelPatchNode =
  9. //==============================================================================
  10. //==============================================================================
  11. ModelPatchNode::ModelPatchNode(const ModelPatch* modelPatch_,
  12. const char* name, Scene* scene,
  13. uint movableFlags, Movable* movParent)
  14. : SceneNode(name, scene), Movable(movableFlags, movParent, *this),
  15. Spatial(&obb), modelPatch(modelPatch_)
  16. {
  17. Renderable::init(*this);
  18. }
  19. //==============================================================================
  20. // ModelNode =
  21. //==============================================================================
  22. //==============================================================================
  23. ModelNode::ModelNode(const char* modelFname,
  24. const char* name, Scene* scene,
  25. uint movableFlags, Movable* movParent)
  26. : SceneNode(name, scene), Movable(movableFlags, movParent, *this),
  27. Spatial(&obb)
  28. {
  29. model.load(modelFname);
  30. uint i = 0;
  31. BOOST_FOREACH(const ModelPatch& patch, model->getModelPatches())
  32. {
  33. std::string name = model.getResourceName()
  34. + boost::lexical_cast<std::string>(i);
  35. ModelPatchNode* mpn = new ModelPatchNode(&patch, name.c_str(),
  36. scene, Movable::MF_IGNORE_LOCAL_TRANSFORM, this);
  37. patches.push_back(mpn);
  38. ++i;
  39. }
  40. }
  41. //==============================================================================
  42. ModelNode::~ModelNode()
  43. {}
  44. } // end namespace