Ignore:
Timestamp:
07/08/05 01:53:01 (19 years ago)
Author:
mattausch
Message:

added animation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/src/OgreSceneContentGenerator.cpp

    r159 r160  
    1212namespace Ogre { 
    1313 
    14 /*******************************************************/ 
    15 /*     SceneContentGenerator implementation            */ 
    16 /*******************************************************/ 
     14/*************************************************************/ 
     15/*           SceneContentGenerator implementation            */ 
     16/*************************************************************/ 
    1717 
    1818//----------------------------------------------------------------------- 
     
    2323mMinAngle(Vector3(0.0f, 0.0f, 0.0f)), 
    2424mMaxAngle(Vector3(360, 360, 360)), 
    25 mScale(0.1, 0.1, 0.1) 
    26 //, mObjectCount(0) 
     25mScale(0.1, 0.1, 0.1)//, mObjectCount(0) 
    2726{ 
    2827} 
     
    3635        Vector3 translationRatio; 
    3736 
    38         int old_count = GetObjectCount(); 
     37        int new_size = GetObjectCount() + numObjects; 
    3938        int failed_attempts = 0; // counter used to avoid invinite loop 
    4039 
    4140        //-- create random values between zero and one 
    42         while ((GetObjectCount() < numObjects + old_count) &&  
     41        while ((GetObjectCount() <  new_size) &&  
    4342                   (failed_attempts < MAX_FAILED_ATTEMPTS)) 
    4443        { 
     
    7069        Entity *ent = mSceneMgr->createEntity(name, objName + ".mesh"); 
    7170                 
    72         SceneNode *currentObject = mSceneMgr->getRootSceneNode()-> 
     71        SceneNode *node = mSceneMgr->getRootSceneNode()-> 
    7372                createChildSceneNode(String(name) + "Node", position); 
    7473 
    7574        //ent->setCastShadows(false); 
    76         currentObject->attachObject(ent); 
    77         currentObject->setScale(mScale); 
    78         currentObject->setOrientation(orientation); 
    79  
    80         //-- store pointer to object 
    81         mSceneObjects.push_back(currentObject); 
    82  
    83         return currentObject; 
     75        node->attachObject(ent); 
     76        node->setScale(mScale); 
     77        node->setOrientation(orientation); 
     78 
     79        // store pointer to node and object 
     80        mSceneNodes.push_back(node); 
     81        mEntities.push_back(ent); 
     82 
     83        return node; 
    8484} 
    8585//----------------------------------------------------------------------- 
     
    116116int SceneContentGenerator::GetObjectCount() 
    117117{ 
    118         return (int)mSceneObjects.size(); 
     118        return (int)mSceneNodes.size(); 
    119119} 
    120120//----------------------------------------------------------------------- 
     
    129129        std::vector<SceneNode *>::const_iterator it, it_end; 
    130130 
    131         it_end = mSceneObjects.end(); 
     131        it_end = mSceneNodes.end(); 
    132132 
    133133        if(!ofstr.is_open()) 
     
    136136        char str[100]; 
    137137 
    138         for(it = mSceneObjects.begin(); it < it_end; ++it) 
     138        for(it = mSceneNodes.begin(); it < it_end; ++it) 
    139139        { 
    140140                SceneNode *node = (*it); 
     
    164164                return false; 
    165165 
    166         //mSceneObjects.clear(); // reset list of objects 
     166        //mSceneNodes.clear(); // reset list of objects 
    167167 
    168168        while (!ifstr.eof())  
     
    173173                        &orientation.w, &orientation.x, &orientation.y, &orientation.z, 
    174174                        &mScale.x, &mScale.y, &mScale.z); 
    175                  
    176                 /*Vector3 rot(orientation.getYaw().valueDegrees(),  
    177                                         orientation.getPitch().valueDegrees(),  
    178                                         orientation.getRoll().valueDegrees());*/ 
    179175 
    180176                GenerateSceneObject(position, orientation, objName); 
     
    187183        return true; 
    188184} 
    189  
     185//----------------------------------------------------------------------- 
     186SceneNodeList *SceneContentGenerator::GetGeneratedSceneNodes() 
     187{ 
     188        return &mSceneNodes; 
     189} 
     190//----------------------------------------------------------------------- 
     191EntityList *SceneContentGenerator::GetGeneratedEntities() 
     192{ 
     193        return &mEntities; 
     194} 
     195//----------------------------------------------------------------------- 
     196void SceneContentGenerator::RemoveGeneratedObjects() 
     197{ 
     198        //-- destroy scene nodes and detach entities 
     199        while (!mSceneNodes.empty()) 
     200        { 
     201                SceneNode *node = mSceneNodes.back(); 
     202                mSceneNodes.pop_back(); 
     203                 
     204                //node->detachAllObjects(); 
     205                mSceneMgr->destroySceneNode(node->getName()); 
     206        } 
     207        //-- remove and destroy entities 
     208        while (!mEntities.empty()) 
     209        { 
     210                Entity *ent = mEntities.back(); 
     211                mEntities.pop_back(); 
     212                 
     213                mSceneMgr->removeEntity(ent); 
     214        } 
     215} 
    190216} // namespace Ogre 
Note: See TracChangeset for help on using the changeset viewer.