XYTransform Class Reference

#include <XYTransform.h>

Inheritance diagram for XYTransform:

Inheritance graph
BinaryTransformTransformBase
[legend]
Collaboration diagram for XYTransform:

Collaboration graph
BinaryTransformTransformBaseUnaryTransformRange
[legend]
List of all members.

Detailed Description

A transform that transforms the X and Y coordinates independently.

Author:
Paul_Kunz@slac.stanford.edu

Definition at line 30 of file XYTransform.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 Rect calcRectangle (const Range &x, const Range &y)
 Returns a rectangle enclosing the transformed data space.
virtual XYTransformclone () const
 Creates a new Transform object by copying an existing one.
virtual bool inverseTransform (double &x, double &y) 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.
virtual bool isLinearInZ () const
 Returns true if the transform would be one to one on Z axes.
bool isPeriodic () const
 Sets whether this transform is periodic.
virtual const RangelimitX () const
 Returns a Range whose values are the limits on the X coordinate.
virtual const RangelimitY () const
 Returns a Range whose values are the limits on the Y coordinate.
const RangelimitZ () const
 Returns the Range limits on the third coordinate.
const std::string & name () const
 Returns the name of the Transform.
bool needsGrid () const
 Returns whether this transform needs grid.
bool needsXTicks () const
 Returns whether this transform needs x ticks.
bool needsYTicks () const
 Returns whether this transform needs y ticks.
void setNeedsGrid (bool needs_grid)
 Sets whether this transform needs grid.
void setNeedsXTicks (bool needs_x_ticks)
 Sets whether this transform needs x ticks.
void setNeedsYTicks (bool needs_y_ticks)
 Sets whether this transform needs y yicks.
virtual const std::vector<
AxisTick > & 
setTicks (AxisModelBase &axis_model, hippodraw::Axes::Type axis)
 Sets and return the axis ticks on specified axis.
void setZTransform (TransformBase *transform)
 Sets the transform function on the Z axis.
virtual void transform (std::vector< double > &x, std::vector< double > &y) const
 A transform on two axes.
virtual void transform (double &x, double &y) const
 Transform the coordinates on the X and Y axes.
void transformZ (double &z) const
 Transforms the z coordinate.
virtual void validate (Range &x, Range &y) const
 Validates the Ranges.
TransformBasexTransform () const
 Returns the transform function on the X axis.
 XYTransform (const XYTransform &)
 The copy constructor.
 XYTransform (UnaryTransform *x, UnaryTransform *y, UnaryTransform *z)
 The following constructor takes three base constructors as arguments.
TransformBaseyTransform () const
 Returns the transform function on the Y axis.
TransformBasezTransform () const
 Returns the transform function on the Z axis.
virtual ~XYTransform ()
 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 transform needs grid?
bool m_needs_x_ticks
 Does this binary transform x ticks?
bool m_needs_y_ticks
 Does this binary transform y ticks?
UnaryTransformm_z
 The transform on the Z axis.

Private Attributes

UnaryTransformm_x
 The transform on the X axis.
UnaryTransformm_y
 The transform on the Y axis.


Constructor & Destructor Documentation

XYTransform ( UnaryTransform x,
UnaryTransform y,
UnaryTransform z 
)

The following constructor takes three base constructors as arguments.

Definition at line 26 of file XYTransform.cxx.

References TransformBase::m_name, XYTransform::m_x, XYTransform::m_y, and TransformBase::name().

Referenced by XYTransform::clone().

XYTransform ( const XYTransform  ) 

The copy constructor.

Definition at line 50 of file XYTransform.cxx.

References UnaryTransform::clone(), XYTransform::m_x, and XYTransform::m_y.

~XYTransform (  )  [virtual]

The virtual destructor.

Definition at line 44 of file XYTransform.cxx.

References XYTransform::m_x, and XYTransform::m_y.


Member Function Documentation

void adjustValues ( AxisModelBase model,
hippodraw::Axes::Type  axes,
const Range limit 
) [virtual]

Sets the range of given axis to be a new "nice" within the limits given.

Implements BinaryTransform.

Definition at line 172 of file XYTransform.cxx.

References XYTransform::m_x, XYTransform::m_y, BinaryTransform::m_z, hippodraw::Axes::X, hippodraw::Axes::Y, and hippodraw::Axes::Z.

double aspectRatio (  )  const [virtual]

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 108 of file XYTransform.cxx.

Rect calcRectangle ( const Range x,
const Range y 
) [virtual]

Returns a rectangle enclosing the transformed data space.

Implements BinaryTransform.

Definition at line 113 of file XYTransform.cxx.

References Range::high(), Range::low(), and XYTransform::transform().

XYTransform * clone (  )  const [virtual]

Creates a new Transform object by copying an existing one.

Implements BinaryTransform.

Definition at line 65 of file XYTransform.cxx.

References XYTransform::XYTransform().

bool inverseTransform ( double &  x,
double &  y 
) const [virtual]

Transform the transformed coordinates on X and Y axis back to the original true data space.

Return true if success, else return false.

Implements BinaryTransform.

