.. default-domain:: c .. highlight:: c ReferenceFrame ============== .. type:: krpc_SpaceCenter_ReferenceFrame_t 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:: krpc_error_t krpc_SpaceCenter_ReferenceFrame_CreateRelative(krpc_connection_t connection, krpc_SpaceCenter_ReferenceFrame_t * result, krpc_SpaceCenter_ReferenceFrame_t referenceFrame, const krpc_tuple_double_double_double_t * position, const krpc_tuple_double_double_double_double_t * rotation, const krpc_tuple_double_double_double_t * velocity, const krpc_tuple_double_double_double_t * angularVelocity) Create a relative reference frame. This is a custom reference frame whose components offset the components of a parent reference frame. :Parameters: * **referenceFrame** -- 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)`. * **angularVelocity** -- 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:: krpc_error_t krpc_SpaceCenter_ReferenceFrame_CreateHybrid(krpc_connection_t connection, krpc_SpaceCenter_ReferenceFrame_t * result, krpc_SpaceCenter_ReferenceFrame_t position, krpc_SpaceCenter_ReferenceFrame_t rotation, krpc_SpaceCenter_ReferenceFrame_t velocity, krpc_SpaceCenter_ReferenceFrame_t angularVelocity) 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. * **angularVelocity** -- 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.