64 Distance(
double distanceInPixels,
double pixelsPerMeter);
74 double pixels(
double pixelsPerMeter = 1.0)
const;
75 void setPixels(
double distanceInPixels,
double pixelsPerMeter = 1.0);
95 return *
this > otherDistance || *
this == otherDistance;
108 return *
this < otherDistance || *
this == otherDistance;
121 return meters() == otherDistance.meters();
134 return meters() != otherDistance.meters();
151 virtual double distance(Units distanceUnit)
const;
Displacement is a signed length, usually in meters.
Distance measurement, usually in meters.
friend Distance operator*(double mult, Distance dist)
Multiply this distance by a value (5m * 2 = 10m).
void setPixels(double distanceInPixels, double pixelsPerMeter=1.0)
Set the distance in pixels.
void operator+=(const Distance &distanceToAdd)
Add and assign the given distance to ourselves.
bool operator<=(const Distance &otherDistance) const
Compare two distances with the less than or equal to operator.
double solarRadii() const
Get the distance in solar radii (a unit of ~696,265km).
bool operator<(const Distance &otherDistance) const
Compare two distances with the less than operator.
void operator-=(const Distance &distanceToSub)
Subtract and assign the given distance from ourself.
bool isValid() const
Test if this distance has been initialized or not.
bool operator!=(const Distance &otherDistance) const
Compare two distances with the != operator.
void setSolarRadii(double distanceInSolarRadii)
Set the distance in solar radii.
double operator/(const Distance &distanceToDiv) const
Divide another distance into this distance (5m / 1m = 5).
bool operator==(const Distance &otherDistance) const
Compare two distances with the == operator.
bool operator>(const Distance &otherDistance) const
Compare two distances with the greater than operator.
virtual double distance(Units distanceUnit) const
This is a helper method to access distances in a universal manner with uniform error checking.
virtual void setDistance(const double &distance, Units distanceUnit)
This is a helper method to set distances in a universal manner with uniform error checking.
double m_distanceInMeters
This is the distance value that this class is encapsulating, always stored in meters.
void setMeters(double distanceInMeters)
Set the distance in meters.
double kilometers() const
Get the distance in kilometers.
Displacement operator-(const Distance &distanceToSub) const
Subtract another distance from this distance (1km - 1m = 995m).
void operator/=(const double &valueToDiv)
Divide this distance by a value and assign the result to ourself.
Distance operator+(const Distance &distanceToAdd) const
Add another distance to this distance (1km + 1m = 1005m)
Distance()
This initializes the distance to an invalid state.
void setKilometers(double distanceInKilometers)
Set the distance in kilometers.
Units
This is a list of available units to access and store Distances in.
@ SolarRadii
"Solar radius is a unit of distance used to express the size of stars in astronomy equal to the curre...
@ Pixels
The distance is being specified in pixels.
@ Kilometers
The distance is being specified in kilometers.
@ Meters
The distance is being specified in meters.
void operator*=(const double &valueToMult)
Multiply this distance by a value and assign the result to ourself.
virtual ~Distance()
This will free the memory allocated by this instance of the Distance class.
double pixels(double pixelsPerMeter=1.0) const
Get the distance in pixels using the given conversion ratio.
double meters() const
Get the distance in meters.
QString toString() const
Get a textual representation of this distance.
bool operator>=(const Distance &otherDistance) const
Compare two distances with the greater than or equal to operator.
Distance & operator=(const Distance &distanceToCopy)
Assign this distance to the value of another distance.
This is free and unencumbered software released into the public domain.