Definition at line 88 of file XYTransform.cxx.

References UnaryTransform::inverseTransform(), XYTransform::m_x, and XYTransform::m_y.

void inverseTransformZ ( double &  z  )  const [inherited]

Inverse transforms the z coordinate.

Definition at line 106 of file BinaryTransform.cxx.

References UnaryTransform::inverseTransform(), and BinaryTransform::m_z.

bool isLinearInXY (  )  const [virtual]

Returns true if the transform would be one to one on both the X and Y axes.

Clients can use this function to avoid calling the transform in for loops.

Implements BinaryTransform.

Definition at line 73 of file XYTransform.cxx.

References XYTransform::m_x, and XYTransform::m_y.

bool isLinearInZ (  )  const [virtual, inherited]

Returns true if the transform would be one to one on Z axes.

Clients can use this function to avoid calling the transform in for loops.

Definition at line 153 of file BinaryTransform.cxx.

References UnaryTransform::isLinear(), and BinaryTransform::m_z.

Referenced by ContourPointRep::getContour().

bool isPeriodic (  )  const [inherited]

Sets whether this transform is periodic.

Definition at line 148 of file BinaryTransform.cxx.

References BinaryTransform::m_is_periodic.

Referenced by BinaryTransform::BinaryTransform(), AxisRepBase::drawCrossHairs(), ContourPointRep::drawProjectedValues(), CompositePlotter::fillPickedPoint(), XyPlotter::getZValues(), Inspector::setHighRange(), and Inspector::updateTransformTab().

const Range & limitX (  )  const [virtual]

Returns a Range whose values are the limits on the X coordinate.

Implements BinaryTransform.

Definition at line 135 of file XYTransform.cxx.

References UnaryTransform::limits(), and XYTransform::m_x.

const Range & limitY (  )  const [virtual]

Returns a Range whose values are the limits on the Y coordinate.

Implements BinaryTransform.

Definition at line 140 of file XYTransform.cxx.

References UnaryTransform::limits(), and XYTransform::m_y.

const Range & limitZ (  )  const [inherited]

Returns the Range limits on the third coordinate.

Definition at line 112 of file BinaryTransform.cxx.

References UnaryTransform::limits(), and BinaryTransform::m_z.

Referenced by CompositePlotter::autoScaleZ(), and CompositePlotter::setRangePrivate().

const string & name (  )  const [inherited]

Returns the name of the Transform.

Definition at line 45 of file TransformBase.cxx.

References TransformBase::m_name.

Referenced by BinaryTransform::BinaryTransform(), TransformXML::createElement(), DisplayController::getLog(), DisplayController::setLog(), Inspector::updateTransformTab(), and XYTransform::XYTransform().

bool needsGrid (  )  const [inherited]

Returns whether this transform needs grid.

Definition at line 118 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_grid.

Referenced by BinaryTransform::BinaryTransform().

bool needsXTicks (  )  const [inherited]

Returns whether this transform needs x ticks.

Definition at line 128 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_x_ticks.

Referenced by BinaryTransform::BinaryTransform(), and CompositePlotter::drawAxisRep().

bool needsYTicks (  )  const [inherited]

Returns whether this transform needs y ticks.

Definition at line 138 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_y_ticks.

Referenced by BinaryTransform::BinaryTransform(), and CompositePlotter::drawAxisRep().

void setNeedsGrid ( bool  needs_grid  )  [inherited]

Sets whether this transform needs grid.

Definition at line 123 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_grid.

void setNeedsXTicks ( bool  needs_x_ticks  )  [inherited]

Sets whether this transform needs x ticks.

Definition at line 133 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_x_ticks.

void setNeedsYTicks ( bool  needs_y_ticks  )  [inherited]

Sets whether this transform needs y yicks.

Definition at line 143 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_y_ticks.

const vector< AxisTick > & setTicks ( AxisModelBase axis_model,
hippodraw::Axes::Type  axis 
) [virtual]

Sets and return the axis ticks on specified axis.

Implements BinaryTransform.

Definition at line 157 of file XYTransform.cxx.

References XYTransform::m_x, XYTransform::m_y, BinaryTransform::m_z, UnaryTransform::setTicks(), hippodraw::Axes::X, and hippodraw::Axes::Y.

void setZTransform ( TransformBase transform  )  [inherited]

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 93 of file BinaryTransform.cxx.

References BinaryTransform::m_z, and BinaryTransform::transform().

void transform ( std::vector< double > &  x,
std::vector< double > &  y 
) const [virtual]

A transform on two axes.

Implements BinaryTransform.

Definition at line 101 of file XYTransform.cxx.

References XYTransform::m_x, XYTransform::m_y, and UnaryTransform::transform().

void transform ( double &  x,
double &  y 
) const [virtual]

Transform the coordinates on the X and Y axes.

Attention:
The arguments are passed by reference so the values may changed.

Implements BinaryTransform.

Definition at line 79 of file XYTransform.cxx.

References XYTransform::m_x, XYTransform::m_y, and UnaryTransform::transform().

Referenced by XYTransform::calcRectangle().

