- Timestamp:
- Dec 15, 2008, 4:33:50 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentation/src/orxonox/objects/worldentities/WorldEntity.cc
r2465 r2466 85 85 this->angularDamping_ = 0; 86 86 this->friction_ = 0.5; 87 this->bCollisionCallbackActive_ = false; 87 88 88 89 this->registerVariables(); … … 144 145 registerVariable(this->getScale3D(), variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::scaleChanged)); 145 146 146 registerVariable((int&)this->collisionTypeSynchronised_, 147 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionTypeChanged)); 147 // Physics stuff 148 148 registerVariable(this->mass_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::massChanged)); 149 149 registerVariable(this->restitution_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::restitutionChanged)); … … 152 152 registerVariable(this->angularDamping_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::angularDampingChanged)); 153 153 registerVariable(this->friction_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::frictionChanged)); 154 registerVariable(this->bCollisionCallbackActive_, 155 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionCallbackActivityChanged)); 156 registerVariable((int&)this->collisionTypeSynchronised_, 157 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::collisionTypeChanged)); 154 158 registerVariable(this->bPhysicsActiveSynchronised_, 155 159 variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::physicsActivityChanged)); 156 160 161 // Attach to parent if necessary 157 162 registerVariable(this->parentID_, variableDirection::toclient, new NetworkCallback<WorldEntity>(this, &WorldEntity::parentChanged)); 158 163 } … … 192 197 else 193 198 this->deactivatePhysics(); 199 } 200 201 void WorldEntity::collisionCallbackActivityChanged() 202 { 203 if (this->hasPhysics()) 204 { 205 if (bCollisionCallbackActive_) 206 this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() | 207 btCollisionObject::CF_CUSTOM_MATERIAL_CALLBACK); 208 else 209 this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & 210 !btCollisionObject::CF_CUSTOM_MATERIAL_CALLBACK); 211 } 194 212 } 195 213 … … 525 543 recalculateMassProps(); 526 544 resetPhysicsProps(); 545 collisionCallbackActivityChanged(); 527 546 activatePhysics(); 528 547 }
Note: See TracChangeset
for help on using the changeset viewer.