  | 
  
    Isis 3 Programmer Reference
    
   | 
 
 
 
 
    7 #include "Displacement.h" 
   10 #include "IException.h" 
   12 #include "SpecialPixel.h" 
   47     if(displacementUnit == 
Pixels)
 
   63                              double pixelsPerMeter) {
 
  131                                double pixelsPerMeter) {
 
  156       IString msg = 
"Displacement has not been initialized, you must initialize " 
  157           "it first before comparing with another displacement using [>]";
 
  175       IString msg = 
"Displacement has not been initialized, you must initialize " 
  176           "it first before comparing with another displacement using [<]";
 
  192     if(!isValid() || !displacementToAdd.isValid()) 
return Displacement();
 
  194     return Displacement(meters() + displacementToAdd.meters(), Meters);
 
  207     if(!isValid() || !displacementToSub.isValid()) 
return Displacement();
 
  209     Displacement result(meters() - displacementToSub.meters(), Meters);
 
  222                                -(
const Distance &distanceToSub) 
const {
 
  223     if(!isValid() || !distanceToSub.isValid()) 
return Displacement();
 
  225     Displacement result(meters() - distanceToSub.meters(), Meters);
 
  360     double resultingDisplacement = 
Null;
 
  364     switch(displacementUnit) {
 
  366         resultingDisplacement = displacementInMeters;
 
  370         resultingDisplacement = displacementInMeters / 1000.0;
 
  374         IString msg = 
"Cannot call displacement with pixels, ask for another " 
  380     if(resultingDisplacement == 
Null) {
 
  381       IString msg = 
"Displacement does not understand the enumerated value [" +
 
  382         IString(displacementUnit) + 
"] as a unit";
 
  386     return resultingDisplacement;
 
  401     double displacementInMeters = 
Null;
 
  408     switch(displacementUnit) {
 
  418         IString msg = 
"Cannot setDisplacement with pixels, must convert to " 
  419             "another unit first";
 
  424     if(displacementInMeters == 
Null) {
 
  425       IString msg = 
"Displacement does not understand the enumerated value [" +
 
  426         IString(displacementUnit) + 
"] as a unit";
 
  
 
double m_displacementInMeters
This is the displacement value that this class is encapsulating, always stored in meters.
 
@ Meters
The distance is being specified in meters.
 
void operator/=(const double &valueToDiv)
Divide this displacement by a value and assign the result to ourself.
 
Displacement operator*(const double &valueToMult) const
Multiply this displacement by a value (5m * 2 = 10m).
 
Angle operator*(double mult, Angle angle)
Multiply this angle by a double and return the resulting angle.
 
Units
This is a list of available units to access and store Distances in.
 
bool operator<(const Displacement &otherDisplacement) const
Compare two displacements with the less than operator.
 
void setDisplacement(const double &displacement, Units displacementUnit)
This is a helper method to set displacements in a universal manner with uniform error checking.
 
void setKilometers(double displacementInKilometers)
Set the displacement in kilometers.
 
@ Pixels
The distance is being specified in pixels.
 
void operator-=(const Displacement &displacementToSub)
Subtract the given displacement from ourself and assign.
 
bool IsSpecial(const double d)
Returns if the input pixel is special.
 
Distance measurement, usually in meters.
 
Displacement is a signed length, usually in meters.
 
double operator/(const Displacement &displacementToDiv) const
Divide another displacement into this displacement (5m / 1m = 5).
 
double meters() const
Get the displacement in meters.
 
void setMeters(double displacementInMeters)
Set the displacement in meters.
 
void operator+=(const Displacement &displacementToAdd)
Add and assign the given displacement to ourselves.
 
Displacement()
This initializes the displacement to an invalid state.
 
bool isValid() const
Test if this distance has been initialized or not.
 
double pixels(double pixelsPerMeter=1.0) const
Get the displacement in pixels using the given conversion ratio.
 
const double Null
Value for an Isis Null pixel.
 
void setPixels(double distanceInPixels, double pixelsPerMeter=1.0)
Set the displacement in pixels.
 
double kilometers() const
Get the displacement in kilometers.
 
double displacement(Units displacementUnit) const
This is a helper method to access displacements in a universal manner with uniform error checking.
 
@ Programmer
This error is for when a programmer made an API call that was illegal.
 
bool isValid() const
Test if this displacement has been initialized or not.
 
double meters() const
Get the distance in meters.
 
void operator*=(const double &valueToMult)
Multiply this displacement by a value and assign the result to ourself.
 
bool operator>(const Displacement &otherDisplacement) const
Get the displacement in meters.
 
Adds specific functionality to C++ strings.
 
@ Kilometers
The distance is being specified in kilometers.
 
This is free and unencumbered software released into the public domain.