ContourPointRep Class Reference

#include <ContourPointRep.h>

Inheritance diagram for ContourPointRep:

Inheritance graph
[legend]
Collaboration diagram for ContourPointRep:

Collaboration graph
[legend]

List of all members.


Detailed Description

A PointRep class that draws a contour lines.

The ContourPointRep transforms a two dimension matrix of projected values into a set of colored contour levels. The algorithm used is adapted from CONREC, which is a contouring Fortran 77 subroutine written by Paul Bourke, of the Center for Astrophysics and Supercomputing, Swinburne University of Technology in Melbourne, Australia.

Note:
This class inherits from LinePointRep to share handling of the lines at the edges of the drawing rectangle.
Bug:
@ Contours should be smoother. Try function2d.py to see contours of double Gaussian.
Author:
Xie Fang xiefang @ stanford.edu

Sanket B. Malde sanket @ stanford.edu

Tao Xu taox @ stanford.edu

Definition at line 45 of file ContourPointRep.h.


Public Member Functions

virtual RepBaseclone ()
 The clone function returns an object of its own kind which is a copy of this object at this moment.
virtual const Colorcolor () const
 Returns the representation's color.
 ContourPointRep (const ContourPointRep &point_rep)
 The copy constructor.
 ContourPointRep (float size)
 Constructor that takes size as argument.
 ContourPointRep ()
 The default constructor.
virtual void displayError (ViewBase &view)
 Display an error message.
void drawContourTicks (const TransformBase &, ViewBase &, const std::vector< double > &)
virtual void drawProjectedValues (const DataSource *ntuple, TransformBase *transform, ViewBase *view)
 Draws the projected values.
virtual const ColorgetColor () const
 Get the color of the representation.
int getNumContours () const
 Returns the number of contours.
virtual unsigned int getStyle () const
 Returns the style of the line drawing.
const std::string & getText () const
 Gets the text.
bool getUsingUserValues () const
 Get the m_usingUserValues boolean.
virtual const BinToColorgetValueTransform () const
 Returns the value transform.
virtual bool isSelected () const
 Returns true if representation is in selected state, otherwise returns false.
const std::string & name () const
 Returns the name of the representation.
virtual void setColor (const Color &)
 Sets the color of the representation.
void setContourValues (std::vector< double > &values, ProjectorBase *proj)
 Set user defined contour values.
virtual void setErrorOn (hippodraw::Axes::Type axis, bool yes=true)
 Sets the error representation on specified axis, if any, to yes.
virtual void setHighLighted (bool yes)
 Sets the highlighted state of the point representation.
void setNumContours (int i)
 Set number of contours.
virtual void setSelected (bool yes)
 Sets the selection state of the representation.
virtual void setSize (float value)
 Sets the size of the representation.
virtual void setStyle (unsigned int style)
 Sets the style of the line drawing.
void setText (const std::string &text)
 Sets the text.
void setUsingUserValues (bool flag)
 Set the m_usingUserValues boolean.
virtual void setValueTransform (BinToColor *)
 Sets the value transform.
float size () const
 Returns the size of the representation.
virtual bool uses (hippodraw::Symbol::Type) const
 Returns true if receiving object uses a hippodraw::Symbol::Type as a property, otherwise returns false.
virtual bool uses (Color::Value) const
 Returns true if receiving object uses a Color::Value as a property, otherwise returns false.
virtual bool uses (hippodraw::Line::Style) const
 Returns true as this class uses hippodraw::Line::Style.
virtual bool xError () const
 Returns true if the point representation displays error on the X axis.
virtual bool yError () const
 Returns true if the point representation displays error on the Y axis.
 ~ContourPointRep ()
 The destructor.

Protected Member Functions

void drawValues (ViewBase *view)
 Draws the projected values from protected transformed copy to view.

Protected Attributes

Color m_color
 The color of the representation.
bool m_desel
 A flag to indicate the representation is de-selected.
ErrorBarRepm_error_rep
 The error bar representation.
