|
Oolite 1.91.0.7712-251017-85ce217
|
#include "OOMaths.h"Go to the source code of this file.
Functions | |
| Quaternion | quaternion_multiply (Quaternion q1, Quaternion q2) |
| void | quaternion_set_random (Quaternion *quat) |
| Vector | vector_forward_from_quaternion (Quaternion quat) |
| HPVector | HPvector_forward_from_quaternion (Quaternion quat) |
| Vector | vector_up_from_quaternion (Quaternion quat) |
| Vector | vector_right_from_quaternion (Quaternion quat) |
| void | basis_vectors_from_quaternion (Quaternion quat, Vector *outRight, Vector *outUp, Vector *outForward) |
| Quaternion | quaternion_rotation_between (Vector v0, Vector v1) |
| Quaternion | quaternion_rotation_betweenHP (HPVector v0, HPVector v1) |
| Quaternion | quaternion_limited_rotation_between (Vector v0, Vector v1, float maxArc) |
| void | quaternion_rotate_about_x (Quaternion *quat, OOScalar angle) |
| void | quaternion_rotate_about_y (Quaternion *quat, OOScalar angle) |
| void | quaternion_rotate_about_z (Quaternion *quat, OOScalar angle) |
| void | quaternion_rotate_about_axis (Quaternion *quat, Vector axis, OOScalar angle) |
| Vector | quaternion_rotate_vector (Quaternion q, Vector v) |
| HPVector | quaternion_rotate_HPvector (Quaternion q, HPVector v) |
Variables | |
| const Quaternion | kIdentityQuaternion = { 1.0f, 0.0f, 0.0f, 0.0f } |
| const Quaternion | kZeroQuaternion = { 0.0f, 0.0f, 0.0f, 0.0f } |
| void basis_vectors_from_quaternion | ( | Quaternion | quat, |
| Vector * | outRight, | ||
| Vector * | outUp, | ||
| Vector * | outForward ) |
Definition at line 145 of file OOQuaternion.m.
Referenced by Universe::firstEntityTargetedByPlayer, Universe::firstShipHitByLaserFromShip:inDirection:offset:gettingRangeFound:, OOSkyDrawable(OOPrivate)::setUpNebulaeWithColor1:color2:clusterFactor:nebulaHueFix:alpha:scale:, and OOSkyDrawable(OOPrivate)::setUpStarsWithColor1:color2:.
| HPVector HPvector_forward_from_quaternion | ( | Quaternion | quat | ) |
Definition at line 83 of file OOQuaternion.m.
References vector_forward_from_quaternion().
Referenced by DockEntity(OOPrivate)::addShipToShipsOnApproach:, DockEntity::clearDockingCorridor, DockEntity::dockingCorridorIsEmpty, DockEntity::dockingInstructionsForShip:, PlayerEntity::leaveWitchspace, Entity::moveForward:, and DockEntity::setDimensionsAndCorridor:docking:ddc:.
| Quaternion quaternion_limited_rotation_between | ( | Vector | v0, |
| Vector | v1, | ||
| float | maxArc ) |
Definition at line 257 of file OOQuaternion.m.
References EXPECT, and kIdentityQuaternion.
Referenced by VectorRotationTo().
| Quaternion quaternion_multiply | ( | Quaternion | q1, |
| Quaternion | q2 ) |
Definition at line 33 of file OOQuaternion.m.
Referenced by DockEntity(OOPrivate)::addShipToShipsOnApproach:, ShipEntity::applyRoll:andClimb:, ShipEntity::applyRoll:climb:andYaw:, ShipEntity::ballTrackLeadingTarget:atTarget:, DockEntity::clearDockingCorridor, DockEntity::dockingCorridorIsEmpty, DockEntity::dockingInstructionsForShip:, HeadUpDisplay::hudRotateViewpointForVirtualDepth, DockEntity::launchShip:, DockEntity::portUpVectorForShipsBoundingBox:, quaternion_rotate_about_axis(), QuaternionMultiply(), DockEntity::shipIsInDockingCorridor:, and ShipEntity::trackOntoTarget:withDForward:.
| void quaternion_rotate_about_axis | ( | Quaternion * | quat, |
| Vector | axis, | ||
| OOScalar | angle ) |
Definition at line 350 of file OOQuaternion.m.
References quaternion_multiply().
Referenced by ShipEntity::ballTrackLeadingTarget:atTarget:, PlayerEntity::customViewPanDown:, PlayerEntity::customViewPanLeft:, PlayerEntity::customViewPanRight:, PlayerEntity::customViewPanUp:, PlayerEntity::customViewRollLeft:, PlayerEntity::customViewRollRight:, PlayerEntity::customViewRotateDown:, PlayerEntity::customViewRotateLeft:, PlayerEntity::customViewRotateRight:, PlayerEntity::customViewRotateUp:, Universe::firstEntityTargetedByPlayer, Universe::firstShipHitByLaserFromShip:inDirection:offset:gettingRangeFound:, HeadUpDisplay::hudRotateViewpointForVirtualDepth, PlanetEntity::initFromDictionary:withAtmosphere:andSeed:, OOLaserShotEntity::initLaserFromShip:direction:offset:, DockEntity::launchShip:, PlayerEntity(OOControlsPrivate)::pollCustomViewControls, QuaternionRotate(), OOSkyDrawable(OOPrivate)::setUpNebulaeWithColor1:color2:clusterFactor:nebulaHueFix:alpha:scale:, and PlanetEntity::update:.
| void quaternion_rotate_about_x | ( | Quaternion * | quat, |
| OOScalar | angle ) |
Definition at line 293 of file OOQuaternion.m.
Referenced by Entity::applyRoll:andClimb:, PlayerEntity::applyRoll:andClimb:, ShipEntity::applyRoll:andClimb:, Entity::applyRoll:climb:andYaw:, ShipEntity::applyRoll:climb:andYaw:, and QuaternionRotateX().
| void quaternion_rotate_about_y | ( | Quaternion * | quat, |
| OOScalar | angle ) |
Definition at line 312 of file OOQuaternion.m.
Referenced by Entity::applyRoll:climb:andYaw:, ShipEntity::applyRoll:climb:andYaw:, PlayerEntity::applyYaw:, QuaternionRotateY(), and Universe::update:.
| void quaternion_rotate_about_z | ( | Quaternion * | quat, |
| OOScalar | angle ) |
Definition at line 331 of file OOQuaternion.m.
Referenced by Entity::applyRoll:andClimb:, PlayerEntity::applyRoll:andClimb:, ShipEntity::applyRoll:andClimb:, Entity::applyRoll:climb:andYaw:, ShipEntity::applyRoll:climb:andYaw:, and QuaternionRotateZ().
| HPVector quaternion_rotate_HPvector | ( | Quaternion | q, |
| HPVector | v ) |
Definition at line 401 of file OOQuaternion.m.
Referenced by VectorRotateBy().
| Vector quaternion_rotate_vector | ( | Quaternion | q, |
| Vector | v ) |
Definition at line 385 of file OOQuaternion.m.
Referenced by ShipEntity::absoluteTractorPosition, ShipEntity::ballTrackLeadingTarget:atTarget:, ShipEntity::becomeExplosion, PlayerEntity::breakPatternPosition, ShipEntity(Private)::coordinatesForEscortPosition:, ShipEntity::dumpItem:, ShipEntity::fireMissileWithIdentifier:andTarget:, PlayerEntity::lookingAtSunWithThresholdAngleCos:, and ShipEntity::throwSparks.
| Quaternion quaternion_rotation_between | ( | Vector | v0, |
| Vector | v1 ) |
Definition at line 195 of file OOQuaternion.m.
References EXPECT, kBasisZVector, and kIdentityQuaternion.
Referenced by ShipEntity::dumpItem:, ShipEntity::fireDirectLaserShotAt:, Universe::spawnShip:, ShipEntity::trackOntoTarget:withDForward:, and VectorRotationTo().
| Quaternion quaternion_rotation_betweenHP | ( | HPVector | v0, |
| HPVector | v1 ) |
Definition at line 226 of file OOQuaternion.m.
References EXPECT, kBasisZHPVector, and kIdentityQuaternion.
| void quaternion_set_random | ( | Quaternion * | quat | ) |
Definition at line 46 of file OOQuaternion.m.
References Ranrot().
Referenced by Universe::addShips:withRole:atPosition:withCoordinateSystem:, Universe::addWreckageFrom:withRole:at:scale:lifetime:, ShipEntity::becomeExplosion, WormholeEntity::disgorgeShips, ShipEntity::dumpItem:, ShipEntity::launchCascadeMine, PlanetEntity::launchShuttle, PlayerEntity::leaveWitchspace, ShipEntity::leaveWitchspace, ShipEntity::releaseCargoPodsDebris, ShipEntity(PureAI)::setDestinationWithinTarget, Universe::setUpUniverseFromStation, Universe::setUpWitchspaceBetweenSystem:andSystem:, and Universe::spawnShipWithRole:near:.
| Vector vector_forward_from_quaternion | ( | Quaternion | quat | ) |
Definition at line 57 of file OOQuaternion.m.
Referenced by ShipEntity::ballTrackLeadingTarget:atTarget:, StationEntity::beaconPosition, DockEntity::clearDockingCorridor, WormholeEntity::disgorgeShips, EntityGetProperty(), ShipEntity::fireDirectLaserShotAt:, ShipEntity::fireLaserShotInDirection:weaponIdentifier:, ShipEntity::fireSubentityLaserShot:, ShipEntity::fireTurretCannon:, OOExhaustPlumeEntity(Private)::frameAtTime:fromFrame:, HPvector_forward_from_quaternion(), OOLaserShotEntity::initLaserFromShip:direction:offset:, DockEntity::isOffCentre, DockEntity::launchShip:, PlanetEntity::launchShuttle, ShipEntity::leaveWitchspace, PlayerEntity(LoadSave)::loadPlayerFromFile:asNew:, OOVisualEffectEntity::orientationChanged, ShipEntity::orientationChanged, ShipEntity::positionOffsetForShipInRotationToAlignment, QuaternionVectorForward(), PlayerEntity::setCustomViewData, ShipEntity(PureAI)::setDestinationWithinTarget, Universe::setUpBreakPattern:orientation:forDocking:, Universe::setUpUniverseFromStation, DockEntity::shipIsInDockingCorridor:, Universe::spawnShipWithRole:near:, and ShipEntity::trackPrimaryTarget:delta_t:.
| Vector vector_right_from_quaternion | ( | Quaternion | quat | ) |
Definition at line 117 of file OOQuaternion.m.
Referenced by WormholeEntity::disgorgeShips, PlayerEntity(LoadSave)::loadPlayerFromFile:asNew:, OOVisualEffectEntity::orientationChanged, ShipEntity::orientationChanged, DockEntity::portUpVectorForShipsBoundingBox:, ShipEntity::positionOffsetForShipInRotationToAlignment, QuaternionVectorRight(), PlayerEntity::setCustomViewData, OOSkyDrawable(OOPrivate)::setUpNebulaeWithColor1:color2:clusterFactor:nebulaHueFix:alpha:scale:, DockEntity::shipIsInDockingCorridor:, and ShipEntity::trackPrimaryTarget:delta_t:.
| Vector vector_up_from_quaternion | ( | Quaternion | quat | ) |
Definition at line 89 of file OOQuaternion.m.
Referenced by WormholeEntity::disgorgeShips, HeadUpDisplay::hudRotateViewpointForVirtualDepth, PlanetEntity(OOPrivate)::initAsAtmosphereForPlanet:dictionary:, PlanetEntity::initFromDictionary:withAtmosphere:andSeed:, OOLaserShotEntity::initLaserFromShip:direction:offset:, PlayerEntity(LoadSave)::loadPlayerFromFile:asNew:, OOVisualEffectEntity::orientationChanged, ShipEntity::orientationChanged, DockEntity::portUpVectorForShipsBoundingBox:, ShipEntity::positionOffsetForShipInRotationToAlignment, QuaternionVectorUp(), PlayerEntity::setCustomViewData, PlanetEntity::setOrientation:, OOSkyDrawable(OOPrivate)::setUpNebulaeWithColor1:color2:clusterFactor:nebulaHueFix:alpha:scale:, DockEntity::shipIsInDockingCorridor:, and ShipEntity::trackPrimaryTarget:delta_t:.
| const Quaternion kIdentityQuaternion = { 1.0f, 0.0f, 0.0f, 0.0f } |
Definition at line 29 of file OOQuaternion.m.
Referenced by PlayerEntity::applyRoll:andClimb:, ShipEntity::applyRoll:andClimb:, ShipEntity::applyRoll:climb:andYaw:, ShipEntity::ballTrackLeadingTarget:atTarget:, ShipEntity::dumpItem:, Entity::init, OOLaserShotEntity::initLaserFromShip:direction:offset:, PlayerShipSetCustomView(), quaternion_limited_rotation_between(), quaternion_rotation_between(), quaternion_rotation_betweenHP(), QuaternionConstruct(), OOExhaustPlumeEntity::resetPlume, ShipEntity(LoadRestore)::savedShipDictionaryWithContext:, OOWaypointEntity::setOrientation:, ShipEntity::setUpShipFromDictionary:, OOVisualEffectEntity::setUpVisualEffectFromDictionary:, ShipEntity::update:, Universe::update:, OOShipRegistry(OODataLoader)::validateNewStyleStandardSubentityDeclaration:forShip:fatalError:, Verify_Quaternion(), and WaypointGetProperty().
| const Quaternion kZeroQuaternion = { 0.0f, 0.0f, 0.0f, 0.0f } |
Definition at line 30 of file OOQuaternion.m.
Referenced by PlayerEntity::applyRoll:andClimb:, JSObjectGetQuaternion(), OOWaypointEntity::setOrientation:, ShipEntity::update:, Verify_Quaternion(), and WaypointGetProperty().