Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 4998 in orxonox.OLD for orxonox/trunk/src/lib/coord/p_node.cc


Ignore:
Timestamp:
Aug 13, 2005, 7:19:51 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: more optimizations of the Quaternion Class.
Now the 3D-rotation is much faster through this code:

Vector tmpRot = this→getAbsDir().getSpacialAxis();
glRotatef (this→getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );

instead of the old Matrix-approach. furthermore glRotate is optimized much better in openGL as is clearly stated in the red book

also implemented some other really useless functions for Quaternion

File:
1 edited

Legend:

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

    r4997 r4998  
    327327}
    328328
    329 
    330329/**
    331330 *  sets the absolute direction (0,0,1)
     
    543542      if (unlikely(this->toDirection != NULL))
    544543      {
    545         Quaternion rotQuat = (*this->toDirection / this->getRelDir()) *dt*bias;
    546         rotQuat.debug();
    547 //        if (likely(rotQuat.len() >= .001))
     544        Quaternion rotQuat = Quaternion(.1, Vector(0,1,0));// (*this->toDirection / this->relDirection);
     545//         printf("1: ");
     546//         this->relDirection.debug();
     547//         printf("2: ");
     548//         this->toDirection->debug();
     549//         printf("3: ");
     550//         rotQuat.debug();
     551
     552        if (true)//likely(rotQuat.len() >= .001))
    548553        {
    549554          this->shiftDir(rotQuat);
    550555        }
    551 /*        else
     556        else
    552557        {
    553558          delete this->toCoordinate;
    554559          this->toCoordinate = NULL;
    555560          PRINTF(5)("SmoothMove of %s finished\n", this->getName());
    556         }*/
     561        }
    557562      }
    558563
     
    664669  glMatrixMode(GL_MODELVIEW);
    665670  glPushMatrix();
    666   float matrix[4][4];
    667671
    668672  /* translate */
     
    671675                this->getAbsCoor ().z);
    672676  /* rotate */
    673   this->getAbsDir ().matrix (matrix);
    674   glMultMatrixf((float*)matrix);
     677//  this->getAbsDir ().matrix (matrix);
     678//  glMultMatrixf((float*)matrix);
     679
     680  Vector tmpRot = this->getAbsDir().getSpacialAxis();
     681  glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
    675682  {
    676683    glBegin(GL_LINE_STRIP);
Note: See TracChangeset for help on using the changeset viewer.