.. default-domain:: cpp .. highlight:: cpp .. namespace:: krpc::services::SpaceCenter ReferenceFrame ============== .. class:: ReferenceFrame Represents a reference frame for positions, rotations and velocities. Contains: * The position of the origin. * The directions of the x, y and z axes. * The linear velocity of the frame. * The angular velocity of the frame. .. note:: This class does not contain any properties or methods. It is only used as a parameter to other functions. .. function:: static ReferenceFrame create_relative(Client& connection, ReferenceFrame reference_frame, std::tuple position = std::tuple(0.0, 0.0, 0.0), std::tuple rotation = std::tuple(0.0, 0.0, 0.0, 1.0), std::tuple velocity = std::tuple(0.0, 0.0, 0.0), std::tuple angular_velocity = std::tuple(0.0, 0.0, 0.0)) Create a relative reference frame. This is a custom reference frame whose components offset the components of a parent reference frame. :Parameters: * **reference_frame** -- The parent reference frame on which to base this reference frame. * **position** -- The offset of the position of the origin, as a position vector. Defaults to :math:`(0, 0, 0)` * **rotation** -- The rotation to apply to the parent frames rotation, as a quaternion of the form :math:`(x, y, z, w)`. Defaults to :math:`(0, 0, 0, 1)` (i.e. no rotation) * **velocity** -- The linear velocity to offset the parent frame by, as a vector pointing in the direction of travel, whose magnitude is the speed in meters per second. Defaults to :math:`(0, 0, 0)`. * **angular_velocity** -- The angular velocity to offset the parent frame by, as a vector. This vector points in the direction of the axis of rotation, and its magnitude is the speed of the rotation in radians per second. Defaults to :math:`(0, 0, 0)`. .. function:: static ReferenceFrame create_hybrid(Client& connection, ReferenceFrame position, ReferenceFrame rotation = ReferenceFrame(), ReferenceFrame velocity = ReferenceFrame(), ReferenceFrame angular_velocity = ReferenceFrame()) Create a hybrid reference frame. This is a custom reference frame whose components inherited from other reference frames. :Parameters: * **position** -- The reference frame providing the position of the origin. * **rotation** -- The reference frame providing the rotation of the frame. * **velocity** -- The reference frame providing the linear velocity of the frame. * **angular_velocity** -- The reference frame providing the angular velocity of the frame. .. note:: The *position* reference frame is required but all other reference frames are optional. If omitted, they are set to the *position* reference frame.