bool m_highlite
 Sets the state of highlighting.
hippodraw::Line::Style m_line_style
 The style currently used.
std::string m_name
 The name of the representation.
float m_size
 The size of the representation.
std::string m_text
 The text to be displayed before the statistics.
std::vector< double > m_x
 A cache of the points along the X axis to be drawn.
std::vector< double > m_y
 A cache of the points along the Y axis to be drawn.

Static Protected Attributes

static const Color s_desel_color
 The color of the representation when it is de-selected.

Private Member Functions

void createContours (const DataSource *ntuple, const TransformBase *transform)
 The method that actually calculates the contour lines.
virtual void drawValues (const TransformBase &, ViewBase &vb)
 Does the actual drawing of the contour and the contour ticks.
virtual void drawValuesWithStyle (const TransformBase &, ViewBase &vb)
 Does the actual drawing using different line styles.
double getContour (int i, const TransformBase *transform)
 Returns the z value where the i-th level contour is to be drawn.
void init ()
 Initialization member function used by constructors.
double intersect (int p1, int p2, double *h, double *xh)
 Returns the intersection of the segment given by h[p1] and h[p2] with the segment given by xh[p1] and xh[p2].
void setContourVector (const TransformBase *transform)
 Prepare the vector of contour values.
void setMinMax (const DataSource *)
 Set the min and max Z values of the data being plotted.

Static Private Member Functions

static void rotate (double &lat, double &lon, double alpha, double beta, double gamma, bool negative=true)

Private Attributes

BinToColorm_bin_to_color
 The color scale generator.
std::vector< Colorm_colorvec
 The vector of colors used for drawing the lines.
double m_maxValue
 The max Z value of the data.
double m_minPos
 The min positive Z value of the data.
double m_minValue
 The min Z value of the data.
int m_numContours
 The number of contours to be drawn.
std::vector< Line::Stylem_stylevec
 The vector of line style used for drawing the lines.
bool m_usingUserValues
 A boolean which is true if we are using user input contour values.
std::vector< double > m_values
 The vector of contour values.

Constructor & Destructor Documentation

ContourPointRep (  ) 

The default constructor.

Definition at line 43 of file ContourPointRep.cxx.

References ContourPointRep::init().

Referenced by ContourPointRep::clone().

ContourPointRep ( float  size  ) 

Constructor that takes size as argument.

Definition at line 37 of file ContourPointRep.cxx.

References ContourPointRep::init().

ContourPointRep ( const ContourPointRep point_rep  ) 

~ContourPointRep (  ) 

The destructor.

Definition at line 74 of file ContourPointRep.cxx.

References ContourPointRep::m_bin_to_color.


Member Function Documentation

RepBase * clone (  )  [virtual]

The clone function returns an object of its own kind which is a copy of this object at this moment.

Reimplemented from LinePointRep.

Definition at line 79 of file ContourPointRep.cxx.

References ContourPointRep::ContourPointRep().

Referenced by ContourPointRep::ContourPointRep().

const Color & color (  )  const [virtual, inherited]

void createContours ( const DataSource ntuple,
const TransformBase transform 
) [private]

void displayError ( ViewBase view  )  [virtual, inherited]

Display an error message.

Display an error message instead of drawing a point. This base class implementation displays a message with the name of the RepBase object.

Definition at line 161 of file RepBase.cxx.

References ViewBase::drawText(), RepBase::m_name, and RepBase::m_size.

void drawContourTicks ( const TransformBase tb,
ViewBase base,
const std::vector< double > &  values 
)

void drawProjectedValues ( const DataSource ntuple,
TransformBase transform,
ViewBase view 
) [virtual]

Draws the projected values.

Draws the projected values contained in the DataSource ntuple. Each row of the ntuple is data point tuple of some dimension. Derived classes expect the DataSoruce to be of the correct dimension. The drawn points undergo a transform represented by transform and are drawn to the view view. If highlighting is on, uses the ranges to control highlighting.

Reimplemented from LinePointRep.

