#include <HammerAito.h>
Inheritance diagram for HammerAito:
A transform that performs the Hammer-Aitoff map projection. This map projection is an equal-area projection which displays the world on an ellipse. "Equal-area" means equal-areas on the globe are equal areas on the two dimension projection. If this transforms were used with an XY Plot containing the boundaries of the continents, it might look like image below.
Paul F. Kunz <Paul_Kunz@slac.stanford.edu>
Definition at line 36 of file HammerAito.h.
Public Member Functions | |
virtual void | adjustValues (AxisModelBase &model, hippodraw::Axes::Type axes, const Range &limit) |
Sets the range of given axis to be a new "nice" within the limits given. | |
virtual double | aspectRatio () const |
Returns the aspect ratio. | |
virtual HippoRectangle | calcRectangle (const Range &x, const Range &y) |
Returns a HippoRectangle enclosing the transformed data space. | |
virtual HammerAito * | clone () const |
Creates a new Transform object by copying an existing one. | |
HammerAito (const HammerAito &) | |
The copy constructor. | |
HammerAito (UnaryTransform *z) | |
The constructor. | |
virtual void | inverseTransform (double &lon, double &lat) const |
Transform the transformed coordinates on X and Y axis back to the original true data space. | |
void | inverseTransformZ (double &z) const |
Inverse transforms the z coordinate. | |
virtual bool | isLinearInXY () const |
Returns true if the transform would be one to one on both the X and Y axes. | |
bool | isPeriodic () const |
Sets wether this transform is periodic. | |
virtual const Range & | limitX () const |
Returns the Range limits of the first corrdinate. | |
virtual const Range & | limitY () const |
Returns the Range limits of the second corrdinate. | |
const Range & | limitZ () const |
Returns the Range limits on the third corrdinate. | |
double | moduloAdd (double a1, double a2, hippodraw::Axes::Type axis) const |
Modulo Addition along either X or Y axis. | |
double | moduloAddX (double x1, double x2) const |
Modulo Addition along X axis. | |
double | moduloAddY (double y1, double y2) const |
Modulo Addition along Y axis. | |
double | moduloSub (double s1, double s2, hippodraw::Axes::Type axis) const |
Modulo Substraction along either X or Y axis. | |
double | moduloSubX (double x1, double x2) const |
Modulo Substraction along X axis. | |
double | moduloSubY (double y1, double y2) const |
Modulo Substraction along Y axis. | |
const std::string & | name () const |
Returns the name of the Transform. | |
bool | needsGrid () const |
Returns wether this transform needs grid. | |
bool | needsXTicks () const |
Returns wether this transform needs x ticks. | |
bool | needsYTicks () const |
Returns wether this transform needs y ticks. | |
void | setNeedsGrid (bool needs_grid) |
Sets wether this transform needs grid. | |
void | setNeedsXTicks (bool needs_x_ticks) |
Sets wether this transform needs x ticks. | |
void | setNeedsYTicks (bool needs_y_ticks) |
Sets wether this transform needs y yicks. | |
virtual const std::vector< AxisTick > & | setTicks (AxisModelBase &axis_model, hippodraw::Axes::Type axis) |
void | setXOffset (double x_offset) |
Sets the xOffset of the (periodic) transform. | |
void | setYOffset (double y_offset) |
Sets the yOffset of the (periodic) transform. | |
void | setZTransform (TransformBase *transform) |
Sets the transform function on the Z axis. | |
virtual void | transform (std::vector< double > &lon, std::vector< double > &lat) const |
A transform on two axes. | |
virtual void | transform (double &lon, double &lat) const |
Transform the coordinates on the X and Y axes. | |
void | transformZ (double &z) const |
Transforms the z coordinate. | |
virtual void | validate (Range &lat, Range &lon) const |
Validates the Ranges. | |
double | xOffset () const |
Returns the xOffset of the (periodic) transform. | |
double | yOffset () const |
Returns the yOffset of the (periodic) transform. | |
TransformBase * | zTransform () const |
Returns the transform function on the Z axis. | |
virtual | ~HammerAito () |
The virtual destructor. | |
Protected Attributes | |
bool | m_is_periodic |
Is this transform periodic. | |
std::string | m_name |
Name of the Transform. | |
bool | m_needs_grid |
Does this binary tranform needs grid? | |
bool | m_needs_x_ticks |
Does this binary tranform x ticks? | |
bool | m_needs_y_ticks |
Does this binary tranform y ticks? | |
Range | m_x_limits |
The limits on X axis of the transform. | |
double | m_x_offset |
The xoffset of this periodic transform. | |
Range | m_y_limits |
The limits on Y axis of the transform. | |
double | m_y_offset |
The yoffset of this periodic transform. | |
UnaryTransform * | m_z |
The transform on the Z axis. | |
Private Member Functions | |
const std::vector< AxisTick > & | genTicks (AxisModelBase &axis, hippodraw::Axes::Type axistype) |
Generates the ticks in the axis. | |
void | setFirstTick (AxisModelBase &axis) |
Sets the first tick on the axis. | |
void | setTickStep (AxisModelBase &axis) |
Helps to decide the tick size for the corresponding axis. | |
Private Attributes | |
std::vector< AxisTick > | m_ticks |
The ticks last generated by this transform. |
|
The constructor. The constructor taking a UnaryTransform for its Z axis. Definition at line 31 of file HammerAito.cxx. References TransformBase::m_name. |
|
The copy constructor.
Definition at line 39 of file HammerAito.cxx. |
|
The virtual destructor.
Definition at line 44 of file HammerAito.cxx. |
|
Sets the range of given axis to be a new "nice" within the limits given.
Implements BinaryTransform. Definition at line 230 of file HammerAito.cxx. |
|
Returns the aspect ratio. Some transforms require a specific ration of the width to the height of the display. Returning a value of 2.0, for example, means that the width should be twice the height. Returning a value of 0.0 means any aspect ratio may be used. Reimplemented from BinaryTransform. Definition at line 123 of file HammerAito.cxx. |
|
Returns a HippoRectangle enclosing the transformed data space.
Implements BinaryTransform. Definition at line 128 of file HammerAito.cxx. References Range::high(), Range::low(), and transform(). |
|
Creates a new Transform object by copying an existing one.
Implements BinaryTransform. Definition at line 51 of file HammerAito.cxx. |
|
Generates the ticks in the axis.
Definition at line 279 of file HammerAito.cxx. References std::abs(), FLT_EQUAL(), AxisModelBase::getFirstTick(), AxisModelBase::getPMag(), AxisModelBase::getRange(), AxisModelBase::getRMag(), AxisModelBase::getScaleFactor(), AxisModelBase::getTickStep(), Range::high(), m_ticks, PeriodicBinaryTransform::moduloAddX(), PeriodicBinaryTransform::moduloAddY(), std::pow(), AxisModelBase::setUsePMag(), hippodraw::Axes::X, PeriodicBinaryTransform::xOffset(), hippodraw::Axes::Y, and PeriodicBinaryTransform::yOffset(). Referenced by setTicks(). |
|
Transform the transformed coordinates on X and Y axis back to the original true data space.
Implements BinaryTransform. Definition at line 86 of file HammerAito.cxx. References M_PI, and std::sqrt(). |
|
Inverse transforms the z coordinate.
Definition at line 104 of file BinaryTransform.cxx. References UnaryTransform::inverseTransform(), and BinaryTransform::m_z. |
|
Returns Clients can use this function to avoid calling the transform in for loops. Implements BinaryTransform. Definition at line 59 of file HammerAito.cxx. |
|
Sets wether this transform is periodic.
Definition at line 146 of file BinaryTransform.cxx. References BinaryTransform::m_is_periodic. Referenced by BinaryTransform::BinaryTransform(), AxisRepBase::drawCrossHairs(), CompositePlotter::fillPickedPoint(), and Inspector::setHighRange(). |
|
Returns the Range limits of the first corrdinate.
Implements BinaryTransform. Definition at line 60 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::m_x_limits. |
|
Returns the Range limits of the second corrdinate.
Implements BinaryTransform. Definition at line 66 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::m_y_limits. |
|
Returns the Range limits on the third corrdinate.
Definition at line 110 of file BinaryTransform.cxx. References UnaryTransform::limits(), and BinaryTransform::m_z. Referenced by CompositePlotter::autoScaleZ(), and CompositePlotter::setRangePrivate(). |
|
Modulo Addition along either X or Y axis.
Definition at line 96 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::moduloAddX(), PeriodicBinaryTransform::moduloAddY(), hippodraw::Axes::X, and hippodraw::Axes::Y. |
|
Modulo Addition along X axis.
Definition at line 120 of file PeriodicBinaryTransform.cxx. References Range::high(), Range::low(), PeriodicBinaryTransform::m_x_limits, and PeriodicBinaryTransform::moduloSubX(). Referenced by CompositePlotter::fillPickedPoint(), Lambert::genTicks(), genTicks(), PeriodicBinaryTransform::moduloAdd(), PeriodicBinaryTransform::moduloSubX(), and Inspector::setHighRange(). |
|
Modulo Addition along Y axis.
Definition at line 149 of file PeriodicBinaryTransform.cxx. References Range::high(), Range::low(), PeriodicBinaryTransform::m_y_limits, and PeriodicBinaryTransform::moduloSubY(). Referenced by CompositePlotter::fillPickedPoint(), Lambert::genTicks(), genTicks(), PeriodicBinaryTransform::moduloAdd(), PeriodicBinaryTransform::moduloSubY(), and Inspector::setHighRange(). |
|
Modulo Substraction along either X or Y axis.
Definition at line 109 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::moduloSubX(), PeriodicBinaryTransform::moduloSubY(), hippodraw::Axes::X, and hippodraw::Axes::Y. |
|
Modulo Substraction along X axis.
Definition at line 135 of file PeriodicBinaryTransform.cxx. References Range::high(), Range::low(), PeriodicBinaryTransform::m_x_limits, and PeriodicBinaryTransform::moduloAddX(). Referenced by AxisRepBase::drawCrossHairs(), PeriodicBinaryTransform::moduloAddX(), and PeriodicBinaryTransform::moduloSub(). |
|
Modulo Substraction along Y axis.
Definition at line 164 of file PeriodicBinaryTransform.cxx. References Range::high(), Range::low(), PeriodicBinaryTransform::m_y_limits, and PeriodicBinaryTransform::moduloAddY(). Referenced by AxisRepBase::drawCrossHairs(), PeriodicBinaryTransform::moduloAddY(), and PeriodicBinaryTransform::moduloSub(). |
|
Returns the name of the Transform.
Definition at line 43 of file TransformBase.cxx. References TransformBase::m_name. Referenced by BinaryTransform::BinaryTransform(), TransformXML::createElement(), DisplayController::getLog(), DisplayController::setLog(), and XYTransform::XYTransform(). |
|
Returns wether this transform needs grid.
Definition at line 116 of file BinaryTransform.cxx. References BinaryTransform::m_needs_grid. Referenced by BinaryTransform::BinaryTransform(), and CompositePlotter::drawAxisRep(). |
|
Returns wether this transform needs x ticks.
Definition at line 126 of file BinaryTransform.cxx. References BinaryTransform::m_needs_x_ticks. Referenced by BinaryTransform::BinaryTransform(), and CompositePlotter::drawAxisRep(). |
|
Returns wether this transform needs y ticks.
Definition at line 136 of file BinaryTransform.cxx. References BinaryTransform::m_needs_y_ticks. Referenced by BinaryTransform::BinaryTransform(), and CompositePlotter::drawAxisRep(). |
|
Sets the first tick on the axis.
Definition at line 267 of file HammerAito.cxx. References AxisModelBase::getRange(), Range::low(), and AxisModelBase::setFirstTick(). Referenced by setTicks(). |
|
Sets wether this transform needs grid.
Definition at line 121 of file BinaryTransform.cxx. References BinaryTransform::m_needs_grid. |
|
Sets wether this transform needs x ticks.
Definition at line 131 of file BinaryTransform.cxx. References BinaryTransform::m_needs_x_ticks. |
|
Sets wether this transform needs y yicks.
Definition at line 141 of file BinaryTransform.cxx. References BinaryTransform::m_needs_y_ticks. |
|
Implements BinaryTransform. Definition at line 216 of file HammerAito.cxx. References genTicks(), BinaryTransform::m_z, setFirstTick(), setTickStep(), and hippodraw::Axes::Z. |
|
Helps to decide the tick size for the corresponding axis.
Definition at line 244 of file HammerAito.cxx. References std::abs(), AxisModelBase::getRange(), AxisModelBase::getScaleFactor(), Range::high(), Range::length(), std::log10(), Range::low(), std::max(), AxisModelBase::setPMag(), AxisModelBase::setRMag(), and AxisModelBase::setTickStep(). Referenced by setTicks(). |
|
Sets the xOffset of the (periodic) transform.
Definition at line 77 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::m_x_offset. Referenced by Inspector::autoScale_clicked(), and Inspector::setHighRange(). |
|
Sets the yOffset of the (periodic) transform.
Definition at line 87 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::m_y_offset. Referenced by Inspector::autoScale_clicked(), and Inspector::setHighRange(). |
|
Sets the transform function on the Z axis. The transform object must be derived class of UnaryTransform, otherwise the transform object pointer is set to null. Definition at line 91 of file BinaryTransform.cxx. References BinaryTransform::m_z. |
|
A transform on two axes.
Implements BinaryTransform. Definition at line 109 of file HammerAito.cxx. References transform(). |
|
Transform the coordinates on the X and Y axes.
Implements BinaryTransform. Definition at line 67 of file HammerAito.cxx. References std::cos(), M_PI, std::sin(), and std::sqrt(). Referenced by calcRectangle(), and transform(). |
|
Transforms the z coordinate.
Definition at line 98 of file BinaryTransform.cxx. References BinaryTransform::m_z, and UnaryTransform::transform(). Referenced by ContourPointRep::drawContourTicks(), AxisRepColor::drawZTickLabels(), AxisRepColor::drawZTickLines(), and CompositePlotter::prepareToDraw(). |
|
Validates the Ranges. Adjusts Ranges to be restricted to that which is valid for the transform. Implements BinaryTransform. Definition at line 202 of file HammerAito.cxx. References Range::high(), Range::low(), Range::setHigh(), and Range::setLow(). |
|
Returns the xOffset of the (periodic) transform.
Definition at line 72 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::m_x_offset. Referenced by AxisRepBase::drawCrossHairs(), CompositePlotter::fillPickedPoint(), Lambert::genTicks(), genTicks(), and Inspector::setHighRange(). |
|
Returns the yOffset of the (periodic) transform.
Definition at line 82 of file PeriodicBinaryTransform.cxx. References PeriodicBinaryTransform::m_y_offset. Referenced by AxisRepBase::drawCrossHairs(), CompositePlotter::fillPickedPoint(), Lambert::genTicks(), genTicks(), and Inspector::setHighRange(). |
|
Returns the transform function on the Z axis.
Definition at line 84 of file BinaryTransform.cxx. References BinaryTransform::m_z. Referenced by DisplayController::getLog(), and DisplayController::setLog(). |
|
Is this transform periodic.
Definition at line 55 of file BinaryTransform.h. Referenced by BinaryTransform::BinaryTransform(), and BinaryTransform::isPeriodic(). |
|
Name of the Transform.
Definition at line 39 of file TransformBase.h. Referenced by BinaryTransform::BinaryTransform(), HammerAito(), Lambert::Lambert(), LinearTransform::LinearTransform(), LogTransform::LogTransform(), TransformBase::name(), TransformBase::TransformBase(), XYTransform::XYTransform(), XYZTransform::XYZTransform(), and XYZTransformBase::XYZTransformBase(). |
|
Does this binary tranform needs grid?
Definition at line 46 of file BinaryTransform.h. Referenced by BinaryTransform::BinaryTransform(), BinaryTransform::needsGrid(), and BinaryTransform::setNeedsGrid(). |
|
Does this binary tranform x ticks?
Definition at line 49 of file BinaryTransform.h. Referenced by BinaryTransform::BinaryTransform(), BinaryTransform::needsXTicks(), and BinaryTransform::setNeedsXTicks(). |
|
Does this binary tranform y ticks?
Definition at line 52 of file BinaryTransform.h. Referenced by BinaryTransform::BinaryTransform(), BinaryTransform::needsYTicks(), and BinaryTransform::setNeedsYTicks(). |
|
The ticks last generated by this transform.
Definition at line 43 of file HammerAito.h. Referenced by genTicks(). |
|
The limits on X axis of the transform.
Definition at line 37 of file PeriodicBinaryTransform.h. Referenced by PeriodicBinaryTransform::limitX(), PeriodicBinaryTransform::moduloAddX(), and PeriodicBinaryTransform::moduloSubX(). |
|
The xoffset of this periodic transform.
Definition at line 43 of file PeriodicBinaryTransform.h. Referenced by PeriodicBinaryTransform::setXOffset(), and PeriodicBinaryTransform::xOffset(). |
|
The limits on Y axis of the transform.
Definition at line 40 of file PeriodicBinaryTransform.h. Referenced by PeriodicBinaryTransform::limitY(), PeriodicBinaryTransform::moduloAddY(), and PeriodicBinaryTransform::moduloSubY(). |
|
The yoffset of this periodic transform.
Definition at line 46 of file PeriodicBinaryTransform.h. Referenced by PeriodicBinaryTransform::setYOffset(), and PeriodicBinaryTransform::yOffset(). |
|
The transform on the Z axis.
Definition at line 43 of file BinaryTransform.h. Referenced by XYTransform::adjustValues(), BinaryTransform::BinaryTransform(), BinaryTransform::inverseTransformZ(), BinaryTransform::limitZ(), XYTransform::setTicks(), Lambert::setTicks(), setTicks(), BinaryTransform::setZTransform(), BinaryTransform::transformZ(), BinaryTransform::zTransform(), and BinaryTransform::~BinaryTransform(). |