![]() |
Isis 3 Developer Reference
|
Displacement is a signed length, usually in meters. More...
#include <Displacement.h>

Public Types | |
| enum | Units { Meters, Kilometers, Pixels } |
| This is a list of available units to access and store Distances in. More... | |
Public Member Functions | |
| Displacement () | |
| This initializes the displacement to an invalid state. More... | |
| Displacement (double displacement, Units distanceUnit) | |
| This is the general purpose constructor for Displacement. More... | |
| Displacement (double displacementInPixels, double pixelsPerMeter) | |
| This is a constructor for Displacement given pixels with a conversion ratio. More... | |
| Displacement (const Distance &distanceToCopy) | |
| This creates a displacement equal to a distance. More... | |
| ~Displacement () | |
| Free the memory allocated by this instance of the displacement class. More... | |
| double | meters () const |
| Get the displacement in meters. More... | |
| void | setMeters (double displacementInMeters) |
| Set the displacement in meters. More... | |
| double | kilometers () const |
| Get the displacement in kilometers. More... | |
| void | setKilometers (double displacementInKilometers) |
| Set the displacement in kilometers. More... | |
| double | pixels (double pixelsPerMeter=1.0) const |
| Get the displacement in pixels using the given conversion ratio. More... | |
| void | setPixels (double distanceInPixels, double pixelsPerMeter=1.0) |
| Set the displacement in pixels. More... | |
| bool | isValid () const |
| Test if this displacement has been initialized or not. More... | |
| bool | operator> (const Displacement &otherDisplacement) const |
Get the displacement in meters. More... | |
| bool | operator< (const Displacement &otherDisplacement) const |
| Compare two displacements with the less than operator. More... | |
| bool | operator>= (const Displacement &otherDisplacement) const |
| Compare the distances of 2 displacements with the >= operator. More... | |
| bool | operator<= (const Displacement &otherDisplacement) const |
| Compare the lengths of 2 displacements with the <= operator. More... | |
| bool | operator!= (const Displacement &otherDisplacement) const |
| Compare the lengths of 2 displacements with the != operator. More... | |
| bool | operator== (const Displacement &otherDisplacement) const |
| Compare the lengths of 2 displacements with the == operator. More... | |
| Displacement | operator+ (const Displacement &displacementToAdd) const |
| Add another displacement to this displacement (1km + 5m = 1005m) More... | |
| Displacement | operator- (const Displacement &displacementToSub) const |
| Subtract another displacement from this displacement (1km - 5m = 995m). More... | |
| Displacement | operator- (const Distance &distanceToSub) const |
| Subtract a distance from this displacement (1km - 5m = 995m). More... | |
| double | operator/ (const Displacement &displacementToDiv) const |
| Divide another displacement into this displacement (5m / 1m = 5). More... | |
| Displacement | operator/ (const double &valueToDiv) const |
| Divide a value from this displacement (5m / 2 = 2.5m). More... | |
| Displacement | operator* (const double &valueToMult) const |
| Multiply this displacement by a value (5m * 2 = 10m). More... | |
| void | operator+= (const Displacement &displacementToAdd) |
| Add and assign the given displacement to ourselves. More... | |
| void | operator-= (const Displacement &displacementToSub) |
| Subtract the given displacement from ourself and assign. More... | |
| void | operator-= (const Distance &distanceToSub) |
| Subtract the given distance from ourself and assign. More... | |
| void | operator/= (const double &valueToDiv) |
| Divide this displacement by a value and assign the result to ourself. More... | |
| void | operator*= (const double &valueToMult) |
| Multiply this displacement by a value and assign the result to ourself. More... | |
Protected Member Functions | |
| double | displacement (Units displacementUnit) const |
| This is a helper method to access displacements in a universal manner with uniform error checking. More... | |
| void | setDisplacement (const double &displacement, Units displacementUnit) |
| This is a helper method to set displacements in a universal manner with uniform error checking. More... | |
Friends | |
| Displacement | operator* (double mult, Displacement displacement) |
| Multiply displacement by a value (5m * 2 = 10m). More... | |
Displacement is a signed length, usually in meters.
This class is designed to encapsulate the concept of a displacement. A displacement has a distance and a sense of direction indicated by a sign (+ or -). It is typically used for vectors or coordinates, but is also available as a general purpose class. This class does accept both positive and negative values.
This is a list of available units to access and store Distances in.
These values can be passed to the constructor to specify which unit the double you are passing in is in.
| Enumerator | |
|---|---|
| Meters | The distance is being specified in meters. |
| Kilometers | The distance is being specified in kilometers. |
| Pixels | The distance is being specified in pixels. |
| Isis::Displacement::Displacement | ( | ) |
This initializes the displacement to an invalid state.
You must set the displacement later on with operator= or one of the Set methods.
References Meters, Isis::Null, and setDisplacement().
Referenced by operator*(), and operator/().
| Isis::Displacement::Displacement | ( | double | displacement, |
| Units | displacementUnit | ||
| ) |
This is the general purpose constructor for Displacement.
This will initialize with the given displacement. If Pixels are supplied as the units, then a default pixels/meter = 1.0 will be used.
| displacement | The initial displacement; must be in units of displacementUnit |
| displacementUnit | The unit of displacement; can be any value in displacement::Units |
References displacement(), Meters, Pixels, and setDisplacement().
| Isis::Displacement::Displacement | ( | double | displacementInPixels, |
| double | pixelsPerMeter | ||
| ) |
This is a constructor for Displacement given pixels with a conversion ratio.
This will initialize with the pixels converted to meters.
| displacementInPixels | The displacement to initialize with, must be in units of pixels and should not be negative |
| pixelsPerMeter | The pixels/meter conversion factor |
References Meters, and setDisplacement().
| Isis::Displacement::Displacement | ( | const Distance & | distanceToCopy | ) |
This creates a displacement equal to a distance.
| distanceToCopy | This is the distance we are duplicating |
References Meters, Isis::Distance::meters(), and setDisplacement().
|
inline |
Free the memory allocated by this instance of the displacement class.
|
protected |
This is a helper method to access displacements in a universal manner with uniform error checking.
| displacementUnit | Unit of the return value. If this is invalid, an exception will be thrown. |
References _FILEINFO_, Kilometers, Meters, Isis::Null, Pixels, and Isis::IException::Programmer.
Referenced by Displacement(), isValid(), kilometers(), meters(), pixels(), and setDisplacement().
| bool Isis::Displacement::isValid | ( | ) | const |
Test if this displacement has been initialized or not.
References displacement(), Meters, and Isis::Null.
Referenced by Isis::ControlPoint::HasAprioriCoordinates(), operator*(), operator*=(), operator+=(), operator-=(), operator/(), operator/=(), operator<(), operator>(), and Isis::Area3D::setArea().
| double Isis::Displacement::kilometers | ( | ) | const |
Get the displacement in kilometers.
References displacement(), and Kilometers.
Referenced by Isis::DemShape::calculateDefaultNormal(), Isis::EllipsoidShape::calculateLocalNormal(), Isis::Sensor::Coordinate(), Isis::SurfacePoint::DisplacementToDouble(), Isis::PlaneShape::emissionAngle(), Isis::BundleControlPoint::formatBundleLatitudinalOutputDetailString(), Isis::BundleControlPoint::formatBundleRectangularOutputDetailString(), Isis::CameraGroundMap::GetXY(), Isis::RadarGroundMap::GetXY(), Isis::PlaneShape::incidenceAngle(), Isis::DemShape::intersectSurface(), Isis::Camera::LocalPhotometricAngles(), Isis::PlaneShape::localRadius(), Isis::CameraGroundMap::MeanRadiusPartial(), Isis::Sensor::SlantDistance(), and Isis::Sensor::SolarDistance().
| double Isis::Displacement::meters | ( | ) | const |
Get the displacement in meters.
References displacement(), and Meters.
Referenced by Isis::ControlPointV0001::ControlPointV0001(), Isis::SurfacePoint::DisplacementToDouble(), operator*(), operator*=(), operator+=(), operator-=(), operator/(), operator/=(), operator<(), operator>(), Isis::Area3D::setArea(), Isis::Projection::SetUpperLeftCorner(), and Isis::ControlNetVersioner::toPvl().
|
inline |
Compare the lengths of 2 displacements with the != operator.
Two uninitialized displacements are equal to each other.
| otherDisplacement | This is the displacement we are comparing to, i.e. it is on the right-hand-side of the operator when used |
| Displacement Isis::Displacement::operator* | ( | const double & | valueToMult | ) | const |
Multiply this displacement by a value (5m * 2 = 10m).
| valueToMult | This is the value to multiply by |
References Displacement(), Isis::IsSpecial(), isValid(), Meters, and meters().
| void Isis::Displacement::operator*= | ( | const double & | valueToMult | ) |
Multiply this displacement by a value and assign the result to ourself.
| valueToMult | This is the value we are going to multiply by |
References Isis::IsSpecial(), isValid(), Meters, meters(), Isis::Null, and setDisplacement().
| Displacement Isis::Displacement::operator+ | ( | const Displacement & | displacementToAdd | ) | const |
Add another displacement to this displacement (1km + 5m = 1005m)
| displacementToAdd | This is the displacement we are adding to ourselves |
| void Isis::Displacement::operator+= | ( | const Displacement & | displacementToAdd | ) |
Add and assign the given displacement to ourselves.
| displacementToAdd | This is the displacement we are to add |
References isValid(), Meters, meters(), Isis::Null, and setDisplacement().
| Displacement Isis::Displacement::operator- | ( | const Displacement & | displacementToSub | ) | const |
Subtract another displacement from this displacement (1km - 5m = 995m).
| displacementToSub | This is the displacement we are subtracting from ourself |
| Displacement Isis::Displacement::operator- | ( | const Distance & | distanceToSub | ) | const |
Subtract a distance from this displacement (1km - 5m = 995m).
| distanceToSub | This is the displacement we are subtracting from ourself |
| void Isis::Displacement::operator-= | ( | const Displacement & | displacementToSub | ) |
Subtract the given displacement from ourself and assign.
| displacementToSub | This is the displacement we are to subtract |
References isValid(), Meters, meters(), Isis::Null, and setDisplacement().
| void Isis::Displacement::operator-= | ( | const Distance & | distanceToSub | ) |
Subtract the given distance from ourself and assign.
| distanceToSub | This is the distance we are to subtract |
References isValid(), Isis::Distance::isValid(), Meters, meters(), Isis::Distance::meters(), Isis::Null, and setDisplacement().
| double Isis::Displacement::operator/ | ( | const Displacement & | displacementToDiv | ) | const |
Divide another displacement into this displacement (5m / 1m = 5).
| displacementToDiv | This is the divisor displacement (denominator) |
References isValid(), meters(), and Isis::Null.
| Displacement Isis::Displacement::operator/ | ( | const double & | valueToDiv | ) | const |
Divide a value from this displacement (5m / 2 = 2.5m).
| valueToDiv | This is the divisor displacement (denominator) |
References Displacement(), Isis::IsSpecial(), isValid(), Meters, and meters().
| void Isis::Displacement::operator/= | ( | const double & | valueToDiv | ) |
Divide this displacement by a value and assign the result to ourself.
| valueToDiv | This is the value we are going to divide by |
References Isis::IsSpecial(), isValid(), Meters, meters(), Isis::Null, and setDisplacement().
| bool Isis::Displacement::operator< | ( | const Displacement & | otherDisplacement | ) | const |
Compare two displacements with the less than operator.
| otherdisplacement | This is the displacement we're comparing to, i.e. on the right-hand-side of the operator when used |
References _FILEINFO_, isValid(), meters(), and Isis::IException::Programmer.
|
inline |
Compare the lengths of 2 displacements with the <= operator.
| otherDisplacement | This is the displacement we are comparing i.e. it is on the right-hand-side of the operator when used |
|
inline |
Compare the lengths of 2 displacements with the == operator.
Two uninitialized displacements are equal to each other.
| otherDisplacement | This is the displacement we are comparing to, i.e. it is on the right-hand-side of the operator when used |
| bool Isis::Displacement::operator> | ( | const Displacement & | otherDisplacement | ) | const |
Get the displacement in meters.
Compare two displacements with the greater than operator.
This is equivalent to meters()
operator double() const { return meters(); }
| otherdisplacement | This is the displacement we're comparing to, i.e. it is on the right-hand-side of the operator when used |
References _FILEINFO_, isValid(), meters(), and Isis::IException::Programmer.
|
inline |
Compare the distances of 2 displacements with the >= operator.
| otherDisplacement | This is the displacement we are comparing to, i.e. it is on the right-hand-side of the operator when used |
| double Isis::Displacement::pixels | ( | double | pixelsPerMeter = 1.0 | ) | const |
Get the displacement in pixels using the given conversion ratio.
| pixelsPerMeter | Pixels/Meters conversion ratio to use, stored data is always in meters |
References displacement(), and Meters.
Referenced by Isis::RawCubeChunk::RawCubeChunk().
|
protected |
This is a helper method to set displacements in a universal manner with uniform error checking.
| displacement | The displacement, in units of displacementUnit, to set this class to. If this is negative an exception will be thrown and the state unmodified. |
| displacementUnit | Unit of displacement. If this is invalid, an exception will be thrown and the state left unmodified. |
References _FILEINFO_, displacement(), Isis::IsSpecial(), Kilometers, Meters, Isis::Null, Pixels, and Isis::IException::Programmer.
Referenced by Displacement(), operator*=(), operator+=(), operator-=(), operator/=(), setKilometers(), setMeters(), and setPixels().
| void Isis::Displacement::setKilometers | ( | double | displacementInKilometers | ) |
Set the displacement in kilometers.
| displacementInKilometers | This is the value to set as the displacement, given in kilometers. |
References Kilometers, and setDisplacement().
| void Isis::Displacement::setMeters | ( | double | displacementInMeters | ) |
Set the displacement in meters.
| displacementInMeters | This is the value to set this displacement to, given in meters. |
References Meters, and setDisplacement().
| void Isis::Displacement::setPixels | ( | double | displacementInPixels, |
| double | pixelsPerMeter = 1.0 |
||
| ) |
Set the displacement in pixels.
| displacementInPixels | This is the value to set this displacement to, given in pixels. |
| pixelsPerMeter | Pixels/Meters conversion ratio to use, stored data is always in meters |
References Meters, and setDisplacement().
|
friend |
Multiply displacement by a value (5m * 2 = 10m).
| mult | This is the value to multiply by |
| displacement | This is the distance to multiply into |