Definition at line 762 of file ContourPointRep.cxx.

References ContourPointRep::createContours(), ContourPointRep::drawValues(), ContourPointRep::drawValuesWithStyle(), BinaryTransform::isPeriodic(), ContourPointRep::m_bin_to_color, ContourPointRep::m_colorvec, ContourPointRep::m_stylevec, LinePointRep::m_x, LinePointRep::m_y, BinToColor::name(), RepBase::name(), ContourPointRep::rotate(), ContourPointRep::setContourVector(), ContourPointRep::setMinMax(), BinToColor::setRange(), num_util::shape(), RepBase::size(), NTupleSorter::sort(), and hippodraw::Axes::Z.

Referenced by ContourFunctionRep::drawProjectedValues().

void drawValues ( ViewBase view  )  [protected, inherited]

void drawValues ( const TransformBase tf,
ViewBase vb 
) [private, virtual]

void drawValuesWithStyle ( const TransformBase tf,
ViewBase vb 
) [private, virtual]

const Color & getColor (  )  const [virtual, inherited]

Get the color of the representation.

Definition at line 58 of file RepBase.cxx.

References RepBase::m_color.

Referenced by PointRepXML::createElement().

double getContour ( int  i,
const TransformBase transform 
) [private]

Returns the z value where the i-th level contour is to be drawn.

Todo:
Test contour when low end of range is negative.

Definition at line 663 of file ContourPointRep.cxx.

References BinaryTransform::isLinearInZ(), ContourPointRep::m_maxValue, ContourPointRep::m_minPos, ContourPointRep::m_minValue, and ContourPointRep::m_numContours.

Referenced by ContourPointRep::setContourVector().

int getNumContours (  )  const

unsigned int getStyle (  )  const [virtual, inherited]

Returns the style of the line drawing.

Reimplemented from RepBase.

Definition at line 74 of file LinePointRep.cxx.

References LinePointRep::m_line_style.

const std::string & getText (  )  const [inherited]

Gets the text.

Definition at line 139 of file RepBase.cxx.

References RepBase::m_text.

Referenced by PointRepXML::setAttributes().

bool getUsingUserValues (  )  const

Get the m_usingUserValues boolean.

Definition at line 718 of file ContourPointRep.cxx.

References ContourPointRep::m_usingUserValues.

Referenced by ContourPointRep::ContourPointRep(), and Inspector::updateAxisTab().

const BinToColor * getValueTransform (  )  const [virtual]

Returns the value transform.

A value transform changes a binary value to some graphical representations such as color. The implementation in this base class returns a null pointer. Derived classes that implement value transform should return a pointer to the object it uses.

Reimplemented from RepBase.

Definition at line 86 of file ContourPointRep.cxx.

References ContourPointRep::m_bin_to_color.

void init (  )  [private]

double intersect ( int  p1,
int  p2,
double *  h,
double *  xh 
) [private]

Returns the intersection of the segment given by h[p1] and h[p2] with the segment given by xh[p1] and xh[p2].

Definition at line 698 of file ContourPointRep.cxx.

Referenced by ContourPointRep::createContours().

bool isSelected (  )  const [virtual, inherited]

Returns true if representation is in selected state, otherwise returns false.

Definition at line 79 of file RepBase.cxx.

References RepBase::m_desel.

Referenced by DataRep::isSelected().

const string & name (  )  const [inherited]

void rotate ( double &  lat,
double &  lon,
double  alpha,
double  beta,
double  gamma,
bool  negative = true 
) [static, private]

Definition at line 952 of file ContourPointRep.cxx.

Referenced by ContourPointRep::drawProjectedValues().

void setColor ( const Color color  )  [virtual, inherited]

void setContourValues ( std::vector< double > &  values,
ProjectorBase proj 
)

void setContourVector ( const TransformBase transform  )  [private]

void setErrorOn ( hippodraw::Axes::Type  axis,
bool  yes = true 
) [virtual, inherited]

Sets the error representation on specified axis, if any, to yes.

