mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-21 13:23:53 +00:00
new insertBegin()
This commit is contained in:
parent
c2181d2091
commit
d49a02abe5
2 changed files with 19 additions and 7 deletions
|
@ -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…
Reference in a new issue