- Timestamp:
- Jun 4, 2007, 12:57:01 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
data/contentcreation/pps/FabianLandau/mover/environments/mover_station_list.cc
r4844 r4855 236 236 } 237 237 238 QuaternionMoverStationList::getTotalRelDir(MoverStation *station)238 Vector MoverStationList::getTotalRelDir(MoverStation *station) 239 239 { 240 240 MoverStationListElement *temp = this->first; 241 Quaternion totalRelDir = Quaternion(0, Vector(0, 0, 0));241 Vector totalRelDir = Vector(0, 0, 0); 242 242 243 243 if (station) … … 247 247 while (temp != 0) 248 248 { 249 totalRelDir *= temp->station->relTargetDir;249 totalRelDir += temp->station->relTargetDir; 250 250 if (temp->station == station) 251 251 break; … … 260 260 while (temp->next != 0) 261 261 { 262 totalRelDir *= temp->next->station->relTargetDir;262 totalRelDir += temp->next->station->relTargetDir; 263 263 if (temp->next->station == station) 264 264 break; … … 336 336 } 337 337 338 QuaternionMoverStationList::getRelTargetDir(MoverStation *station)338 Vector MoverStationList::getRelTargetDir(MoverStation *station) 339 339 { 340 340 if (station) … … 345 345 return station->relTargetDir; 346 346 else 347 return station->relTargetDir .inverse();347 return station->relTargetDir * -1; 348 348 } 349 349 else … … 354 354 { 355 355 if (this->goForward) 356 return (station->relTargetDir / this->getTotalRelDir(moveToStation)).inverse();356 return (station->relTargetDir - this->getTotalRelDir(moveToStation)) * -1; 357 357 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); 364 364 } 365 365 366 366 Vector MoverStationList::getVelocity(MoverStation *station) 367 367 { 368 Vector velocity = Vector(0, 0, 0);369 370 368 if (station) 371 369 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 375 Vector MoverStationList::getRotation(MoverStation *station) 376 { 381 377 if (station) 382 378 if (station->movingTime != 0) 383 r otation = 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); 386 382 } 387 383
Note: See TracChangeset
for help on using the changeset viewer.