positioning


             
              position[0]      = position[0] + direction[0]*speed;
              position[1]      = position[1] + direction[1]*speed;
              position[2]      = position[2] + direction[2]*speed;
              position_changed = position;
  
              // updates
              rotA  = new SFRotation(defDirection,direction);
              up    = rotA.multVec(yAxis);
              rotB  = new SFRotation(direction.cross(up),
                                     direction.cross(yAxis));
              orientation         = rotA.multiply(rotB);
              orientation_changed = orientation;
          }
     "
  }