This package provides classes to represent simple attitudes.
Some force models such as the atmospheric drag or the maneuvers need to know the spacecraft orientation in inertial frame. OREKIT uses a simple container for Attitude which includes both the geometric part (i.e. rotation) and the kinematic part (i.e. the instant spin axis). The components held by this container allow to convert vectors from inertial frame to spacecraft frame along with their derivatives. This container is similar in spirit to the various extensions of the abstract Orbit class: it represents a state at a specific instant.
In order to represent attitude evolution in time, the AttitudeLaw interface is available. At upper level, attitude laws defined by a ground pointing law are also available. This corresponds to "real" situation where satellite attitude law is defined in order to perform a mission, i.e. pointing a specified point/area. All these laws are gathered around an abstract class called "GroundPointing". At last, there exists attitude laws wrapping a "base" attitude law, and adding to this base attitude law a complementary rotation in order to fulfill specific mission constraints.
The attitude package is organized as follows :

These classes are designed to represent attitude laws used to fulfill pointing missions. Several pointing laws are modelized :
All these ground pointing laws are relative to corresponding body frame, which is used for their construction. Depending on their nature, each ground pointing law also have their own specific construction arguments. For each of these laws, satellite attitude state at any time in any given frame can be computed, as well as observed ground point, or target in body frame.
Several classes have been implemented in order to represent some attitude law in which a "base" attitude law is used, and added a "complementary" rotation in order to fulfill specific mission constraints. They are gathered under abstract class GroundPointingWrapper . Up to now, implemented laws of this kind are: