Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

PeriodicBinaryTransform Class Reference

#include <PeriodicBinaryTransform.h>

Inheritance diagram for PeriodicBinaryTransform:

Inheritance graph
[legend]
Collaboration diagram for PeriodicBinaryTransform:

Collaboration graph
[legend]
List of all members.

Detailed Description

A Periodic transform that transforms cordinates from one 2D coordinate system to another.

Author:
kaustuv <kaustuv@stanford.edu>

Definition at line 31 of file PeriodicBinaryTransform.h.

Public Member Functions

virtual void adjustValues (AxisModelBase &model, hippodraw::Axes::Type axes, const Range &limit)=0
 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)=0
 Returns a HippoRectangle enclosing the transformed data space.
virtual BinaryTransformclone () const =0
 Creates a new XYTransform object by copying an existing one.
virtual void inverseTransform (double &x, double &y) const =0
 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 =0
 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 RangelimitX () const
 Returns the Range limits of the first corrdinate.
virtual const RangelimitY () const
 Returns the Range limits of the second corrdinate.
const RangelimitZ () 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::stringname () 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)=0
 Sets and return the axis ticks on specified 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 > &x, std::vector< double > &y) const =0
 A transform on two axes.
virtual void transform (double &x, double &y) const =0
 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 =0
 Validates the Ranges.
double xOffset () const
 Returns the xOffset of the (periodic) transform.
double yOffset () const
 Returns the yOffset of the (periodic) transform.
TransformBasezTransform () const
 Returns the transform function on the Z axis.
virtual ~PeriodicBinaryTransform ()
 The virtual destructor.

Protected Member Functions

 PeriodicBinaryTransform (const PeriodicBinaryTransform &)
 The copy constructor.
 PeriodicBinaryTransform (UnaryTransform *, bool=false, bool=false, bool=true, bool=true, double=-180, double=+180, double=-90, double=+90)
 The constructor that take the z transform as argument also it takes and argument which states if it is a periodic transformation (default false), next optional argument says if this transform needs a grid or not (default is false), and if it needs x and y ticks or not (Default is true).
 PeriodicBinaryTransform ()
 The default constructor.

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.
UnaryTransformm_z
 The transform on the Z axis.


Constructor & Destructor Documentation

PeriodicBinaryTransform::PeriodicBinaryTransform  )  [protected]
 

The default constructor.

. Sets the function name to "nil". Should be overriden by derived class. If function name is "nil", then that indicated error condition that default constructor was called directly.

Definition at line 21 of file PeriodicBinaryTransform.cxx.

PeriodicBinaryTransform::PeriodicBinaryTransform UnaryTransform ,
bool  = false,
bool  = false,
bool  = true,
bool  = true,
double  = -180,
double  = +180,
double  = -90,
double  = +90
[protected]
 

The constructor that take the z transform as argument also it takes and argument which states if it is a periodic transformation (default false), next optional argument says if this transform needs a grid or not (default is false), and if it needs x and y ticks or not (Default is true).

Finally we introduce xlo, xhi, ylow and yhi which define the appropriate limits on X and Y axis

Definition at line 30 of file PeriodicBinaryTransform.cxx.

PeriodicBinaryTransform::PeriodicBinaryTransform const PeriodicBinaryTransform  )  [protected]
 

The copy constructor.

Definition at line 46 of file PeriodicBinaryTransform.cxx.

PeriodicBinaryTransform::~PeriodicBinaryTransform  )  [virtual]
 

The virtual destructor.

Definition at line 55 of file PeriodicBinaryTransform.cxx.


Member Function Documentation

virtual void BinaryTransform::adjustValues AxisModelBase model,
hippodraw::Axes::Type  axes,
const Range limit
[pure virtual, inherited]
 

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

Implemented in HammerAito, Lambert, and XYTransform.

Referenced by CompositePlotter::autoScale().

double BinaryTransform::aspectRatio  )  const [virtual, inherited]
 

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 TransformBase.

Reimplemented in HammerAito, Lambert, and XYTransform.

Definition at line 79 of file BinaryTransform.cxx.

virtual HippoRectangle BinaryTransform::calcRectangle const Range x,
const Range y
[pure virtual, inherited]
 

Returns a HippoRectangle enclosing the transformed data space.

Implemented in HammerAito, Lambert, and XYTransform.

virtual BinaryTransform* BinaryTransform::clone  )  const [pure virtual, inherited]
 

Creates a new XYTransform object by copying an existing one.

Implements TransformBase.

Implemented in HammerAito, Lambert, and XYTransform.

virtual void BinaryTransform::inverseTransform double &  x,
double &  y
const [pure virtual, inherited]
 

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

Implemented in HammerAito, Lambert, and XYTransform.

void BinaryTransform::inverseTransformZ double &  z  )  const [inherited]
 

Inverse transforms the z coordinate.

Definition at line 104 of file BinaryTransform.cxx.

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

