Ignore:
Timestamp:
04/11/06 09:20:23 (18 years ago)
Author:
igarcia
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCManager.cpp

    r731 r745  
    6969} 
    7070 
    71 void LBBCManager::runSampleConfigFile() 
     71void LBBCManager::initialize() 
    7272{ 
    7373        mLeaves = new Leaves(); 
    74          
    7574        BBC::EntityPtr entityLeaves(new BBC::Entity); 
    7675        BBC::MeshPtr meshLeaves(new BBC::Mesh(this->loadMesh(mSampleConfigFile->getEntitiesFolder(), mSampleConfigFile->getEntitiesMeshPrefixName() + ".mesh")) ); 
     
    7877        mLeaves->setEntity(entityLeaves); 
    7978        mLeaves->getEntity()->setMesh(meshLeaves); 
    80  
    81         if (mSampleConfigFile->getEntityDistributionGeneration()) 
    82         { 
    83                 generateEntityDistribution(); 
    84         } 
    85         else 
    86         { 
    87                 loadEntityDistribution(); 
    88         } 
    89          
    90         if (mSampleConfigFile->getEntitySampleMeshGeneration()) 
    91         { 
    92                 saveSingleEntity(); 
    93         } 
    94  
    95         if (mSampleConfigFile->getEntityClustersGeneration()) 
    96         { 
    97                 generateEntityClusters(); 
    98         } 
    99  
    100         if (mSampleConfigFile->getBillboardCloudGeneration()) 
    101         { 
    102                 generateBillboardCloud(); 
    103         }        
    104  
    10579} 
    10680 
     
    265239void LBBCManager::saveBillboardCloudMerged() 
    266240{        
    267         //mLeaves->getBillboardCloud()->getEntity()->getSubEntity(0)->setMaterialName(mSampleConfigFile->getBillboardCloudMaterialPrefixName()); 
    268         //mOgreMeshSerializer->setEntity(mLeaves->getBillboardCloud()->getEntity()); 
    269         //mOgreMeshSerializer->exportMesh(mSampleConfigFile->getBillboardCloudFolder() + 
    270         //                      mSampleConfigFile->getBillboardCloudMeshPrefixName() + "Merged.mesh", mSampleConfigFile->getBillboardCloudMergedBillboards(), false); 
    271         //OBA::OgreBase::getSingleton().getMeshSerializer()->exportMesh(mLeaves->getBillboardCloud()->getEntity()->getMesh(),  
    272         //                      mSampleConfigFile->getBillboardCloudFolder() + mSampleConfigFile->getBillboardCloudMeshPrefixName() + "Merged.mesh"); 
    273         //OBA::OgreBase::getSingleton().getXMLMeshSerializer()->exportMesh(mLeaves->getBillboardCloud()->getEntity()->getMesh(), mSampleConfigFile->getBillboardCloudFolder() + mSampleConfigFile->getBillboardCloudMeshPrefixName() + "Merged.mesh.xml"); 
    274          
    275  
    276241        for (unsigned int iSubEntity = 0; iSubEntity < mLeaves->getBillboardCloud()->getEntity()->getNumSubEntities(); iSubEntity++) 
    277242        { 
     
    290255void LBBCManager::saveBillboardCloudXML() 
    291256{ 
    292         //saveBillboardCloud() 
    293257        TiXmlDocument *document2 = mBillboardCloudSerializer->create( 
    294258                                                                        mSampleConfigFile->getBillboardCloudFolder() +  
    295259                                                                        mSampleConfigFile->getBillboardCloudXMLPrefixName() + ".xml"); 
    296260        mBillboardCloudSerializer->setBillboardCloud(mLeaves->getBillboardCloud()); 
    297         mBillboardCloudSerializer->writeBillboardCloud(document2);       
     261        mBillboardCloudSerializer->writeBillboardCloud(document2, false);        
    298262        mBillboardCloudSerializer->save(); 
     263} 
     264 
     265void LBBCManager::saveBillboardCloudGroupedXML() 
     266{ 
     267        TiXmlDocument *document2 = mBillboardCloudSerializer->create( 
     268                                                                        mSampleConfigFile->getBillboardCloudFolder() +  
     269                                                                        mSampleConfigFile->getBillboardCloudXMLPrefixName() + "Grouped.xml"); 
     270        mBillboardCloudSerializer->setBillboardCloud(mLeaves->getBillboardCloud()); 
     271        mBillboardCloudSerializer->writeBillboardCloud(document2, true);         
     272        mBillboardCloudSerializer->save(); 
     273} 
     274 
     275void LBBCManager::saveBillboardCloudMergedXML() 
     276{ 
     277        TiXmlDocument *document2 = mBillboardCloudSerializer->create( 
     278                                                                        mSampleConfigFile->getBillboardCloudFolder() +  
     279                                                                        mSampleConfigFile->getBillboardCloudXMLPrefixName() + "Merged.xml"); 
     280        mBillboardCloudSerializer->setBillboardCloud(mLeaves->getBillboardCloud()); 
     281        mBillboardCloudSerializer->writeBillboardCloud(document2, true);         
     282        mBillboardCloudSerializer->save(); 
     283} 
     284 
     285void LBBCManager::loadBillboardCloudXML() 
     286{ 
     287        TiXmlDocument *document = mBillboardCloudSerializer->load( 
     288                                                                        mSampleConfigFile->getBillboardCloudFolder() + 
     289                                                                        mSampleConfigFile->getBillboardCloudXMLPrefixName() + ".xml"); 
     290 
     291        mBillboardCloudSerializer->setBillboardCloud(mLeaves->getBillboardCloud()); 
     292        mBillboardCloudSerializer->readBillboardCloud(document, false); 
     293} 
     294 
     295void LBBCManager::loadBillboardCloudGroupedXML() 
     296{ 
     297        TiXmlDocument *document = mBillboardCloudSerializer->load( 
     298                                                                        mSampleConfigFile->getBillboardCloudFolder() + 
     299                                                                        mSampleConfigFile->getBillboardCloudXMLPrefixName() + "Grouped.xml"); 
     300         
     301        mBillboardCloudSerializer->setBillboardCloud(mLeaves->getBillboardCloud()); 
     302        mBillboardCloudSerializer->readBillboardCloud(document, true); 
     303} 
     304 
     305void LBBCManager::loadBillboardCloudMergedXML() 
     306{ 
     307        TiXmlDocument *document = mBillboardCloudSerializer->load( 
     308                                                                        mSampleConfigFile->getBillboardCloudFolder() + 
     309                                                                        mSampleConfigFile->getBillboardCloudXMLPrefixName() + "Merged.xml"); 
     310 
     311        mBillboardCloudSerializer->setBillboardCloud(mLeaves->getBillboardCloud()); 
     312        mBillboardCloudSerializer->readBillboardCloud(document, true); 
    299313} 
    300314 
     
    316330                        {                                        
    317331                                BBC::EntityPtr entityClusterized = entityCluster->getEntity(); 
    318                                 entityClusterized->getSubEntity(0)->setMaterialName(mSampleConfigFile->getEntityClustersMaterialPrefixName()); 
     332                                entityClusterized->getSubEntity(0)->setMaterialName(mSampleConfigFile->getEntityClustersSplittedMaterialPrefixName()); 
    319333                                mOgreMeshSerializer->setEntity(entityClusterized); 
    320334                                mOgreMeshSerializer->exportMesh(mSampleConfigFile->getEntityDistributionFolder() + 
     
    346360                        {                        
    347361                                BBC::EntityPtr entityClusterized = entityCluster->getEntity(); 
    348                                 entityClusterized->getSubEntity(0)->setMaterialName(mSampleConfigFile->getEntityClustersMaterialPrefixName()); 
     362                                entityClusterized->getSubEntity(0)->setMaterialName(mSampleConfigFile->getEntityClustersMergedMaterialPrefixName()); 
    349363                                BBC::SubEntityPtr subEntity = entityClusterized->getSubEntity(0); 
    350364 
     
    367381                 
    368382                Ogre::LogManager::getSingleton().logMessage(" Mesh Generation --" + Ogre::StringConverter::toString(numSerializedBillboards)); 
    369  
     383                 
    370384                mOgreMeshSerializer->setEntity(entity); 
    371385                mOgreMeshSerializer->exportMesh(mSampleConfigFile->getEntityClustersFolder() + 
     
    409423void LBBCManager::generateBillboardCloud() 
    410424{ 
     425 
     426        if (mSampleConfigFile->getBillboardCloudGroupedBillboards()) 
     427        {                                
     428                mLeaves->getBillboardCloud()->generateBillboardCloud(false); 
     429                mLeaves->getBillboardCloud()->initializeBillboardCloudGroups(mSampleConfigFile->getBillboardCloudGroups()); 
     430                 
     431                if (mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureAtlasGeneration()) 
     432                { 
     433                        mBillboardCloudUVMapper->shutdown(); 
     434                        mBillboardCloudUVMapper->setBillboardCloud(mLeaves->getBillboardCloud()); 
     435                        mBillboardCloudUVMapper->setTextureWidth(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureSize()); 
     436                        mBillboardCloudUVMapper->setTextureHeight(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureSize()); 
     437                        mBillboardCloudUVMapper->setTextureAtlasWidth(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureAtlasSize()); 
     438                        mBillboardCloudUVMapper->setTextureAtlasHeight(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureAtlasSize()); 
     439                        mBillboardCloudUVMapper->initialize();                   
     440                        mBillboardCloudUVMapper->generateTextureAtlasTextureCoords(false, mSampleConfigFile->getBillboardCloudGroupedBillboards(), mSampleConfigFile->getBillboardCloudGroups());  
     441                         
     442                        mLeaves->getBillboardCloud()->generateBillboardCloudGroups(); 
     443                        //saveBillboardCloudGrouped(); 
     444                        //saveBillboardCloudGroupedXML(); 
     445                } 
     446        } 
     447 
    411448        if (mSampleConfigFile->getBillboardCloudMergedBillboards()) 
    412449        { 
     
    424461                        mBillboardCloudUVMapper->setTextureAtlasHeight(mSampleConfigFile->getBillboardCloudDiffuseColorMergedBillboardsTextureAtlasSize()); 
    425462                        mBillboardCloudUVMapper->initialize(); 
    426  
    427463                        mBillboardCloudUVMapper->generateTextureAtlasTextureCoords(false, mSampleConfigFile->getBillboardCloudGroupedBillboards(), 1);  
     464 
     465                        mLeaves->getBillboardCloud()->generateBillboardCloudGroups(); 
     466                        saveBillboardCloudMerged(); 
     467                        saveBillboardCloudMergedXML(); 
    428468                } 
    429  
    430                 mLeaves->getBillboardCloud()->generateBillboardCloudGroups(); 
    431  
    432                 saveBillboardCloudMerged(); 
    433  
    434         } 
    435  
    436         if (mSampleConfigFile->getBillboardCloudGroupedBillboards()) 
    437         {                                
    438                 mLeaves->getBillboardCloud()->generateBillboardCloud(false); 
    439                 mLeaves->getBillboardCloud()->initializeBillboardCloudGroups(mSampleConfigFile->getBillboardCloudGroups()); 
    440                  
    441                 if (mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureAtlasGeneration()) 
    442                 { 
    443                         mBillboardCloudUVMapper->shutdown(); 
    444                         mBillboardCloudUVMapper->setBillboardCloud(mLeaves->getBillboardCloud()); 
    445                         mBillboardCloudUVMapper->setTextureWidth(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureSize()); 
    446                         mBillboardCloudUVMapper->setTextureHeight(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureSize()); 
    447                         mBillboardCloudUVMapper->setTextureAtlasWidth(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureAtlasSize()); 
    448                         mBillboardCloudUVMapper->setTextureAtlasHeight(mSampleConfigFile->getBillboardCloudDiffuseColorBillboardGroupTextureAtlasSize()); 
    449                         mBillboardCloudUVMapper->initialize(); 
    450                         mBillboardCloudUVMapper->generateTextureAtlasTextureCoords(false, mSampleConfigFile->getBillboardCloudGroupedBillboards(), mSampleConfigFile->getBillboardCloudGroups());  
    451                 } 
    452  
    453                 mLeaves->getBillboardCloud()->generateBillboardCloudGroups(); 
    454  
    455                 saveBillboardCloudGrouped(); 
    456469        } 
    457470 
     
    471484                //} 
    472485                saveBillboardCloudSplitted(); 
    473         } 
    474  
    475         saveBillboardCloudXML(); 
     486                saveBillboardCloudXML(); 
     487        } 
    476488} 
    477489 
Note: See TracChangeset for help on using the changeset viewer.