Class for stair displayers. More...
#include <ilviews/charts/polyline.h>
Public Member Functions | |
IlvStairChartDisplayer (IlvPalette *palette=0) | |
Constructor. More... | |
virtual void | drawLegendItem (IlvPort *dst, const IlvRect &legendArea, IlvPalette *itemPal, const IlvRegion *clip, IlAny clientData=0) const |
Draws the graphic part of a legend item associated with the current displayer. More... | |
virtual IlBoolean | isFilled () const |
Indicates whether the graphical representation is filled. More... | |
Public Member Functions inherited from IlvStepChartDisplayer | |
IlvStepChartDisplayer (IlvPalette *palette=0) | |
Constructor. More... | |
virtual IlBoolean | graphicalRepresentationByDataPoint () const |
Indicates whether there is a graphical representation by data point. More... | |
virtual IlBoolean | isContinuous () const |
Indicates whether the graphical representation is continuous. More... | |
virtual void | treatPointsOutOfAbscissaLimits (const IlvRect &dataDisplayArea, IlvChartDisplayerPoints *dispPts, const IlvCoordInterval &abscissaRange, const IlvPoint &minLimit, const IlvPoint &maxLimit) const |
Treats the occurrence of the points in screen coordinates that are outside the abscissa limits. More... | |
Public Member Functions inherited from IlvSingleChartDisplayer | |
virtual | ~IlvSingleChartDisplayer () |
Destructor. More... | |
virtual IlvChartDisplayerPoints * | allocDisplayerPoints () const |
Allocates and returns an IlvChartDisplayerPoints object. More... | |
virtual IlBoolean | boundingBox (IlvRect &bbox, const IlvTransformer *t=0) const |
Returns the bounding box of the graphical representation of data. More... | |
virtual IlBoolean | dataPointBBox (IlUInt dataPtIdx, IlvRect &bbox, IlBoolean takeInfoIntoAccount=IlTrue, const IlvTransformer *t=0) const |
Returns the bounding box of the graphical representation of the data points at a given index. More... | |
virtual void | draw (IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0) const |
Draws the graphical representation of data. More... | |
virtual void | drawDataPoint (IlUInt dataPtIdx, IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0) const |
Draws the graphical representation of the data point(s) at a given index. More... | |
virtual void | drawDataPoints (IlUInt iMin, IlUInt iMax, IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0) const |
Draws the graphical representation of the data points between a given interval. More... | |
virtual void | drawFill (IlBoolean b) |
Sets the filling mode of the displayer. More... | |
virtual IlvColor * | getBackground (IlUInt index=0) const |
Returns the background color of a palette used by the current displayer to display data. More... | |
virtual void | getClipArea (IlvRect &area, const IlvTransformer *t) const |
Returns the clipping region that is used for the drawing. More... | |
void | getDataDisplayArea (IlvRect &dataDisplayArea, const IlvTransformer *t=0) const |
Returns the bounds of the data display area. More... | |
IlvChartDisplayerPointsFactory * | getDisplayerPointsFactory () const |
Returns the factory used to create IlvChartDisplayerPoints instances. More... | |
virtual IlUInt | getDisplayersCount () const |
Returns the number of displayers. More... | |
virtual IlUInt | getDisplayItem (IlvChartDataSet *&dataSet, const IlvPoint &viewPoint, const IlvTransformer *t) const |
Returns the item to which a view point corresponds. More... | |
virtual IlBoolean | getDisplayPoint (const IlvChartDataSet *dataSet, IlUInt dataPtIdx, IlvPoint &point, const IlvTransformer *t=0) const |
Returns the corresponding screen point for a data point. More... | |
virtual IlvColor * | getForeground (IlUInt index=0) const |
Returns the foreground color of a palette used by the current displayer to display data. More... | |
virtual const char * | getInternalLegendText (IlUInt index=0) const |
Returns the legend text stored in the current displayer. More... | |
virtual const char * | getLegendText (IlUInt index=0) const |
Returns the text that will be used in a legend for the current displayer. More... | |
virtual IlUInt | getNearestPoint (IlvChartDataSet *&dataSet, const IlvPoint &viewPoint, IlvDim distance, IlvPoint &point, const IlvTransformer *t=0) const |
Returns the nearest data point. More... | |
virtual IlvPalette * | getPalette (IlUInt=0) const |
Returns a palette used by the current displayer to display data. More... | |
virtual IlvPointInfoCollection * | getPointInfoCollection (const IlvChartDataSet *dataSet) const |
Returns the point information collection defined to be used to display a given data set. More... | |
IlvPos | getShiftOffset () const |
Returns the offset by which the graphical representation of data is shifted along the base of the chart. More... | |
virtual IlvDim | getSizeAlongBase () const |
Returns the size along the base for the graphical representation of a given data point. More... | |
IlBoolean | isDrawingFill () const |
Returns the filling mode for the current displayer. More... | |
virtual void | releaseDisplayerPoints (IlvChartDisplayerPoints *dispPts) const |
Releases an IlvChartDisplayerPoints object used by the current displayer. More... | |
virtual void | setBackground (IlvColor *color, IlUInt index=0) |
Sets the background color of a palette used by the current displayer to display data. More... | |
virtual IlBoolean | setDataPoint (IlvChartDataSet *dataSet, IlUInt dataPtIdx, const IlvPoint &point, const IlvTransformer *t=0) const |
Sets the corresponding data point from a screen point. More... | |
IlvChartDisplayerPointsFactory * | setDisplayerPointsFactory (IlvChartDisplayerPointsFactory *factory) |
Sets the factory used to create IlvChartDisplayerPoints instances. More... | |
virtual void | setForeground (IlvColor *color, IlUInt index=0) |
Sets the foreground color of a palette used by the current displayer to display data. More... | |
virtual void | setLegendItems (IlvChartLegend *legend) const |
Sets the legend items associated with the current displayer. More... | |
virtual void | setLegendText (const char *text, IlUInt index=0) |
Sets the text that will be used in a legend for the current displayer. More... | |
virtual void | setMode (IlvDrawMode mode) |
Sets the drawing mode. More... | |
virtual void | setOverwrite (IlBoolean o) |
Sets the overwrite mode. More... | |
virtual void | setPalette (IlvPalette *pal, IlUInt index=0) |
Sets a palette used by the current displayer to display data. More... | |
virtual void | setPointInfoCollection (const IlvChartDataSet *dataSet, IlvPointInfoCollection *ptInfoCollection) |
Sets the point information collection that will be used to display a given data set. More... | |
void | setShiftOffset (IlvPos offset) |
Sets the offset by which the graphical representation of data is shifted along the base of the chart. More... | |
virtual IlBoolean | usePointInfo () const |
Indicates whether point information collections are defined. More... | |
virtual void | write (IlvOutputFile &file) const |
Writes the attributes of the current object in a file. More... | |
Public Member Functions inherited from IlvAbstractChartDisplayer | |
virtual | ~IlvAbstractChartDisplayer () |
Destructor. More... | |
void | addDataSet (IlvChartDataSet *dataSet) |
Adds a real data set to be displayed by the current displayer. More... | |
virtual IlBoolean | canBeProjectedIfOutOfBounds () const |
Indicates whether the graphical representation can be projected when it is out-of-bounds. More... | |
virtual IlvAbstractChartDisplayer * | copy () const =0 |
Virtual copy constructor. More... | |
IlBoolean | dataPointToDisplay (const IlvDoublePoint &dataPoint, IlvPoint &point, const IlvTransformer *t=0) const |
Projects a data point into screen coordinates. More... | |
virtual IlBoolean | displayDataSet (const IlvChartDataSet *dataSet) const |
Indicates whether the current displayer displays a data set. More... | |
IlBoolean | displayToDataPoint (const IlvPoint &point, IlvDoublePoint &dataPoint, const IlvTransformer *t=0) const |
Inversely projects a screen point to retrieve the corresponding data point. More... | |
IlvChartGraphic * | getChartGraphic () const |
Returns the chart graphic which uses the current displayer. More... | |
IlvChartDataSet * | getDataSet (IlUInt index=0) const |
Returns a data set used by the current displayer. More... | |
IlUInt | getDataSetsCount () const |
Returns the number of data sets used by the current displayer. More... | |
IlUInt | getMaxDataSetsCount () const |
Returns the maximum number of real data sets that the current displayer is allowed to display. More... | |
const char * | getName () const |
Returns the name of the current displayer. More... | |
IlvCoordinateInfo * | getOrdinateInfo () const |
Deprecated Returns the coordinate information associated with the ordinate scale considered to display data. More... | |
const IlvCompositeChartDisplayer * | getParentDisplayer () const |
Returns the parent displayer. More... | |
virtual IlvChartDataPointInfo * | getPointInfo (IlUInt dataPtIdx, const IlvChartDataSet *dataSet=0) const |
Returns the point information associated with a given data point. More... | |
virtual IlvPalette * | getProjectedPointsPalette () const |
Returns the palette used to display out-of-bounds values. More... | |
IlvChartDataSet * | getRealDataSet (IlUInt index=0) const |
Returns a real data set to be displayed by the current displayer. More... | |
IlUInt | getRealDataSetsCount () const |
Returns the number of real data sets. More... | |
virtual IlvCombinedChartDataSet * | getVirtualDataSet (const IlvChartDataSet *dataSet, IlUInt &index) const |
Returns a virtual data set used by the current displayer. More... | |
virtual void | insertDataSet (IlvChartDataSet *dataSet, IlUInt index=IlvLastPositionIndex) |
Inserts a real data set to be displayed by the current displayer. More... | |
virtual IlBoolean | isViewable () const |
Indicates whether the graphical representation can be viewed. More... | |
IlBoolean | isVisible () const |
Indicates whether the graphical representation is visible. More... | |
virtual void | removeDataSet (IlvChartDataSet *dataSet) |
Removes a real data set from the data sets to be displayed by the current displayer. More... | |
virtual void | removeDataSets () |
Removes all the real data sets to be displayed by the current displayer. | |
void | removePointInfoCollection (const IlvChartDataSet *dataSet) |
Removes the point information collection defined to be used to display a given data set. More... | |
virtual IlBoolean | replaceDataSet (IlvChartDataSet *oldDataSet, IlvChartDataSet *newDataSet) |
Replaces a real data set with another one. More... | |
IlvOutputFile & | save (IlvOutputFile &file) const |
Writes a complete description of the current object in a file. More... | |
virtual void | setChartGraphic (IlvChartGraphic *chart) |
Sets the chart graphic which uses the current displayer. More... | |
virtual void | setDataSet (IlvChartDataSet *dataSet, IlUInt index=0) |
Sets a real data set to be displayed by the current displayer. More... | |
void | setDataSet (IlvChartDataSet *dataSet, IlvPalette *palette, IlUInt index=0) |
Sets a real data set to be displayed by the current displayer. More... | |
virtual void | setDataSets (IlUInt count, IlvChartDataSet *const *dataSets) |
Sets the real data sets to be displayed by the current displayer. More... | |
void | setName (const char *name) |
Sets the name of the current displayer. More... | |
virtual void | setOrdinateInfo (IlvCoordinateInfo *ordinateInfo) |
Sets the coordinate information associated with the ordinate scale considered to display data. More... | |
void | setParentDisplayer (const IlvCompositeChartDisplayer *displayer) |
Sets the parent displayer. More... | |
void | setVirtualDataSet (IlvCombinedChartDataSet *vDataSet, IlUInt index=0) |
Sets a virtual data set used by the current displayer. More... | |
void | setVisible (IlBoolean visible) |
Specifies whether the graphical representation is visible. More... | |
virtual IlBoolean | useVirtualDataSets () const |
Indicates whether the current displayer uses virtual data sets. More... | |
Protected Member Functions | |
virtual void | boundingBoxOfPoints (IlvChartDisplayerPoints *dispPts, IlvRect &bbox, IlBoolean takeInfoIntoAccount=IlTrue, const IlvTransformer *t=0) const |
Returns the bounding box of the graphical representation from points in screen coordinates corresponding to the data points to display. More... | |
virtual void | computeItem (const IlvChartDisplayerPoints *dispPts, IlUInt pointIndex, IlUInt &usedPointsCount, IlvPoint *points, const IlvTransformer *t=0) const |
Computes the item that will be displayed for a given point in screen coordinates corresponding to a data point to display. More... | |
virtual void | drawItem (const IlvChartDisplayerPoints *dispPts, IlUInt pointIndex, IlUInt pointCount, IlvPoint *points, IlvPalette *itemPalette, IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0) const |
Draws the item for a given point in screen coordinates corresponding to a data point to display. More... | |
virtual void | drawPoints (IlvChartDisplayerPoints *dispPts, IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0) const |
Draws the graphical representation from points in screen coordinates corresponding to the data points to display. More... | |
virtual IlUInt | getItemPointsCount (const IlvChartDisplayerPoints *dispPts) const |
Returns the maximum number of points needed to define an item for the current displayer. More... | |
Protected Member Functions inherited from IlvStepChartDisplayer | |
virtual IlvDoublePoint * | selectDataPointsForPoint (IlUInt dataPointIndex, IlUInt &count, IlUInt *&dataPointIndexes) const |
Selects and returns the data points needed to display the graphical representation of the data points at a given index in the real data set to be displayed by the current displayer. More... | |
Protected Member Functions inherited from IlvSingleChartDisplayer | |
IlvSingleChartDisplayer (const IlvSingleChartDisplayer &displayer) | |
Constructor. More... | |
IlvSingleChartDisplayer (IlvInputFile &file) | |
Constructor. More... | |
IlvSingleChartDisplayer (IlvPalette *palette=0) | |
Constructor. More... | |
virtual void | boundingBoxOfItem (const IlvChartDisplayerPoints *displayerPoints, IlUInt pointIndex, IlUInt pointsCount, IlvPoint *points, IlvRect &bbox, IlBoolean takeInfoIntoAccount=IlTrue, const IlvTransformer *t=0) const |
Returns the bounding box of the item drawn for a given point in screen coordinates corresponding to a data point to display. More... | |
IlBoolean | boundingBoxOfPart (const IlvCoordInterval &abscissaRange, IlBoolean shiftOfCycleLength, IlvRect &partBBox, IlBoolean takeInfoIntoAccount, const IlvTransformer *t=0) const |
Returns the bounding box of a part of the graphical representation of data. More... | |
virtual IlBoolean | computeLimitsForDataSelection (const IlvRect &clipRect, const IlvCoordInterval &abscissaRange, const IlvCoordInterval &ordinateRange, IlvCoordInterval &abscissaSelectionRange, IlvCoordInterval &ordinateSelectionRange, IlBoolean &dataToSelect, const IlvTransformer *t=0) const |
Computes the abscissa and ordinate intervals used to select the data to be displayed in a given rectangle. More... | |
void | drawPart (const IlvCoordInterval &abscissaRange, IlBoolean shiftOfCycleLength, IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0) const |
Draws a part of the graphical representation of data. More... | |
virtual void | drawPointInfos (const IlvChartDisplayerPoints *displayerPoints, IlvPort *dst, const IlvTransformer *t=0, const IlvRegion *clip=0, const IlvChartDataSet *dataSet=0) const |
Draws the point information defined for the data points to be displayed. More... | |
IlUInt | getNearestPointInsidePart (const IlvCoordInterval &abscissaRange, IlBoolean shiftOfCycleLength, IlvChartDataSet *&dataSet, const IlvPoint &viewPoint, IlvDim distance, IlvPoint &point, const IlvTransformer *t=0) const |
Returns the nearest data point within a given abscissa range. More... | |
virtual IlUInt | pointsContains (const IlvPoint &viewPoint, IlvChartDisplayerPoints *, const IlvTransformer *t=0) const |
Returns the index of the data point of which the corresponding displayer item holds viewPoint. | |
virtual IlvDoublePoint * | selectDataPointsForRange (const IlvCoordInterval &abscissaRange, IlUInt &pointCount, IlUInt *&dataPtIdxes, const IlvTransformer *t=0, const IlvRect *clip=0) const |
Selects And returns the data points to display that are within a given abscissa interval. More... | |
virtual IlvDoublePoint * | selectDataPointsInRect (IlUInt &pointCount, IlUInt *&dataPtIndexes, IlvRect pickRect, const IlvTransformer *t=0) const |
Selects the data points that are rendered within a rectangle. More... | |
Protected Member Functions inherited from IlvAbstractChartDisplayer | |
IlvAbstractChartDisplayer () | |
Constructor. More... | |
IlvAbstractChartDisplayer (const IlvAbstractChartDisplayer &displayer) | |
Constructor. More... | |
IlvAbstractChartDisplayer (IlvInputFile &file) | |
Constructor. More... | |
virtual void | dataSetAdded (IlUInt position=IlvLastPositionIndex) |
Performs the updates needed when a real data set is added. More... | |
virtual void | dataSetRemoved (IlUInt index) |
Performs the updates needed when a real data set is removed. More... | |
virtual void | update () |
Performs the updates needed when modifications (removing, adding, replacing) are made to the real data sets. | |
virtual void | updateVirtualDataSets () |
Updates the virtual data sets. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from IlvAbstractChartDisplayer | |
static IlvAbstractChartDisplayer * | Load (IlvInputFile &file) |
Reads a displayer object from a file. More... | |
Class for stair displayers.
Library: ilvcharts
This class is a subclass of IlvStepChartDisplayer
that allows you to represent data with stairs.
The stair displayer displays a unique data set. This displayer can be used with any type of projection. (See the IlvAbstractProjector
class for more details.)
The following images show data sets represented with stair displayers in a Cartesian chart (on the left) and a polar chart (on the right).
IlvStepChartDisplayer
. IlvStairChartDisplayer::IlvStairChartDisplayer | ( | IlvPalette * | palette = 0 | ) |
Constructor.
Initializes a new IlvStairChartDisplayer
object.
palette | The palette that will be used to display the stairs. |
|
protectedvirtual |
Returns the bounding box of the graphical representation from points in screen coordinates corresponding to the data points to display.
(See the IlvSingleChartDisplayer::boundingBoxOfPoints
method for more details.)
This method first computes the two points that are added to the points in screen coordinates that correspond to the data points to display in order to close the stairs. (See the IlvStairChartDisplayer::drawPoints
method for more details about this calculation.) These two points are added to the points stored in dispPts. The method then calls the IlvStairChartDisplayer::computeItem
method for each screen point stored in dispPts to compute the item that will be displayed for this screen point. Finally, the returned bounding box corresponds to the bounding box of all the points defining the items computed for all the points stored in dispPts.
Reimplemented from IlvStepChartDisplayer.
|
protectedvirtual |
Computes the item that will be displayed for a given point in screen coordinates corresponding to a data point to display.
Computes the points defining the item that will be displayed for the point in screen coordinates that is stored at the index pointIndex in the dispPts object. This object stores the points in screen coordinates corresponding to the data points that have to be displayed by the current displayer. (See the IlvSingleChartDisplayer::computeItem()
method for more details.)
The item that will be displayed for a given screen point corresponding to a data point is a segment joining the current screen point and the point obtained by being shifted along the abscissa scale from the current screen point toward the following point stored in dispPts. This segment is defined by using two points: the point at the index pointIndex in the dispPts object and the point at the index pointIndex +1
.
The number of points defining the item is returned in usedPointsCount.
drawPoints()
method. Reimplemented from IlvStepChartDisplayer.
|
protectedvirtual |
Draws the item for a given point in screen coordinates corresponding to a data point to display.
Draws the item for the point in screen coordinates that is stored at the index pointIndex in the dispPts object. This object stores the points in screen coordinates corresponding to the data points that have to be displayed by the current displayer. (See the IlvSingleChartDisplayer::drawItem()
method for more details.)
This method is used only one time (and not for each screen point) to draw the whole stairs. The points defining the stairs are stored in points. A polyline is drawn between these points with the foreground color of the palette itemPalette. The stairs are filled with the background color of the palette itemPalette if the method IlvSingleChartDisplayer::isDrawingFill()
returns IlTrue
.
drawPoints()
method. Reimplemented from IlvStepChartDisplayer.
|
virtual |
Draws the graphic part of a legend item associated with the current displayer.
The current method simply calls the IlvSingleChartDisplayer::drawLegendItem
method. (See the IlvSingleChartDisplayer::drawLegendItem
method for more details.)
dst | The port used for the drawing. |
legendArea | The area where the drawing is performed. |
itemPal | The palette of the legend item associated with the current displayer. |
clip | The optional clipping region. |
clientData | The client data defined for the legend item associated with the current displayer. |
Reimplemented from IlvStepChartDisplayer.
|
protectedvirtual |
Draws the graphical representation from points in screen coordinates corresponding to the data points to display.
(See the IlvSingleChartDisplayer::drawPoints
method for more details.)
This method first computes the two points that are added to the points in screen coordinates that correspond to the data points to display in order to close the stairs. These two points are computed from the first and the last points stored in dispPts. They are located on the abscissa scale in Cartesian charts. Both points are on the center of the data display area in polar charts. Look at the preceding figure for an example. On this figure, the screen points corresponding to data points to display are marked by black squares. These points are stored in dispPts. The two points that are added to close the stairs are shown with white circles. Once they have been computed, these two points are added to the points stored in dispPts.
The method IlvStairChartDisplayer::computeItem
is used for each point in screen coordinates that is in dispPts to compute the item that will be displayed for this screen point. The method IlvStairChartDisplayer::computeItem
returns the current screen point and the point obtained by being shifted along the abscissa scale from the current screen point toward the next point stored in dispPts. These two points allow the definition of a segment bounding the stairs to display that is issued from the current screen point. (See the previous figure where such a segment is shown for the point 1 in bold.) To improve the drawing performance, the method drawItem is called only one time (and not for each screen point) to draw the complete set of segments bounding the stairs.
The IlvSingleChartDisplayer::drawPointInfos
method is used to draw the point information (if any).
Reimplemented from IlvSingleChartDisplayer.
|
protectedvirtual |
Returns the maximum number of points needed to define an item for the current displayer.
dispPts | The object that stores the points in screen coordinates to be displayed by the current displayer. |
(N - 2) * 2
, where N
is the number of points stored in dispPts.IlvStairChartDisplayer::computeItem()
method for each screen point stored in dispPts. (See the IlvStairChartDisplayer::computeItem()
method for more information.) The following figure shows a simple example illustrating the points used to display the stairs.The screen points corresponding to data points to display are marked with black squares. The two points added to close the stairs are marked with white circles. All these points (black squares and white circles) are stored in the dispPts object that is considered for the drawing. The points defining the stairs that are computed from the points stored in dispPts are surrounded by white squares. The number of points defining the stairs is equal to (N - 2) * 2
, where >N
is the number of points stored in dispPts.
Reimplemented from IlvStepChartDisplayer.
|
virtual |
Indicates whether the graphical representation is filled.
A graphical representation is filled for a given data point if it is not only located around this data point but also if it extends towards the origin. This is the case for displayers representing data with stairs. The stairs are bounded by the steps computed for the data points (see the IlvStepChartDisplayer
class) and are drawn to the abscissa scale in Cartesian charts and to the center of the data display area in polar charts. The following figure shows an example. The screen points corresponding to data points to display are marked by black squares.
IlTrue
by default.Reimplemented from IlvAbstractChartDisplayer.