Reimplemented in ColumnPointRep, and SymbolPointRep.

Definition at line 129 of file RepBase.cxx.

Referenced by PointRepXML::createObject().

void setHighLighted ( bool  yes  )  [virtual, inherited]

Sets the highlighted state of the point representation.

If yes is true, then the point representation should show the non highlighted regions in some fashion, typically using light gray color instead of its normal color.

See also:
setSelected (bool)

m_ranges.

Definition at line 86 of file RepBase.cxx.

References RepBase::m_highlite.

void setMinMax ( const DataSource ntuple  )  [private]

void setNumContours ( int  i  ) 

Set number of contours.

Definition at line 708 of file ContourPointRep.cxx.

References ContourPointRep::m_numContours.

Referenced by Inspector::contourSlider_valueChanged(), and Inspector::contourTextBox_returnPressed().

void setSelected ( bool  yes  )  [virtual, inherited]

Sets the selection state of the representation.

Also sets the selection state of the ErrorBarRep representation, if any. If yes is false, the point representation should shows its deselected stated by some fashion, typically using a light gray color instead of its normal color.

Reimplemented from RepBase.

Definition at line 38 of file PointRepBase.cxx.

References PointRepBase::m_error_rep, and RepBase::setSelected().

void setSize ( float  value  )  [virtual, inherited]

Sets the size of the representation.

Derived classes may use this method to set the size of the point representation and any of its components.

Reimplemented in ColumnPointRep, and SymbolPointRep.

Definition at line 96 of file RepBase.cxx.

References RepBase::m_size.

Referenced by PointRepXML::createObject(), DataRep::setRepSize(), SymbolPointRep::setSize(), and ColumnPointRep::setSize().

void setStyle ( unsigned int  style  )  [virtual, inherited]

Sets the style of the line drawing.

Reimplemented from RepBase.

Definition at line 67 of file LinePointRep.cxx.

References hippodraw::String::convert(), and LinePointRep::m_line_style.

void setText ( const std::string &  text  )  [inherited]

Sets the text.

Definition at line 133 of file RepBase.cxx.

References RepBase::m_text.

Referenced by PointRepXML::createObject(), and DisplayController::createTextDataRep().

void setUsingUserValues ( bool  flag  ) 

Set the m_usingUserValues boolean.

Definition at line 713 of file ContourPointRep.cxx.

References ContourPointRep::m_usingUserValues.

Referenced by Inspector::contourSlider_valueChanged(), and Inspector::contourTextBox_returnPressed().

void setValueTransform ( BinToColor  )  [virtual]

Sets the value transform.

The implementation in this base class does nothing. Derived classes that implement a value transform should override this method and take possession of the received object.

Todo:
Should have base class that doesn't know about color and BinToColor class should derive from it.

Reimplemented from RepBase.

Definition at line 93 of file ContourPointRep.cxx.

References ContourPointRep::m_bin_to_color.

Referenced by ContourFunctionRep::ContourFunctionRep().

float size (  )  const [inherited]

bool uses ( hippodraw::Symbol::Type   )  const [virtual, inherited]

Returns true if receiving object uses a hippodraw::Symbol::Type as a property, otherwise returns false.

This base class implementation returns false. Derived classes that use hippodraw::Symbol::Type should override this member function and return true.

Reimplemented in SymbolPointRep.

Definition at line 185 of file RepBase.cxx.

bool uses ( Color::Value   )  const [virtual, inherited]

Returns true if receiving object uses a Color::Value as a property, otherwise returns false.

This base class implementation returns true as most derived classes use a Color::Value as a property. Derived classes that do not, such as those that represent a value in color, should override this member function and return false.

Reimplemented in ColorBoxPointRep, and ColorSymbolPointRep.

Definition at line 171 of file RepBase.cxx.

bool uses ( hippodraw::Line::Style   )  const [virtual, inherited]

Returns true as this class uses hippodraw::Line::Style.

Reimplemented from RepBase.

Definition at line 346 of file LinePointRep.cxx.

