Changeset 10036 for code/branches/modularships/src/orxonox/worldentities
- Timestamp:
- Apr 17, 2014, 3:41:17 PM (11 years ago)
- Location:
- code/branches/modularships/src/orxonox/worldentities/pawns
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/modularships/src/orxonox/worldentities/pawns/ModularSpaceShip.cc
r10033 r10036 42 42 #include "collisionshapes/WorldEntityCollisionShape.h" 43 43 #include <BulletCollision/CollisionShapes/btCollisionShape.h> 44 #include <BulletCollision/CollisionShapes/btCompoundShape.h> 44 45 45 46 … … 126 127 127 128 this->partMap_[entity] = part; 129 130 //This adds a list of SmartPointers for all StaticEntities which have a ShipPart, preventing them from getting deleted. Hopefully. 131 SmartPtr<StaticEntity> newSmartPtr = entity; 132 SmartPtr<StaticEntity>* one = &newSmartPtr; 133 this->entityPtrList_.push_back(one); 134 135 this->createCSPtrList(this->getWorldEntityCollisionShape()); 136 128 137 orxout() << "New entity-part assignment created!" << endl; 138 } 139 140 // This should add smartPointers to all (Orxonox)Collisionshapes of this SpaceShip, preventing them fromg etting deleted. Might not work due to weird acting getAttachedShape 141 void ModularSpaceShip::createCSPtrList(CompoundCollisionShape* cs) 142 { 143 for (int i=0; i < cs->getNumChildShapes(); i++) 144 { 145 146 if (!orxonox_cast<CompoundCollisionShape*>(cs->getAttachedShape(i))) 147 { 148 SmartPtr<CollisionShape> newSmartPtr = cs->getAttachedShape(i); 149 SmartPtr<CollisionShape>* one = &newSmartPtr; 150 this->csPtrList_.push_back(one); 151 } 152 153 if (orxonox_cast<CompoundCollisionShape*>(cs->getAttachedShape(i))) 154 createCSPtrList((CompoundCollisionShape*)(cs->getAttachedShape(i))); 155 156 } 129 157 } 130 158 -
code/branches/modularships/src/orxonox/worldentities/pawns/ModularSpaceShip.h
r10033 r10036 122 122 virtual void updatePartAssignment(); 123 123 124 void createCSPtrList(CompoundCollisionShape* cs); 125 124 126 protected: 125 127 … … 128 130 void registerVariables(); 129 131 std::vector<ShipPart*> partList_; // The list of all Parts mounted on this ModularSpaceShip. 132 std::vector<SmartPtr<StaticEntity>*> entityPtrList_; 133 std::vector<SmartPtr<CollisionShape>*> csPtrList_; 130 134 std::map<StaticEntity*, ShipPart*> partMap_; 131 135
Note: See TracChangeset
for help on using the changeset viewer.