![]() |
Oolite 1.91.0.7650-250121-affa790
|
#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().