LogTransform Class Reference

A UnaryTransform which takes the log of the coordinate. More...

#include <LogTransform.h>

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

List of all members.

Public Member Functions

const RangeadjustValues (AxisModelBase &axis, const Range &limit)
 Sets the range of given axis to be a new "nice" within the limits given.
virtual double aspectRatio () const
 Get the aspect ratio.
virtual LogTransformclone () const
 Creates a new Transform object by copying an existing one.
virtual void inverseTransform (double &x) const
 Inverse transforms the coordinate x.
virtual bool isLinear () const
virtual const Rangelimits () const
 Returns a Range whose values are the limits on the coordinate.
 LogTransform (const LogTransform &)
 The copy constructor.
 LogTransform ()
 The default constructor.
const std::string & name () const
 Returns the name of the Transform.
virtual const std::vector
< AxisTick > & 
setTicks (AxisModelBase &axis)
 Sets the vector of ticks along the axis to which this Log transform is applied.
virtual void transform (std::vector< double > &x) const
 Transforms each element of the vector x.
virtual void transform (double &x) const
 Transforms the coordinate @ x.
virtual void validate (Range &) const
 Validates the Range, and adjusts the argument Range so that the values are positive.
virtual ~LogTransform ()
 The virtual destructor.

Protected Attributes

const Range m_limits
 The valid Range of the transform.
std::string m_name
 Name of the Transform.

Private Member Functions

const RangeadjustLogValues (AxisModelBase &axis)
const std::vector< AxisTick > & genTicks (AxisModelBase &)
double nextStep (double current, AxisModelBase &axis)
double prevStep (double current, AxisModelBase &axis)
void setFirstTick (AxisModelBase &)
void setTickStep (AxisModelBase &)

Private Attributes

std::vector< AxisTickm_ticks
 The ticks generated by this transform.

Detailed Description

A UnaryTransform which takes the log of the coordinate.

Author:
Paul F. Kunz <Paul_Kunz@slac.stanford.edu>

Definition at line 28 of file LogTransform.h.


Constructor & Destructor Documentation

LogTransform (  ) 

The default constructor.

Definition at line 41 of file LogTransform.cxx.

References TransformBase::m_name.

LogTransform ( const LogTransform lt  ) 

The copy constructor.

Definition at line 51 of file LogTransform.cxx.

~LogTransform (  )  [virtual]

The virtual destructor.

Definition at line 47 of file LogTransform.cxx.


Member Function Documentation

const Range & adjustLogValues ( AxisModelBase axis  )  [private]
const Range & adjustValues ( AxisModelBase axis,
const Range limit 
) [virtual]
double aspectRatio (  )  const [virtual, inherited]
LogTransform * clone (  )  const [virtual]

Creates a new Transform object by copying an existing one.

Implements UnaryTransform.

Definition at line 59 of file LogTransform.cxx.

const vector< AxisTick > & genTicks ( AxisModelBase axis  )  [private]
Todo:

This is an ugly way to display scientific notation. Can we improve it?

Use C++ stringstream insted of sprintf().

Definition at line 183 of file LogTransform.cxx.

References hippodraw::FLT_EQUAL(), AxisModelBase::getFirstTick(), AxisModelBase::getMaxTicks(), AxisModelBase::getRange(), AxisModelBase::getScaleFactor(), AxisModelBase::getTickStep(), Range::high(), Range::low(), LogTransform::m_ticks, and LogTransform::nextStep().

Referenced by LogTransform::setTicks().

void inverseTransform ( double &  x  )  const [virtual]

Inverse transforms the coordinate x.

Implements UnaryTransform.

Definition at line 77 of file LogTransform.cxx.

bool isLinear (  )  const [virtual]

Implements UnaryTransform.

Definition at line 67 of file LogTransform.cxx.

const Range & limits (  )  const [virtual, inherited]

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

Definition at line 28 of file UnaryTransform.cxx.

References UnaryTransform::m_limits.

Referenced by XYZTransform::limitX(), XYTransform::limitX(), XYZTransform::limitY(), XYTransform::limitY(), XYZTransform::limitZ(), and BinaryTransform::limitZ().

const string & name (  )  const [inherited]
double nextStep ( double  current,
AxisModelBase axis 
) [private]

Todo:
: Change this to an array of good ticks rather than hardcoded in here.

Definition at line 293 of file LogTransform.cxx.

References AxisModelBase::getTickStep().

Referenced by LogTransform::adjustValues(), and LogTransform::genTicks().

double prevStep ( double  current,
AxisModelBase axis 
) [private]
Todo:
Change this to an array of good ticks rather than hardcoded in here.

Definition at line 335 of file LogTransform.cxx.

References AxisModelBase::getTickStep().

Referenced by LogTransform::adjustValues(), and LogTransform::setFirstTick().

void setFirstTick ( AxisModelBase axis  )  [private]
const vector< AxisTick > & setTicks ( AxisModelBase axis  )  [virtual]

Sets the vector of ticks along the axis to which this Log transform is applied.

Implements UnaryTransform.

Definition at line 117 of file LogTransform.cxx.

References LogTransform::genTicks(), LogTransform::setFirstTick(), and LogTransform::setTickStep().

void setTickStep ( AxisModelBase axis  )  [private]
void transform ( std::vector< double > &  x  )  const [virtual]

Transforms each element of the vector x.

If any element is non positive, it is transformed to -DBL_MAX.

Implements UnaryTransform.

Definition at line 84 of file LogTransform.cxx.

void transform ( double &  x  )  const [virtual]

Transforms the coordinate @ x.

If the coordinate is non-positive, it is transformed to -DBL_MAX as defined in float.h.

Implements UnaryTransform.

Definition at line 72 of file LogTransform.cxx.

void validate ( Range range  )  const [virtual]

Validates the Range, and adjusts the argument Range so that the values are positive.

Implements UnaryTransform.

Definition at line 101 of file LogTransform.cxx.

References Range::high(), Range::low(), Range::pos(), Range::setHigh(), and Range::setLow().


Member Data Documentation

const Range m_limits [protected, inherited]

The valid Range of the transform.

Definition at line 41 of file UnaryTransform.h.

Referenced by UnaryTransform::limits().

std::string m_name [protected, inherited]
std::vector< AxisTick > m_ticks [private]

The ticks generated by this transform.

Definition at line 34 of file LogTransform.h.

Referenced by LogTransform::genTicks().


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

Generated for HippoDraw Class Library by doxygen