void transformZ ( double &  z  )  const [inherited]

Transforms the z coordinate.

Definition at line 100 of file BinaryTransform.cxx.

References BinaryTransform::m_z, and UnaryTransform::transform().

Referenced by ContourPointRep::drawContourTicks(), AxisRepColor::drawZTickLabels(), AxisRepColor::drawZTickLines(), and CompositePlotter::prepareToDraw().

void validate ( Range x,
Range y 
) const [virtual]

Validates the Ranges.

Adjusts Ranges to be restricted to that which is valid for the transform.

Implements BinaryTransform.

Definition at line 128 of file XYTransform.cxx.

References XYTransform::m_x, XYTransform::m_y, and UnaryTransform::validate().

TransformBase * xTransform (  )  const

Returns the transform function on the X axis.

Definition at line 145 of file XYTransform.cxx.

References XYTransform::m_x.

Referenced by DisplayController::getLog(), and DisplayController::setLog().

TransformBase * yTransform (  )  const

Returns the transform function on the Y axis.

Definition at line 150 of file XYTransform.cxx.

References XYTransform::m_y.

Referenced by DisplayController::getLog(), and DisplayController::setLog().

TransformBase * zTransform (  )  const [inherited]

Returns the transform function on the Z axis.

Definition at line 86 of file BinaryTransform.cxx.

References BinaryTransform::m_z.

Referenced by DisplayController::getLog(), and DisplayController::setLog().


Member Data Documentation

bool m_is_periodic [protected, inherited]

Is this transform periodic.

Definition at line 57 of file BinaryTransform.h.

Referenced by BinaryTransform::BinaryTransform(), and BinaryTransform::isPeriodic().

std::string m_name [protected, inherited]

Name of the Transform.

Definition at line 42 of file TransformBase.h.

Referenced by AIR::AIR(), AIR2::AIR2(), ARC::ARC(), ARC2::ARC2(), BinaryTransform::BinaryTransform(), Cartesian::Cartesian(), Cartesian2::Cartesian2(), GlobalSinusoidal::GlobalSinusoidal(), GlobalSinusoidal2::GlobalSinusoidal2(), HammerAito::HammerAito(), HammerAito2::HammerAito2(), Lambert::Lambert(), Lambert2::Lambert2(), LinearTransform::LinearTransform(), LogTransform::LogTransform(), Mercator::Mercator(), Mercator2::Mercator2(), TransformBase::name(), SIN::SIN(), SIN2::SIN2(), STG::STG(), STG2::STG2(), TAN::TAN(), TAN2::TAN2(), TransformBase::TransformBase(), XYTransform::XYTransform(), XYZTransform::XYZTransform(), and XYZTransformBase::XYZTransformBase().

bool m_needs_grid [protected, inherited]

Does this binary transform needs grid?

Definition at line 48 of file BinaryTransform.h.

Referenced by BinaryTransform::BinaryTransform(), BinaryTransform::needsGrid(), and BinaryTransform::setNeedsGrid().

bool m_needs_x_ticks [protected, inherited]

Does this binary transform x ticks?

Definition at line 51 of file BinaryTransform.h.

Referenced by BinaryTransform::BinaryTransform(), BinaryTransform::needsXTicks(), and BinaryTransform::setNeedsXTicks().

bool m_needs_y_ticks [protected, inherited]

Does this binary transform y ticks?

Definition at line 54 of file BinaryTransform.h.

Referenced by BinaryTransform::BinaryTransform(), BinaryTransform::needsYTicks(), and BinaryTransform::setNeedsYTicks().

UnaryTransform* m_x [private]

The transform on the X axis.

Definition at line 36 of file XYTransform.h.

Referenced by XYTransform::adjustValues(), XYTransform::inverseTransform(), XYTransform::isLinearInXY(), XYTransform::limitX(), XYTransform::setTicks(), XYTransform::transform(), XYTransform::validate(), XYTransform::xTransform(), XYTransform::XYTransform(), and XYTransform::~XYTransform().

UnaryTransform* m_y [private]

The transform on the Y axis.

Definition at line 39 of file XYTransform.h.

Referenced by XYTransform::adjustValues(), XYTransform::inverseTransform(), XYTransform::isLinearInXY(), XYTransform::limitY(), XYTransform::setTicks(), XYTransform::transform(), XYTransform::validate(), XYTransform::XYTransform(), XYTransform::yTransform(), and XYTransform::~XYTransform().

UnaryTransform* m_z [protected, inherited]

The transform on the Z axis.

Definition at line 45 of file BinaryTransform.h.

Referenced by XYTransform::adjustValues(), BinaryTransform::BinaryTransform(), BinaryTransform::inverseTransformZ(), BinaryTransform::isLinearInZ(), BinaryTransform::limitZ(), XYTransform::setTicks(), PeriodicBinaryTransform::setTicks(), BinaryTransform::setZTransform(), BinaryTransform::transformZ(), BinaryTransform::zTransform(), and BinaryTransform::~BinaryTransform().


The documentation for this class was generated from the following files:
Generated for HippoDraw Class Library by doxygen