1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-21 13:23:53 +00:00

new insertBegin()

This commit is contained in:
Jason Hooks 2011-11-02 22:41:48 -04:00
parent c2181d2091
commit d49a02abe5
2 changed files with 19 additions and 7 deletions

View file

@ -4,12 +4,25 @@
using namespace MWRender;
void Objects::insertBegin (const MWWorld::Ptr& ptr, bool enabled, bool static_){
ptr.getRefData().setBaseNode(mBase);
assert (!mInsert);
Ogre::SceneNode* root = rend.getScene()->getRootSceneNode();
Ogre::SceneNode* cellnode;
if(cellSceneNodes.find(ptr.getCell()) == cellSceneNodes.end())
{
//Create the scenenode and put it in the map
cellnode = root->createChildSceneNode();
cellSceneNodes[ptr.getCell()] = cellnode;
assert(!cellnode->getChildIterator()->begin()); //Is this right?
}
else
{
cellnode = (cellSceneNodes.find(ptr.getCell()))->second;
}
Ogre::SceneNode* insert = cellnode->createChildSceneNode();
ptr.getRefData().setBaseNode(insert);
isStatic = static_;
// Create and place scene node for this object
mInsert = mBase->createChildSceneNode();
}
void Objects::insertMesh (const MWWorld::Ptr& ptr, const std::string& mesh){

View file

@ -8,11 +8,10 @@ namespace MWRender{
class Objects{
private:
OEngine::Render::OgreRenderer &rend;
Ogre::SceneNode *mBase;
Ogre::SceneNode *mInsert;
std::map<MWWorld::Ptr::CellStore *, Ogre::SceneNode *> cellSceneNodes;
bool isStatic;
public:
Objects(OEngine::Render::OgreRenderer& _rend): rend(_rend){mBase = rend.getScene()->getRootSceneNode(); }
Objects(OEngine::Render::OgreRenderer& _rend): rend(_rend){}
~Objects(){}
void insertBegin (const MWWorld::Ptr& ptr, bool enabled, bool static_);
void insertMesh (const MWWorld::Ptr& ptr, const std::string& mesh);