new insertBegin()

actorid
Jason Hooks 13 years ago
parent c2181d2091
commit d49a02abe5

@ -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){

@ -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);

Loading…
Cancel
Save