Ignore:
Timestamp:
03/31/06 17:29:32 (19 years ago)
Author:
igarcia
Message:
 
File:
1 edited

Legend:

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

    r709 r721  
    66BillboardCloud::BillboardCloud()  
    77{ 
    8         mEntity = new Entity(); 
     8        //mEntity = new Entity(); 
     9        mEntity = 0; 
    910} 
    1011 
    1112BillboardCloud::~BillboardCloud()  
    1213{ 
    13         for (unsigned int iBillboard = 0; iBillboard < getNumBillboards(); iBillboard++) 
    14         { 
    15                 Billboard *billboard = getBillboard(iBillboard); 
    16                 delete billboard; 
    17         } 
    18  
    19         for (unsigned int iBillboardGroup = 0; iBillboardGroup < getNumBillboardGroups(); iBillboardGroup++) 
    20         { 
    21                 BillboardGroup *billboardGroup = getBillboardGroup(iBillboardGroup); 
    22                 delete billboardGroup; 
    23         } 
    24  
    25         delete mEntity; 
    26 } 
    27  
    28 std::vector<Billboard*>* BillboardCloud::getBillboardList()  
     14 
     15} 
     16 
     17std::vector<BillboardPtr>* BillboardCloud::getBillboardList()  
    2918{ 
    3019        return &mBillboardList; 
    3120} 
    3221 
    33 void BillboardCloud::setBillboardList(std::vector<Billboard*> &value)  
     22void BillboardCloud::setBillboardList(std::vector<BillboardPtr> &value)  
    3423{ 
    3524        mBillboardList = value; 
     
    4130} 
    4231 
    43 void BillboardCloud::addBillboard(Billboard *value)  
     32void BillboardCloud::addBillboard(BillboardPtr value)  
    4433{ 
    4534        value->setBillboardHandle((unsigned int)(mBillboardList.size()));        
     
    4938void BillboardCloud::removeBillboard(unsigned int value)  
    5039{ 
    51         Billboard *billboard = mBillboardList[value]; 
     40        BillboardPtr billboard = mBillboardList[value]; 
    5241        mBillboardList.erase(mBillboardList.begin() + value); 
    53         delete billboard; 
    54 } 
    55  
    56 Billboard* BillboardCloud::getBillboard(unsigned int value)  
     42} 
     43 
     44BillboardPtr BillboardCloud::getBillboard(unsigned int value)  
    5745{ 
    5846        return mBillboardList[value]; 
    5947} 
    6048 
    61 Entity* BillboardCloud::getEntity()  
     49EntityPtr BillboardCloud::getEntity()  
    6250{ 
    6351        return mEntity; 
    6452} 
    6553 
    66 void BillboardCloud::setEntity(Entity *value)  
     54void BillboardCloud::setEntity(EntityPtr value)  
    6755{ 
    6856        mEntity = value; 
     
    7159void BillboardCloud::generateBillboardCloud(bool mergeBillboards) 
    7260{ 
    73         if (mEntity != NULL) 
    74         { 
    75                 delete mEntity; 
    76                 mEntity = new Entity(); 
    77         } 
     61        mEntity = EntityPtr(new Entity()); 
    7862 
    7963        unsigned int numGeneratedBillboardClouds = 0; 
    8064        for (unsigned int iBillboard = 0; iBillboard < getNumBillboards(); iBillboard++) 
    8165        { 
    82                 Billboard *billboard = this->getBillboard(iBillboard);           
    83                 EntityCluster *entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
     66                BillboardPtr billboard = this->getBillboard(iBillboard);                 
     67                EntityClusterPtr entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
    8468 
    8569                if (entityCluster->getNumEntitiesClusterData() > 0) 
    8670                {                
    87                         SubEntity *subEntity;                    
     71                        SubEntityPtr subEntity;                  
    8872                        if (mergeBillboards) 
    8973                        { 
     
    157141        while (getNumBillboardGroups() > 0) 
    158142        { 
    159                 BillboardGroup *billboardGroup = getBillboardGroup(getNumBillboardGroups()-1); 
     143                BillboardGroupPtr billboardGroup = getBillboardGroup(getNumBillboardGroups()-1); 
    160144                removeBillboardGroup(getNumBillboardGroups()-1); 
    161145        } 
     
    166150        for (iBillboardGroup = 0; iBillboardGroup < numberGroups; iBillboardGroup++) 
    167151        { 
    168                 BillboardGroup *billboardGroup = new BillboardGroup(); 
     152                BillboardGroupPtr billboardGroup = BillboardGroupPtr( new BillboardGroup() ); 
    169153                addBillboardGroup(billboardGroup); 
    170154        } 
    171155 
    172156        Ogre::LogManager::getSingleton().logMessage("New.Num.Billboard Groups:" + Ogre::StringConverter::toString(getNumBillboardGroups())); 
    173         std::cin.get(); 
    174         std::cin.get(); 
    175157 
    176158        unsigned int numGeneratedBillboardClouds = 0; 
    177159        for (unsigned int iBillboard = 0; iBillboard < getNumBillboards(); iBillboard++) 
    178160        { 
    179                 Billboard *billboard = this->getBillboard(iBillboard);           
    180                 EntityCluster *entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
     161                BillboardPtr billboard = this->getBillboard(iBillboard);                 
     162                EntityClusterPtr entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
    181163 
    182164                if (entityCluster->getNumEntitiesClusterData() > 0) 
     
    197179        for (unsigned int iBillboard = 0; iBillboard < getNumBillboards(); iBillboard++) 
    198180        { 
    199                 Billboard *billboard = this->getBillboard(iBillboard);           
    200                 EntityCluster *entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
     181                BillboardPtr billboard = this->getBillboard(iBillboard);                 
     182                EntityClusterPtr entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
    201183 
    202184                if (entityCluster->getNumEntitiesClusterData() > 0) 
     
    229211void BillboardCloud::generateBillboardCloudGroups() 
    230212{ 
    231         SubEntity *subEntityGroup; 
    232         SubEntity *subEntity; 
    233         Entity *entity = new Entity(); 
     213        SubEntityPtr subEntityGroup; 
     214        SubEntityPtr subEntity; 
     215        EntityPtr entity = EntityPtr(new Entity()); 
    234216        unsigned int numGeneratedBillboardClouds = 0; 
    235217 
     
    244226                subEntityGroup = entity->getSubEntity(iBillboardGroup); 
    245227 
    246                 BillboardGroup *billboardGroup = this->getBillboardGroup(iBillboardGroup); 
     228                BillboardGroupPtr billboardGroup = this->getBillboardGroup(iBillboardGroup); 
    247229 
    248230                Ogre::LogManager::getSingleton().logMessage("BBCG-Num.Billboards:" + Ogre::StringConverter::toString(billboardGroup->getNumBillboards())); 
    249                 std::cin.get(); 
    250                 std::cin.get(); 
    251231 
    252232                for (unsigned int iBillboard = 0; iBillboard < billboardGroup->getNumBillboards(); iBillboard++) 
    253233                { 
    254234                        unsigned int billboardHandle = billboardGroup->getBillboardHandle(iBillboard); 
    255                         Billboard *billboard = this->getBillboard(billboardHandle); 
    256                         EntityCluster *entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
     235                        BillboardPtr billboard = this->getBillboard(billboardHandle); 
     236                        EntityClusterPtr entityCluster = billboard->getBillboardClusterData()->getEntityCluster(); 
    257237 
    258238                        if (entityCluster->getNumEntitiesClusterData() > 0) 
     
    318298        }        
    319299 
    320         delete mEntity; 
    321300        mEntity = entity; 
    322301        entity->setSubEntitiesDistinctVertexColours(); 
     
    328307} 
    329308 
    330 BillboardGroup* BillboardCloud::getBillboardGroup(unsigned int iBillboardGroup) 
     309BillboardGroupPtr BillboardCloud::getBillboardGroup(unsigned int iBillboardGroup) 
    331310{ 
    332311        return mBillboardGroupList[iBillboardGroup]; 
    333312} 
    334313 
    335 void BillboardCloud::addBillboardGroup(BillboardGroup *value)  
     314void BillboardCloud::addBillboardGroup(BillboardGroupPtr value)  
    336315{ 
    337316        mBillboardGroupList.push_back(value); 
     
    340319void BillboardCloud::removeBillboardGroup(unsigned int value)  
    341320{ 
    342         BillboardGroup *billboardGroup = mBillboardGroupList[value]; 
     321        BillboardGroupPtr billboardGroup = mBillboardGroupList[value]; 
    343322        mBillboardGroupList.erase(mBillboardGroupList.begin() + value); 
    344         delete billboardGroup; 
    345 } 
    346  
    347 } 
     323} 
     324 
     325} 
Note: See TracChangeset for help on using the changeset viewer.