source: orbit/iOS/Orbit/CoreMotion.framework/Headers/CMAttitude.h @ 876e42b

Servo
Last change on this file since 876e42b was 876e42b, checked in by Steve Castellotti <sc@…>, 7 years ago
  • Property mode set to 100644
File size: 3.4 KB
Line 
1/*
2 *  CMAttitude.h
3 *  CoreMotion
4 *
5 *  Copyright (c) 2010 Apple Inc. All rights reserved.
6 *
7 */
8
9#import <Foundation/Foundation.h>
10
11/*
12 *  CMRotationMatrix
13 * 
14 *  Discussion:
15 *    Type represents a rotation matrix.
16 */
17typedef struct 
18{
19        double m11, m12, m13;
20        double m21, m22, m23;
21        double m31, m32, m33;
22} CMRotationMatrix;
23
24/*
25 *  CMQuaternion
26 * 
27 *  Discussion:
28 *    Type represents a quaternion (one way of parameterizing attitude). If q
29 *              is an instance of CMQuaternion, mathematically it represents the
30 *              following quaternion:
31 *              q.x*i + q.y*j + q.z*k + q.w
32 *             
33 */
34typedef struct
35{
36        double x, y, z, w;
37} CMQuaternion;
38
39/*
40 *  CMAttitudeReferenceFrame
41 * 
42 *  Discussion:
43 *    CMAttitudeReferenceFrame indicates the reference frame from which all CMAttitude
44 *        samples are referenced.
45 *
46 *    Definitions of each reference frame is as follows:
47 *        - CMAttitudeReferenceFrameXArbitraryZVertical describes a reference frame in
48 *          which the Z axis is vertical and the X axis points in an arbitrary direction
49 *          in the horizontal plane.
50 *        - CMAttitudeReferenceFrameXArbitraryCorrectedZVertical describes the same reference
51 *          frame as CMAttitudeReferenceFrameXArbitraryZVertical with the following exception:
52 *          when available and calibrated, the magnetometer will be used to correct for accumulated
53 *          yaw errors. The downside of using this over CMAttitudeReferenceFrameXArbitraryZVertical
54 *          is increased CPU usage.
55 *        - CMAttitudeReferenceFrameXMagneticNorthZVertical describes a reference frame
56 *          in which the Z axis is vertical and the X axis points toward magnetic north.
57 *          Note that using this reference frame may require device movement to
58 *          calibrate the magnetometer.
59 *        - CMAttitudeReferenceFrameXTrueNorthZVertical describes a reference frame in
60 *          which the Z axis is vertical and the X axis points toward true north.
61 *          Note that using this reference frame may require device movement to
62 *          calibrate the magnetometer.
63 */
64typedef enum {
65        CMAttitudeReferenceFrameXArbitraryZVertical = 1 << 0,
66        CMAttitudeReferenceFrameXArbitraryCorrectedZVertical = 1 << 1,
67        CMAttitudeReferenceFrameXMagneticNorthZVertical = 1 << 2,
68        CMAttitudeReferenceFrameXTrueNorthZVertical = 1 << 3
69} CMAttitudeReferenceFrame;
70
71NS_CLASS_AVAILABLE(NA,4_0)
72@interface CMAttitude : NSObject <NSCopying, NSSecureCoding>
73{
74@private
75        id _internal;
76}
77
78/*
79 *  roll
80 * 
81 *  Discussion:
82 *    Returns the roll of the device in radians.
83 *
84 */
85@property(readonly, nonatomic) double roll;
86
87/*
88 *  pitch
89 * 
90 *  Discussion:
91 *    Returns the pitch of the device in radians.
92 *
93 */
94@property(readonly, nonatomic) double pitch;
95
96/*
97 *  yaw
98 * 
99 *  Discussion:
100 *    Returns the yaw of the device in radians.
101 *
102 */
103@property(readonly, nonatomic) double yaw;
104
105/*
106 *  rotationMatrix
107 * 
108 *  Discussion:
109 *    Returns a rotation matrix representing the device's attitude.
110 *
111 */
112@property(readonly, nonatomic) CMRotationMatrix rotationMatrix;
113
114/*
115 *  quaternion
116 * 
117 *  Discussion:
118 *    Returns a quaternion representing the device's attitude.
119 *
120 */
121@property(readonly, nonatomic) CMQuaternion quaternion;
122
123/*
124 *  multiplyByInverseOfAttitude:
125 * 
126 *  Discussion:
127 *      Multiplies attitude by the inverse of the specified attitude. This gives
128 *                      the attitude change from the specified attitude.
129 */
130- (void)multiplyByInverseOfAttitude:(CMAttitude *)attitude;
131
132@end
Note: See TracBrowser for help on using the repository browser.