bool xError (  )  const [virtual, inherited]

Returns true if the point representation displays error on the X axis.

The default implementation returns false. May be overridden by derived classes.

Reimplemented in SymbolPointRep.

Definition at line 116 of file RepBase.cxx.

Referenced by DataRep::isErrorDisplayed(), and PointRepXML::setAttributes().

bool yError (  )  const [virtual, inherited]

Returns true if the point representation displays error on the Y axis.

The default implementation returns false. May be overridden by derived classes.

Reimplemented in ColumnPointRep, and SymbolPointRep.

Definition at line 122 of file RepBase.cxx.

Referenced by DataRep::isErrorDisplayed(), and PointRepXML::setAttributes().


Member Data Documentation

Color m_color [protected, inherited]

std::vector< Color > m_colorvec [private]

The vector of colors used for drawing the lines.

Definition at line 54 of file ContourPointRep.h.

Referenced by ContourPointRep::createContours(), ContourPointRep::drawProjectedValues(), ContourPointRep::drawValues(), and ContourPointRep::drawValuesWithStyle().

bool m_desel [protected, inherited]

ErrorBarRep* m_error_rep [protected, inherited]

bool m_highlite [protected, inherited]

Sets the state of highlighting.

Definition at line 70 of file RepBase.h.

Referenced by RepBase::setHighLighted().

hippodraw::Line::Style m_line_style [protected, inherited]

double m_maxValue [private]

The max Z value of the data.

Definition at line 65 of file ContourPointRep.h.

Referenced by ContourPointRep::getContour(), and ContourPointRep::setMinMax().

double m_minPos [private]

The min positive Z value of the data.

For log scale.

Definition at line 71 of file ContourPointRep.h.

Referenced by ContourPointRep::getContour(), and ContourPointRep::setMinMax().

double m_minValue [private]

The min Z value of the data.

Definition at line 68 of file ContourPointRep.h.

Referenced by ContourPointRep::getContour(), and ContourPointRep::setMinMax().

std::string m_name [protected, inherited]

int m_numContours [private]

float m_size [protected, inherited]

std::vector< Line::Style > m_stylevec [private]

The vector of line style used for drawing the lines.

Only used for the line style color map.

Definition at line 59 of file ContourPointRep.h.

Referenced by ContourPointRep::createContours(), ContourPointRep::drawProjectedValues(), and ContourPointRep::drawValuesWithStyle().

std::string m_text [protected, inherited]

The text to be displayed before the statistics.

Definition at line 54 of file RepBase.h.

Referenced by BoxTextRep::drawProjectedValues(), RepBase::getText(), and RepBase::setText().

bool m_usingUserValues [private]

std::vector< double > m_values [private]

std::vector< double > m_x [protected, inherited]

A cache of the points along the X axis to be drawn.

For efficiency, all line segments are sent once to the view. However, the x and y points are kept separate so that they can be transformed separately. LinePointRep builds a cache for efficiency.

Definition at line 87 of file LinePointRep.h.

Referenced by ContourPointRep::createContours(), ContourPointRep::drawProjectedValues(), LinePointRep::drawValues(), ContourPointRep::drawValues(), ContourPointRep::drawValuesWithStyle(), LineFunctionRep::smoothCurve(), and LinePointRep::transformValues().

std::vector< double > m_y [protected, inherited]

A cache of the points along the Y axis to be drawn.

For efficiency, all line segments are sent once to the view. However, the x and y points are kept separate so that they can be transformed separately. LinePointRep builds a cache for efficiency.

Definition at line 95 of file LinePointRep.h.

Referenced by ContourPointRep::createContours(), ContourPointRep::drawProjectedValues(), LinePointRep::drawValues(), ContourPointRep::drawValues(), ContourPointRep::drawValuesWithStyle(), LineFunctionRep::smoothCurve(), and LinePointRep::transformValues().

const Color s_desel_color [static, protected, inherited]


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

Generated for HippoDraw Class Library by doxygen