- Timestamp:
- Nov 13, 2009, 11:21:40 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/steering/src/orxonox/weaponsystem/WeaponMode.cc
r5929 r6055 32 32 #include "core/CoreIncludes.h" 33 33 #include "core/XMLPort.h" 34 #include "controllers/Controller.h" 35 #include "worldentities/pawns/Pawn.h" 34 36 35 37 #include "Munition.h" … … 194 196 } 195 197 196 Vector3 WeaponMode::getMuzzlePosition() const198 void WeaponMode::computeMuzzleParameters() 197 199 { 198 200 if (this->weapon_) 199 return (this->weapon_->getWorldPosition() + this->weapon_->getWorldOrientation() * this->muzzleOffset_); 200 else 201 return this->muzzleOffset_; 202 } 203 204 const Quaternion& WeaponMode::getMuzzleOrientation() const 201 { 202 this->muzzlePosition_ = this->weapon_->getWorldPosition() + this->weapon_->getWorldOrientation() * this->muzzleOffset_; 203 204 Controller* controller = this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getController(); 205 if (controller->canFindTarget()) 206 { 207 Vector3 muzzleDirection(controller->getTarget() - this->muzzlePosition_); 208 this->muzzleOrientation_ = this->weapon_->getWorldOrientation() * (this->weapon_->getWorldOrientation() * WorldEntity::FRONT).getRotationTo(muzzleDirection); 209 } 210 else 211 this->muzzleOrientation_ = this->weapon_->getWorldOrientation(); 212 } 213 else 214 { 215 this->muzzlePosition_ = this->muzzleOffset_; 216 this->muzzleOrientation_ = Quaternion::IDENTITY; 217 } 218 } 219 220 Vector3 WeaponMode::getMuzzleDirection() const 205 221 { 206 222 if (this->weapon_) 207 return this->weapon_->getWorldOrientation(); 208 else 209 return Quaternion::IDENTITY; 210 } 211 212 Vector3 WeaponMode::getMuzzleDirection() const 213 { 214 if (this->weapon_) 215 return (this->weapon_->getWorldOrientation() * WorldEntity::FRONT); 223 return (this->getMuzzleOrientation() * WorldEntity::FRONT); 216 224 else 217 225 return WorldEntity::FRONT;
Note: See TracChangeset
for help on using the changeset viewer.