virtual bool BinaryTransform::isLinearInXY  )  const [pure virtual, inherited]
 

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.

Implemented in HammerAito, Lambert, and XYTransform.

bool BinaryTransform::isPeriodic  )  const [inherited]
 

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

const Range & PeriodicBinaryTransform::limitX  )  const [virtual]
 

Returns the Range limits of the first corrdinate.

Implements BinaryTransform.

Definition at line 60 of file PeriodicBinaryTransform.cxx.

References m_x_limits.

const Range & PeriodicBinaryTransform::limitY  )  const [virtual]
 

Returns the Range limits of the second corrdinate.

Implements BinaryTransform.

Definition at line 66 of file PeriodicBinaryTransform.cxx.

References m_y_limits.

const Range & BinaryTransform::limitZ  )  const [inherited]
 

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

double PeriodicBinaryTransform::moduloAdd double  a1,
double  a2,
hippodraw::Axes::Type  axis
const
 

Modulo Addition along either X or Y axis.

Definition at line 96 of file PeriodicBinaryTransform.cxx.

References moduloAddX(), moduloAddY(), hippodraw::Axes::X, and hippodraw::Axes::Y.

double PeriodicBinaryTransform::moduloAddX double  x1,
double  x2
const
 

Modulo Addition along X axis.

Definition at line 120 of file PeriodicBinaryTransform.cxx.

References Range::high(), Range::low(), m_x_limits, and moduloSubX().

Referenced by CompositePlotter::fillPickedPoint(), Lambert::genTicks(), HammerAito::genTicks(), moduloAdd(), moduloSubX(), and Inspector::setHighRange().

double PeriodicBinaryTransform::moduloAddY double  y1,
double  y2
const
 

Modulo Addition along Y axis.

Definition at line 149 of file PeriodicBinaryTransform.cxx.

References Range::high(), Range::low(), m_y_limits, and moduloSubY().

Referenced by CompositePlotter::fillPickedPoint(), Lambert::genTicks(), HammerAito::genTicks(), moduloAdd(), moduloSubY(), and Inspector::setHighRange().

double PeriodicBinaryTransform::moduloSub double  s1,
double  s2,
hippodraw::Axes::Type  axis
const
 

Modulo Substraction along either X or Y axis.

Definition at line 109 of file PeriodicBinaryTransform.cxx.

References moduloSubX(), moduloSubY(), hippodraw::Axes::X, and hippodraw::Axes::Y.

double PeriodicBinaryTransform::moduloSubX double  x1,
double  x2
const
 

Modulo Substraction along X axis.

Definition at line 135 of file PeriodicBinaryTransform.cxx.

References Range::high(), Range::low(), m_x_limits, and moduloAddX().

Referenced by AxisRepBase::drawCrossHairs(), moduloAddX(), and moduloSub().

double PeriodicBinaryTransform::moduloSubY double  y1,
double  y2
const
 

Modulo Substraction along Y axis.

Definition at line 164 of file PeriodicBinaryTransform.cxx.

References Range::high(), Range::low(), m_y_limits, and moduloAddY().

Referenced by AxisRepBase::drawCrossHairs(), moduloAddY(), and moduloSub().

const string & TransformBase::name  )  const [inherited]
 

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

bool BinaryTransform::needsGrid  )  const [inherited]
 

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

bool BinaryTransform::needsXTicks  )  const [inherited]
 

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

bool BinaryTransform::needsYTicks  )  const [inherited]
 

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

void BinaryTransform::setNeedsGrid bool  needs_grid  )  [inherited]
 

Sets wether this transform needs grid.

Definition at line 121 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_grid.

void BinaryTransform::setNeedsXTicks bool  needs_x_ticks  )  [inherited]
 

Sets wether this transform needs x ticks.

Definition at line 131 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_x_ticks.

void BinaryTransform::setNeedsYTicks bool  needs_y_ticks  )  [inherited]
 

Sets wether this transform needs y yicks.

Definition at line 141 of file BinaryTransform.cxx.

References BinaryTransform::m_needs_y_ticks.

virtual const std::vector< AxisTick >& BinaryTransform::setTicks AxisModelBase axis_model,
hippodraw::Axes::Type  axis
[pure virtual, inherited]
 

Sets and return the axis ticks on specified axis.

Implemented in HammerAito, Lambert, and XYTransform.

void PeriodicBinaryTransform::setXOffset double  x_offset  ) 
 

Sets the xOffset of the (periodic) transform.

Definition at line 77 of file PeriodicBinaryTransform.cxx.

References m_x_offset.

Referenced by Inspector::autoScale_clicked(), and Inspector::setHighRange().

void PeriodicBinaryTransform::setYOffset double  y_offset  ) 
 

Sets the yOffset of the (periodic) transform.

Definition at line 87 of file PeriodicBinaryTransform.cxx.

References m_y_offset.

