1 #ifndef SpiceRotation_h     2 #define SpiceRotation_h   305       std::vector<double> 
Matrix();
   318       std::vector<double> 
J2000Vector(
const std::vector<double> &rVec);
   345       void LoadCache(
double startTime, 
double endTime, 
int size);
   360       std::vector<double> 
Angles(
int axis3, 
int axis2, 
int axis1);
   361       void SetAngles(std::vector<double> angles, 
int axis3, 
int axis2, 
int axis1);
   368                          const std::vector<double> &abcAng2,
   369                          const std::vector<double> &abcAng3,
   374                             const std::vector<Angle> &decCoeff,
   375                             const std::vector<Angle> &pmCoeff);
   378                          std::vector<double> &abcAng2,
   379                          std::vector<double> &abcAng3);
   382                             std::vector<Angle> &decCoeff,
   383                             std::vector<Angle> &pmCoeff);
   401       std::vector<double> 
toJ2000Partial(
const std::vector<double> &lookT,
   405       void DCJdt(std::vector<double> &dRJ);
   407       double WrapAngle(
double compareAngle, 
double angle);
   408       void SetAxes(
int axis1, 
int axis2, 
int axis3);
   445       std::vector<int> p_constantFrames;  
   448       std::vector<int> p_timeFrames;      
   458       bool m_tOrientationAvailable;  
   471       bool p_degreeApplied;               
   474       std::vector<double> p_coefficients[3];  
   477       double p_overrideBaseTime;          
   478       double p_overrideTimeScale;         
   480       double p_fullCacheStartTime;        
   481       double p_fullCacheEndTime;          
   483       std::vector<double> p_TC;           
   486       std::vector<double> p_CJ;           
   488       std::vector<std::vector<double> > p_cacheAv;
   490       std::vector<double> p_av;           
   491       bool p_hasAngularVelocity;          
   493       std::vector<double> StateTJ();      
   575       std::vector<Angle>m_raPole;       
   576       std::vector<Angle>m_decPole;      
   577       std::vector<Angle>m_pm ;          
   582       std::vector<double>m_raNutPrec;    
   583       std::vector<double>m_decNutPrec;  
   584       std::vector<double>m_pmNutPrec;   
   587       std::vector<Angle>m_sysNutPrec0; 
   588       std::vector<Angle>m_sysNutPrec1; 
   594       static const double m_centScale;
   596       static const double m_dayScale;
 Table Cache(const QString &tableName)
Return a table with J2000 to reference rotations. 
Definition: SpiceRotation.cpp:710
 
Isis specific code for binary pck. 
Definition: SpiceRotation.h:296
 
Provide operations for quaternion arithmetic. 
Definition: Quaternion.h:52
 
void SetOverrideBaseTime(double baseTime, double timeScale)
Set an override base time to be used with observations on scanners to allow all images in an observat...
Definition: SpiceRotation.cpp:1926
 
void MinimizeCache(DownsizeStatus status)
Set the downsize status to minimize cache. 
Definition: SpiceRotation.cpp:308
 
std::vector< double > EvaluatePolyFunction()
Evaluate the polynomial fit function for the three pointing angles for the current ephemeris time...
Definition: SpiceRotation.cpp:3229
 
double DPckPolynomial(PartialType partialVar, const int coeffIndex)
Evaluate the derivative of the fit polynomial defined by the given coefficients with respect to the c...
Definition: SpiceRotation.cpp:1988
 
std::vector< double > p_cacheTime
iTime for corresponding rotation 
Definition: SpiceRotation.h:431
 
std::vector< double > Matrix()
Return the full rotation TJ as a matrix. 
Definition: SpiceRotation.cpp:2664
 
void SetPolynomialDegree(int degree)
Set the degree of the polynomials to be fit to the three camera angles for the time period covered by...
Definition: SpiceRotation.cpp:2159
 
int p_axis3
Axis of rotation for angle 3 of rotation. 
Definition: SpiceRotation.h:440
 
void GetPolynomial(std::vector< double > &abcAng1, std::vector< double > &abcAng2, std::vector< double > &abcAng3)
Return the coefficients of a polynomial fit to each of the three camera angles for the time period co...
Definition: SpiceRotation.cpp:1867
 
void loadPCFromTable(const PvlObject &Label)
Initialize planetary orientation constants from an cube body rotation label. 
Definition: SpiceRotation.cpp:933
 
void SetAxes(int axis1, int axis2, int axis3)
Set the axes of rotation for decomposition of a rotation matrix into 3 angles. 
Definition: SpiceRotation.cpp:2266
 
int p_degree
Degree of fit polynomial for angles. 
Definition: SpiceRotation.h:437
 
void LoadCache(double startTime, double endTime, int size)
Cache J2000 rotation quaternion over a time range. 
Definition: SpiceRotation.cpp:331
 
void setEphemerisTimePolyFunction()
When setting the ephemeris time, updates the rotation according to a polynomial that defines the thre...
Definition: SpiceRotation.cpp:3263
 
int p_axis1
Axis of rotation for angle 1 of rotation. 
Definition: SpiceRotation.h:438
 
void SetConstantMatrix(std::vector< double > constantMatrix)
Set the constant 3x3 rotation TC matrix from a vector of length 9. 
Definition: SpiceRotation.cpp:2704
 
void usePckPolynomial()
Set the coefficients of a polynomial fit to each of the three planet angles for the time period cover...
Definition: SpiceRotation.cpp:1764
 
void SetEphemerisTime(double et)
Return the J2000 to reference frame quaternion at given time. 
Definition: SpiceRotation.cpp:242
 
From cached table. 
Definition: SpiceRotation.h:261
 
std::vector< double > AngularVelocity()
Accessor method to get the angular velocity. 
Definition: SpiceRotation.cpp:1180
 
void LoadTimeCache()
Load the time cache. 
Definition: SpiceRotation.cpp:2288
 
int Frame()
Accessor method that returns the frame code. 
Definition: SpiceRotation.cpp:207
 
void getPckPolynomial(std::vector< Angle > &raCoeff, std::vector< Angle > &decCoeff, std::vector< Angle > &pmCoeff)
Return the coefficients of a polynomial fit to each of the three planet angles. 
Definition: SpiceRotation.cpp:1889
 
std::vector< double > GetCenterAngles()
Return the camera angles at the center time of the observation. 
Definition: SpiceRotation.cpp:1120
 
std::vector< double > TimeBasedRotation()
Return time-based 3x3 rotation CJ matrix as a quaternion. 
Definition: SpiceRotation.cpp:2714
 
void setPckPolynomial(const std::vector< Angle > &raCoeff, const std::vector< Angle > &decCoeff, const std::vector< Angle > &pmCoeff)
Set the coefficients of a polynomial fit to each of the three planet angles for the time period cover...
Definition: SpiceRotation.cpp:1844
 
double WrapAngle(double compareAngle, double angle)
Wrap the input angle to keep it within 2pi radians of the angle to compare. 
Definition: SpiceRotation.cpp:2131
 
std::vector< double > & TimeBasedMatrix()
Return time-based 3x3 rotation CJ matrix as a vector of length 9. 
Definition: SpiceRotation.cpp:2729
 
std::vector< Angle > poleRaCoefs()
Return the coefficients used to calculate the target body pole ra. 
Definition: SpiceRotation.cpp:1274
 
SpiceRotation(int frameCode)
Construct an empty SpiceRotation class using a valid Naif frame code to set up for getting rotation f...
Definition: SpiceRotation.cpp:51
 
Isis specific code for unknown frame type. 
Definition: SpiceRotation.h:290
 
int p_axis2
Axis of rotation for angle 2 of rotation. 
Definition: SpiceRotation.h:439
 
std::vector< double > Extrapolate(double timeEt)
Extrapolate pointing for a given time assuming a constant angular velocity. 
Definition: SpiceRotation.cpp:2935
 
PCK frame not referenced to J2000. 
Definition: SpiceRotation.h:297
 
FrameType
Enumeration for the frame type of the rotation. 
Definition: SpiceRotation.h:289
 
void SetFrame(int frameCode)
Change the frame to the given frame code. 
Definition: SpiceRotation.cpp:196
 
void loadPCFromSpice(int CenterBodyCode)
Initialize planetary orientation constants from Spice PCK. 
Definition: SpiceRotation.cpp:821
 
DownsizeStatus
Status of downsizing the cache. 
Definition: SpiceRotation.h:280
 
double GetBaseTime()
Accessor method to get the rotation base time. 
Definition: SpiceRotation.cpp:2239
 
std::vector< double > poleDecNutPrecCoefs()
Return the coefficients used to calculate the target body pole dec nut/prec coefficients. 
Definition: SpiceRotation.cpp:1348
 
void checkForBinaryPck()
Check loaded pck to see if any are binary and set frame type to indicate binary pck. 
Definition: SpiceRotation.cpp:2977
 
bool IsCached() const
Checks if the cache is empty. 
Definition: SpiceRotation.cpp:298
 
void CacheLabel(Table &table)
Add labels to a SpiceRotation table. 
Definition: SpiceRotation.cpp:1012
 
std::vector< double > Angles(int axis3, int axis2, int axis1)
Return the camera angles (right ascension, declination, and twist) for the time-based matrix CJ...
Definition: SpiceRotation.cpp:1139
 
std::vector< double > ReferenceVector(const std::vector< double > &jVec)
Given a direction vector in J2000, return a reference frame direction. 
Definition: SpiceRotation.cpp:1517
 
void SetTimeBias(double timeBias)
Apply a time bias when invoking SetEphemerisTime method. 
Definition: SpiceRotation.cpp:224
 
std::vector< double > GetFullCacheTime()
Return full listing (cache) of original time coverage requested. 
Definition: SpiceRotation.cpp:2507
 
std::vector< int > TimeFrameChain()
Accessor method to get the frame chain for the rotation (begins in J2000). 
Definition: SpiceRotation.cpp:1201
 
With respect to Twist or Prime Meridian Rotation. 
Definition: SpiceRotation.h:274
 
See Naif Frames.req document for. 
Definition: SpiceRotation.h:291
 
void SetTimeBasedMatrix(std::vector< double > timeBasedMatrix)
Set the time-based 3x3 rotation CJ matrix from a vector of length 9. 
Definition: SpiceRotation.cpp:2739
 
std::vector< std::vector< double > > p_cache
Cached rotations, stored as rotation matrix from J2000 to 1st constant frame (CJ) or coefficients of ...
Definition: SpiceRotation.h:432
 
void SetFullCacheParameters(double startTime, double endTime, int cacheSize)
Set the full cache time parameters. 
Definition: SpiceRotation.cpp:2962
 
Do not downsize the cache. 
Definition: SpiceRotation.h:283
 
void setEphemerisTimePolyFunctionOverSpice()
When setting the ephemeris time, updates the rotation state based on a polynomial fit over spice kern...
Definition: SpiceRotation.cpp:3308
 
Kernels plus nth degree polynomial. 
Definition: SpiceRotation.h:263
 
std::vector< Angle > sysNutPrecConstants()
Return the constants used to calculate the target body system nut/prec angles. 
Definition: SpiceRotation.cpp:1382
 
Source
The rotation can come from one of 3 places for an Isis cube. 
Definition: SpiceRotation.h:258
 
FrameType getFrameType()
Accessor method to get the rotation frame type. 
Definition: SpiceRotation.cpp:2208
 
std::vector< Angle > pmCoefs()
Return the coefficients used to calculate the target body prime meridian. 
Definition: SpiceRotation.cpp:1313
 
double EphemerisTime() const
Accessor method to get current ephemeris time. 
Definition: SpiceRotation.cpp:288
 
void FrameTrace(double et)
Compute frame trace chain from target frame to J2000. 
Definition: SpiceRotation.cpp:2539
 
Obtain SPICE rotation information for a body. 
Definition: SpiceRotation.h:223
 
Definition: SpiceRotation.h:294
 
With respect to Declination. 
Definition: SpiceRotation.h:273
 
PartialType
This enumeration indicates whether the partial derivative is taken with respect to Right Ascension...
Definition: SpiceRotation.h:271
 
std::vector< int > ConstantFrameChain()
Accessor method to get the frame chain for the constant part of the rotation (ends in target) ...
Definition: SpiceRotation.cpp:1191
 
Definition: SpiceRotation.h:293
 
std::vector< double > pmNutPrecCoefs()
Return the coefficients used to calculate the target body pm nut/prec coefficients. 
Definition: SpiceRotation.cpp:1365
 
void ComputeBaseTime()
Compute the base time using cached times. 
Definition: SpiceRotation.cpp:1903
 
void setEphemerisTimeNadir()
When setting the ephemeris time, uses spacecraft nadir source to update the rotation state...
Definition: SpiceRotation.cpp:3131
 
void InitConstantRotation(double et)
Initialize the constant rotation. 
Definition: SpiceRotation.cpp:2750
 
double DPolynomial(const int coeffIndex)
Evaluate the derivative of the fit polynomial defined by the given coefficients with respect to the c...
Definition: SpiceRotation.cpp:1953
 
void ReloadCache()
Cache J2000 rotation over existing cached time range using polynomials. 
Definition: SpiceRotation.cpp:594
 
void ComputeAv()
Compute the angular velocity from the time-based functions fit to the pointing angles This method com...
Definition: SpiceRotation.cpp:2781
 
Directly from the kernels. 
Definition: SpiceRotation.h:259
 
void DCJdt(std::vector< double > &dRJ)
Compute the derivative of the 3x3 rotation matrix CJ with respect to time. 
Definition: SpiceRotation.cpp:2826
 
void SetSource(Source source)
Resets the source of the rotation to the given value. 
Definition: SpiceRotation.cpp:2228
 
Downsize the cache. 
Definition: SpiceRotation.h:281
 
Nadir pointing. 
Definition: SpiceRotation.h:260
 
std::vector< double > toJ2000Partial(const std::vector< double > &lookT, PartialType partialVar, int coeffIndex)
Given a direction vector in the reference frame, compute the derivative with respect to one of the co...
Definition: SpiceRotation.cpp:1424
 
void SetCacheTime(std::vector< double > cacheTime)
Definition: SpiceRotation.cpp:1933
 
Class for storing Table blobs information. 
Definition: Table.h:77
 
std::vector< double > J2000Vector(const std::vector< double > &rVec)
Given a direction vector in the reference frame, return a J2000 direction. 
Definition: SpiceRotation.cpp:1223
 
Cache is downsized. 
Definition: SpiceRotation.h:282
 
std::vector< Angle > sysNutPrecCoefs()
Return the coefficients used to calculate the target body system nut/prec angles. ...
Definition: SpiceRotation.cpp:1400
 
Namespace for ISIS/Bullet specific routines. 
Definition: Apollo.h:31
 
From nth degree polynomial. 
Definition: SpiceRotation.h:262
 
std::vector< double > & ConstantMatrix()
Return the constant 3x3 rotation TC matrix as a vector of length 9. 
Definition: SpiceRotation.cpp:2694
 
Definition: SpiceRotation.h:295
 
void setEphemerisTimeSpice()
When setting the ephemeris time, updates the rotation state based on data read directly from NAIF ker...
Definition: SpiceRotation.cpp:3170
 
std::vector< Angle > poleDecCoefs()
Return the coefficients used to calculate the target body pole dec. 
Definition: SpiceRotation.cpp:1294
 
double GetTimeScale()
Accessor method to get the rotation time scale. 
Definition: SpiceRotation.cpp:2249
 
std::vector< double > poleRaNutPrecCoefs()
Return the coefficients used to calculate the target body pole ra nut/prec coefficients. 
Definition: SpiceRotation.cpp:1331
 
void setEphemerisTimeMemcache()
Updates rotation state based on the rotation cache. 
Definition: SpiceRotation.cpp:3065
 
void setEphemerisTimePckPolyFunction()
When setting the ephemeris time, updates the rotation state based on the PcK polynomial. 
Definition: SpiceRotation.cpp:3354
 
void SetPolynomial(const Source type=PolyFunction)
Set the coefficients of a polynomial fit to each of the three camera angles for the time period cover...
Definition: SpiceRotation.cpp:1556
 
Contains Pvl Groups and Pvl Objects. 
Definition: PvlObject.h:74
 
definitions 
Definition: SpiceRotation.h:292
 
bool HasAngularVelocity()
Checks whether the rotation has angular velocities. 
Definition: SpiceRotation.cpp:1211
 
void SetAngles(std::vector< double > angles, int axis3, int axis2, int axis1)
Set the rotation angles (phi, delta, and w) for the current time to define the time-based matrix CJ...
Definition: SpiceRotation.cpp:1166
 
Table LineCache(const QString &tableName)
Return a table with J2000 to reference rotations. 
Definition: SpiceRotation.cpp:674
 
std::vector< double > ConstantRotation()
Return the constant 3x3 rotation TC matrix as a quaternion. 
Definition: SpiceRotation.cpp:2679
 
Quadratic polynomial function with linear trignometric terms. 
Definition: SpiceRotation.h:264
 
virtual ~SpiceRotation()
Destructor for SpiceRotation object. 
Definition: SpiceRotation.cpp:186
 
Source GetSource()
Accessor method to get the rotation source. 
Definition: SpiceRotation.cpp:2218
 
std::vector< double > ToReferencePartial(std::vector< double > &lookJ, PartialType partialVar, int coeffIndex)
Compute the derivative with respect to one of the coefficients in the angle polynomial fit equation o...
Definition: SpiceRotation.cpp:2048
 
With respect to Right Ascension. 
Definition: SpiceRotation.h:272