Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 4966 in orxonox.OLD for orxonox


Ignore:
Timestamp:
Jul 28, 2005, 5:53:15 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: Turret is fixed onto the ship as it should.
TestGun fires staight again
PNode now know getParent(), as this is a quite usefull function
Vector still has an error in the getNormalized function, and i am not able to determine the cause of this

Location:
orxonox/trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/lib/coord/p_node.h

    r4836 r4966  
    9797  void setParent (PNode* parent);
    9898  void setParent (const char* name);
     99  /** @returns the parent of this PNode */
     100  PNode* getParent () const { return this->parent; };
    99101
    100102  void setParentMode (PARENT_MODE parentMode);
  • orxonox/trunk/src/lib/math/vector.cc

    r4836 r4966  
    2929/**
    3030 *  returns the this-vector normalized to length 1.0
     31 * @todo there is some error in this function, that i could not resolve. it just does not, what it is supposed to do.
    3132*/
    3233Vector Vector::getNormalized() const
    3334{
    34   float l = len();
    35   if(unlikely(l != 1.0))
    36     {
    37       return *this;
    38     }
    39   else if(unlikely(l == 0.0))
    40     {
    41       return *this;
    42     }
    43 
    44   return *this / l;
     35  float l = this->len();
     36  if(unlikely(l == 1.0 || l == 0.0))
     37    return *this;
     38  else
     39    return (*this / l);
    4540}
    4641
  • orxonox/trunk/src/lib/math/vector.h

    r4897 r4966  
    5454  inline const Vector& operator*= (float f) { this->x *= f; this->y *= f; this->z *= f; return *this; };
    5555  /** @param f a factor to divide the vector with @returns the vector divided by f (this / f) */
    56   inline Vector operator/ (float f) const {if (unlikely(f == 0.0)) return Vector(0,0,0); else return Vector(this->x / f, this->y / f, this->z / f); };
     56  inline Vector operator/ (float f) const {return (unlikely(f == 0.0))?Vector(0,0,0):Vector(this->x / f, this->y / f, this->z / f); };
    5757  /** @param f a factor to divide the vector with @returns the vector divided by f (this /= f) */
    5858  inline const Vector& operator/= (float f) {if (unlikely(f == 0.0)) {this->x=0;this->y=0;this->z=0;} else {this->x /= f; this->y /= f; this->z /= f;} return *this; };
  • orxonox/trunk/src/world_entities/weapons/test_gun.cc

    r4959 r4966  
    160160  Projectile* pj =  dynamic_cast<Projectile*>(this->getProjectileFactory()->resurrect());
    161161
     162/*
    162163  PNode* target = this->getWeaponManager()->getFixedTarget();
    163 
    164164  if (target != NULL)
    165165  {
    166166    pj->setVelocity(this->getVelocity()+(target->getAbsCoor() - this->getAbsCoor())*.5);//this->getVelocity());
    167167  }
    168   else
    169     pj->setVelocity(target->getVelocity());
    170 
     168  else*/
     169  pj->setVelocity(this->getVelocity() + this->getAbsDir().apply(Vector(1,0,0))*20);
    171170
    172171  pj->setAbsCoor(this->getEmissionPoint());
  • orxonox/trunk/src/world_entities/weapons/turret.cc

    r4965 r4966  
    9393  Vector direction = this->getWeaponManager()->getFixedTarget()->getAbsCoor() - this->getAbsCoor();
    9494  direction.normalize();
    95   Quaternion quat = Quaternion(direction, Vector(0,1,0)) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
     95  Quaternion quat = Quaternion(direction, this->getParent()->getAbsDir().apply(Vector(0,1,0))) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
    9696
    9797  this->setAbsDir(quat);
Note: See TracChangeset for help on using the changeset viewer.