Referenced by Inspector::autoScale_clicked(), and Inspector::setHighRange().

void BinaryTransform::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 91 of file BinaryTransform.cxx.

References BinaryTransform::m_z.

virtual void BinaryTransform::transform std::vector< double > &  x,
std::vector< double > &  y
const [pure virtual, inherited]
 

A transform on two axes.

Implemented in HammerAito, Lambert, and XYTransform.

virtual void BinaryTransform::transform double &  x,
double &  y
const [pure virtual, inherited]
 

Transform the coordinates on the X and Y axes.

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

Implemented in HammerAito, Lambert, and XYTransform.

Referenced by AxisRepBase::drawAxesLines(), AxisRepBase::drawCrossHairs(), AxisRepBase::drawGridLines(), CutRangeRep::drawInvertedRange1D(), CutRangeRep::drawInvertedRange2D(), CutRangeRep::drawNormalRange(), ErrorBarRep::drawXError(), AxisRepBase::drawXTickLabels(), AxisRepBase::drawXTickLines(), ErrorBarRep::drawYError(), AxisRepBase::drawYTickLabels(), AxisRepBase::drawYTickLines(), ContourPointRep::endPlot(), and SymbolPointRep::transformPoints().

void BinaryTransform::transformZ double &  z  )  const [inherited]
 

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

virtual void BinaryTransform::validate Range x,
Range y
const [pure virtual, inherited]
 

Validates the Ranges.

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

Implemented in HammerAito, Lambert, and XYTransform.

Referenced by AxisRepBase::drawGridLines(), and CompositePlotter::prepareToDraw().

double PeriodicBinaryTransform::xOffset  )  const
 

Returns the xOffset of the (periodic) transform.

Definition at line 72 of file PeriodicBinaryTransform.cxx.

References m_x_offset.

Referenced by AxisRepBase::drawCrossHairs(), CompositePlotter::fillPickedPoint(), Lambert::genTicks(), HammerAito::genTicks(), and Inspector::setHighRange().

double PeriodicBinaryTransform::yOffset  )  const
 

Returns the yOffset of the (periodic) transform.

Definition at line 82 of file PeriodicBinaryTransform.cxx.

References m_y_offset.

Referenced by AxisRepBase::drawCrossHairs(), CompositePlotter::fillPickedPoint(), Lambert::genTicks(), HammerAito::genTicks(), and Inspector::setHighRange().

TransformBase * BinaryTransform::zTransform  )  const [inherited]
 

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


Member Data Documentation

bool BinaryTransform::m_is_periodic [protected, inherited]
 

Is this transform periodic.

Definition at line 55 of file BinaryTransform.h.

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

std::string TransformBase::m_name [protected, inherited]
 

Name of the Transform.

Definition at line 39 of file TransformBase.h.

Referenced by BinaryTransform::BinaryTransform(), HammerAito::HammerAito(), Lambert::Lambert(), LinearTransform::LinearTransform(), LogTransform::LogTransform(), TransformBase::name(), TransformBase::TransformBase(), XYTransform::XYTransform(), XYZTransform::XYZTransform(), and XYZTransformBase::XYZTransformBase().

bool BinaryTransform::m_needs_grid [protected, inherited]
 

Does this binary tranform needs grid?

Definition at line 46 of file BinaryTransform.h.

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

bool BinaryTransform::m_needs_x_ticks [protected, inherited]
 

Does this binary tranform x ticks?

Definition at line 49 of file BinaryTransform.h.

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

bool BinaryTransform::m_needs_y_ticks [protected, inherited]
 

Does this binary tranform y ticks?

Definition at line 52 of file BinaryTransform.h.

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

Range PeriodicBinaryTransform::m_x_limits [protected]
 

The limits on X axis of the transform.

Definition at line 37 of file PeriodicBinaryTransform.h.

Referenced by limitX(), moduloAddX(), and moduloSubX().

double PeriodicBinaryTransform::m_x_offset [protected]
 

The xoffset of this periodic transform.

Definition at line 43 of file PeriodicBinaryTransform.h.

Referenced by setXOffset(), and xOffset().

Range PeriodicBinaryTransform::m_y_limits [protected]
 

The limits on Y axis of the transform.

Definition at line 40 of file PeriodicBinaryTransform.h.

Referenced by limitY(), moduloAddY(), and moduloSubY().

double PeriodicBinaryTransform::m_y_offset [protected]
 

The yoffset of this periodic transform.

Definition at line 46 of file PeriodicBinaryTransform.h.

Referenced by setYOffset(), and yOffset().

UnaryTransform* BinaryTransform::m_z [protected, inherited]
 

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(), HammerAito::setTicks(), BinaryTransform::setZTransform(), BinaryTransform::transformZ(), BinaryTransform::zTransform(), and BinaryTransform::~BinaryTransform().


The documentation for this class was generated from the following files:
Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3