Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 4, 2007, 12:57:01 AM (17 years ago)
Author:
landauf
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • data/contentcreation/pps/FabianLandau/mover/environments/mover_station_list.cc

    r4844 r4855  
    236236}
    237237
    238 Quaternion MoverStationList::getTotalRelDir(MoverStation *station)
     238Vector MoverStationList::getTotalRelDir(MoverStation *station)
    239239{
    240240    MoverStationListElement *temp = this->first;
    241     Quaternion totalRelDir = Quaternion(0, Vector(0, 0, 0));
     241    Vector totalRelDir = Vector(0, 0, 0);
    242242   
    243243    if (station)
     
    247247            while (temp != 0)
    248248            {
    249                 totalRelDir *= temp->station->relTargetDir;
     249                totalRelDir += temp->station->relTargetDir;
    250250                if (temp->station == station)
    251251                    break;
     
    260260                while (temp->next != 0)
    261261                {
    262                     totalRelDir *= temp->next->station->relTargetDir;
     262                    totalRelDir += temp->next->station->relTargetDir;
    263263                    if (temp->next->station == station)
    264264                        break;
     
    336336}
    337337
    338 Quaternion MoverStationList::getRelTargetDir(MoverStation *station)
     338Vector MoverStationList::getRelTargetDir(MoverStation *station)
    339339{
    340340    if (station)
     
    345345                return station->relTargetDir;
    346346            else
    347                 return station->relTargetDir.inverse();
     347                return station->relTargetDir * -1;
    348348        }
    349349        else
     
    354354            {
    355355                if (this->goForward)
    356                     return (station->relTargetDir / this->getTotalRelDir(moveToStation)).inverse();
     356                    return (station->relTargetDir - this->getTotalRelDir(moveToStation)) * -1;
    357357                else
    358                     return (station->relTargetDir / this->getTotalRelDir(moveToStation));
    359             }
    360         }
    361     }
    362    
    363     return Quaternion(0, Vector(0, 0, 0));
     358                    return station->relTargetDir - this->getTotalRelDir(moveToStation);
     359            }
     360        }
     361    }
     362   
     363    return Vector(0, 0, 0);
    364364}
    365365
    366366Vector MoverStationList::getVelocity(MoverStation *station)
    367367{
    368     Vector velocity = Vector(0, 0, 0);
    369 
    370368    if (station)
    371369        if (station->movingTime != 0)
    372             velocity = this->getRelTargetCoor(station) / station->movingTime;
    373 
    374     return velocity;
    375 }
    376 
    377 Quaternion MoverStationList::getRotation(MoverStation *station)
    378 {
    379     Quaternion rotation = Quaternion(0, Vector(0, 0, 0));
    380 
     370            return this->getRelTargetCoor(station) / station->movingTime;
     371
     372    return Vector(0, 0, 0);
     373}
     374
     375Vector MoverStationList::getRotation(MoverStation *station)
     376{
    381377    if (station)
    382378        if (station->movingTime != 0)
    383             rotation = Quaternion(this->getRelTargetDir(station).w / station->movingTime, this->getRelTargetDir(station).v);
    384 
    385     return rotation;
     379            return this->getRelTargetDir(station) / station->movingTime;
     380
     381    return Vector(0, 0, 0);
    386382}
    387383
Note: See TracChangeset for help on using the changeset viewer.