Public Member Functions | Protected Attributes | Private Attributes | List of all members
XYTransform Class Reference

A transform that transforms the X and Y coordinates independently. More...

#include <XYTransform.h>

Inheritance diagram for XYTransform:
Inheritance graph
[legend]
Collaboration diagram for XYTransform:
Collaboration graph
[legend]

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 (double &x, double &y) const
 Transform the coordinates on the X and Y axes.
virtual void transform (std::vector< double > &x, std::vector< double > &y) const
 A transform on two 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 (UnaryTransform *x, UnaryTransform *y, UnaryTransform *z)
 The following constructor takes three base constructors as arguments.
 XYTransform (const XYTransform &)
 The copy constructor.
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.

Detailed Description

A transform that transforms the X and Y coordinates independently.

Author
Paul_.nosp@m.Kunz.nosp@m.@slac.nosp@m..sta.nosp@m.nford.nosp@m..edu

Definition at line 30 of file XYTransform.h.

Constructor & Destructor Documentation

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().

XYTransform ( const XYTransform t)

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.

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
virtualinherited

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
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
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 ( 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 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 transformZ ( double &  z) const
inherited
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
protectedinherited

Is this transform periodic.

Definition at line 57 of file BinaryTransform.h.

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

std::string m_name
protectedinherited
bool m_needs_grid
protectedinherited

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
protectedinherited

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
protectedinherited

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
UnaryTransform* m_y
private
UnaryTransform* m_z
protectedinherited

The documentation for this class was generated from the following files:

Generated for HippoDraw Class Library by doxygen