AbstractGraphElement
An abstract graph element. Declares a couple of useful functions to help subclasses which use CWR (CanvasWidget Renderer).
Inherits from: CanvasWidget, Widget, Drawable
Inherited by: AbstractGraphElementNoCWR, GraphElementArea, GraphElementDiamonds, GraphElementDots, GraphElementLine
Public Functions
AbstractGraphElement() | |
int | getScale() const |
Gets the scaling factor set using setScale. | |
virtual void | invalidateGraphPointAt(int16_t index) =0 |
Invalidate the point at the given index. | |
void | setScale(int scale) |
Sets a scaling factor to be multiplied on each added element. | |
Protected Functions
int | convertToGraphScale(const AbstractDataGraph * graph, int value, int scale) const |
Converts a number with one scale to a number that has the same scale as the graph. | |
AbstractDataGraph * | getGraph() const |
Gets a pointer to the the graph containing the GraphElement. | |
int | getGraphRangeYMaxScaled(const AbstractDataGraph * graph) const |
Gets maximum y coordinate for the graph. | |
int | getGraphRangeYMinScaled(const AbstractDataGraph * graph) const |
Gets minimum y coordinate for the graph. | |
int | getGraphXAxisOffsetScaled(const AbstractDataGraph * graph) const |
Get x axis offset as a scaled value. | |
int | getGraphXAxisScaleScaled(const AbstractDataGraph * graph) const |
Get x axis scale as a scaled value. | |
CWRUtil::Q5 | indexToScreenXQ5(const AbstractDataGraph * graph, int16_t index) const |
Gets screen x coordinate for a specific data point added to the graph. | |
CWRUtil::Q5 | indexToScreenYQ5(const AbstractDataGraph * graph, int16_t index) const |
Gets screen y coordinate for a specific data point added to the graph. | |
bool | isCenterInvisible(const AbstractDataGraph * graph, int16_t index) const |
Query if the center of a given data point index is visible inside the graph area. | |
Rect | rectAround(CWRUtil::Q5 xQ5, CWRUtil::Q5 yQ5, CWRUtil::Q5 diameterQ5) const |
Find the screen rectangle around a given point with the specified diameter. | |
Rect | rectFromQ5Coordinates(CWRUtil::Q5 screenXminQ5, CWRUtil::Q5 screenYminQ5, CWRUtil::Q5 screenXmaxQ5, CWRUtil::Q5 screenYmaxQ5) const |
Find the screen rectangle containing the Q5 screen rectangle by rounding the coordinates up/down. | |
CWRUtil::Q5 | roundQ5(CWRUtil::Q5 q5) const |
Round the given CWRUtil::Q5 to the nearest integer and return it as a CWRUtil::Q5 instead of an integer. | |
CWRUtil::Q5 | valueToScreenXQ5(const AbstractDataGraph * graph, int x) const |
Gets graph screen x for x value. | |
CWRUtil::Q5 | valueToScreenYQ5(const AbstractDataGraph * graph, int y) const |
Gets graph screen y for y value. | |
bool | xScreenRangeToIndexRange(int16_t xLow, int16_t xHigh, int16_t & elementLow, int16_t & elementHigh) const |
Gets graph element range for screen x coordinate range. | |
Protected Attributes
int | dataScale |
The scaling factor. | |
Additional inherited members
Public Functions inherited from CanvasWidget
CanvasWidget() | |
virtual void | draw(const Rect & invalidatedArea) const |
Draws the given invalidated area. | |
virtual bool | drawCanvasWidget(const Rect & invalidatedArea) const =0 |
Draw canvas widget for the given invalidated area. | |
virtual uint8_t | getAlpha() const |
Gets the current alpha value of the widget. | |
virtual Rect | getMinimalRect() const |
Gets minimal rectangle containing the shape drawn by this widget. | |
virtual AbstractPainter & | getPainter() const |
Gets the current painter for the CanvasWidget. | |
virtual Rect | getSolidRect() const |
Gets the largest solid (non-transparent) rectangle. | |
virtual void | invalidate() const |
Invalidates the area covered by this CanvasWidget. | |
void | resetMaxRenderLines() |
Resets the maximum render lines. | |
virtual void | setAlpha(uint8_t newAlpha) |
Sets the opacity (alpha value). | |
virtual void | setPainter(AbstractPainter & painter) |
Sets a painter for the CanvasWidget. | |
Public Functions inherited from Widget
virtual void | getLastChild(int16_t x, int16_t y, Drawable ** last) |
Since a Widget is only one Drawable, Widget::getLastChild simply yields itself as result, but only if the Widget isVisible and isTouchable. | |
Public Functions inherited from Drawable
virtual void | childGeometryChanged() |
This function can be called on parent nodes to signal that the size or position of one or more of its children has changed. | |
virtual void | draw(const Rect & invalidatedArea) const =0 |
Draw this drawable. | |
Drawable() | |
Initializes a new instance of the Drawable class. | |
void | drawToDynamicBitmap(BitmapId id) |
Render the Drawable object into a dynamic bitmap. | |
Rect | getAbsoluteRect() const |
Helper function for obtaining the rectangle this Drawable covers, expressed in absolute coordinates. | |
virtual Drawable * | getFirstChild() |
Function for obtaining the first child of this drawable if any. | |
int16_t | getHeight() const |
Gets the height of this Drawable. | |
virtual void | getLastChild(int16_t x, int16_t y, Drawable ** last) =0 |
Function for obtaining the the last child of this drawable that intersects with the specified point. | |
Drawable * | getNextSibling() |
Gets the next sibling node. | |
Drawable * | getParent() const |
Returns the parent node. | |
const Rect & | getRect() const |
Gets the rectangle this Drawable covers, in coordinates relative to its parent. | |
virtual Rect | getSolidRect() const =0 |
Get (the largest possible) rectangle that is guaranteed to be solid (opaque). | |
virtual Rect | getSolidRectAbsolute() |
Helper function for obtaining the largest solid rect (as implemented by getSolidRect()) expressed in absolute coordinates. | |
virtual void | getVisibleRect(Rect & rect) const |
Function for finding the visible part of this drawable. | |
int16_t | getWidth() const |
Gets the width of this Drawable. | |
int16_t | getX() const |
Gets the x coordinate of this Drawable, relative to its parent. | |
int16_t | getY() const |
Gets the y coordinate of this Drawable, relative to its parent. | |
virtual void | handleClickEvent(const ClickEvent & event) |
Defines the event handler interface for ClickEvents. | |
virtual void | handleDragEvent(const DragEvent & event) |
Defines the event handler interface for DragEvents. | |
virtual void | handleGestureEvent(const GestureEvent & event) |
Defines the event handler interface for GestureEvents. | |
virtual void | handleTickEvent() |
Called periodically by the framework if the Drawable instance has subscribed to timer ticks. | |
virtual void | invalidate() const |
Tell the framework that this entire Drawable needs to be redrawn. | |
virtual void | invalidateRect(Rect & invalidatedArea) const |
Request that a region of this drawable is redrawn. | |
bool | isTouchable() const |
Gets whether this Drawable receives touch events or not. | |
bool | isVisible() const |
Gets whether this Drawable is visible. | |
virtual void | moveRelative(int16_t x, int16_t y) |
Moves the drawable. | |
virtual void | moveTo(int16_t x, int16_t y) |
Moves the drawable. | |
virtual void | setHeight(int16_t height) |
Sets the height of this drawable. | |
void | setPosition(const Drawable & drawable) |
Sets the position of the Drawable to the same as the given Drawable. | |
void | setPosition(int16_t x, int16_t y, int16_t width, int16_t height) |
Sets the size and position of this Drawable, relative to its parent. | |
void | setTouchable(bool touch) |
Controls whether this Drawable receives touch events or not. | |
void | setVisible(bool vis) |
Controls whether this Drawable should be visible. | |
virtual void | setWidth(int16_t width) |
Sets the width of this drawable. | |
void | setWidthHeight(const Bitmap & bitmap) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(const Drawable & drawable) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(const Rect & rect) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(int16_t width, int16_t height) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
virtual void | setX(int16_t x) |
Sets the x coordinate of this Drawable, relative to its parent. | |
void | setXY(const Drawable & drawable) |
Sets the x and y coordinates of this Drawable. | |
void | setXY(int16_t x, int16_t y) |
Sets the x and y coordinates of this Drawable, relative to its parent. | |
virtual void | setY(int16_t y) |
Sets the y coordinate of this Drawable, relative to its parent. | |
virtual void | translateRectToAbsolute(Rect & r) const |
Helper function for converting a region of this Drawable to absolute coordinates. | |
virtual | ~Drawable() |
Finalizes an instance of the Drawable class. | |
Protected Attributes inherited from Drawable
Drawable * | nextSibling |
Pointer to the next Drawable. | |
Drawable * | parent |
Pointer to this drawable's parent. | |
Rect | rect |
The coordinates of this Drawable, relative to its parent. | |
bool | touchable |
True if this drawable should receive touch events. | |
bool | visible |
True if this drawable should be drawn. | |
Public Functions Documentation
AbstractGraphElement
getScale
int getScale | ( | ) | const |
invalidateGraphPointAt
virtual void invalidateGraphPointAt | ( | int16_t | index | ) | |
Invalidate the point at the given index.
This allows a graph element to only invalidate the minimum rectangle required for the given index. The Graph will call this function before and after changing a point to ensure that both the old and the new area are redrawn (invalidated).
index | Zero-based index of the point. |
Reimplemented by: touchgfx::GraphElementGridBase::invalidateGraphPointAt, touchgfx::GraphElementArea::invalidateGraphPointAt, touchgfx::GraphElementLine::invalidateGraphPointAt, touchgfx::GraphElementVerticalGapLine::invalidateGraphPointAt, touchgfx::GraphElementHistogram::invalidateGraphPointAt, touchgfx::GraphElementBoxes::invalidateGraphPointAt, touchgfx::GraphElementDots::invalidateGraphPointAt, touchgfx::GraphElementDiamonds::invalidateGraphPointAt, touchgfx::GraphLabelsBase::invalidateGraphPointAt, touchgfx::GraphLabelsX::invalidateGraphPointAt, touchgfx::GraphTitle::invalidateGraphPointAt
setScale
void setScale | ( | int | scale | ) | |
Sets a scaling factor to be multiplied on each added element.
Since only integer values are stored internally, it is possible to set a scale to e.g. 1000 and make elements work as if there are three digits of precision.
By setting the scale to 1 it is possible to simply use integer values for the graph.
scale | The scaling factor. |
Note
Calling setScale should be done as the first thing as any new scaling factor will not be applied to already set scaled values.
Protected Functions Documentation
convertToGraphScale
int convertToGraphScale | ( | const AbstractDataGraph * | graph , | const | |
int | value , | const | |||
int | scale | const | |||
) | const |
Converts a number with one scale to a number that has the same scale as the graph.
value | The value to convert. |
scale | The scale. |
graph | The graph. |
The given data converted to the graph scale.
Note
For internal use.
getGraph
AbstractDataGraph * getGraph | ( | ) | const |
Gets a pointer to the the graph containing the GraphElement.
A pointer to the graph.
getGraphRangeYMaxScaled
int getGraphRangeYMaxScaled | ( | const AbstractDataGraph * | graph | ) | |
Gets maximum y coordinate for the graph.
graph | The graph. |
The maximum y coordinate.
Note
The returned value is left scaled.For internal use.
getGraphRangeYMinScaled
int getGraphRangeYMinScaled | ( | const AbstractDataGraph * | graph | ) | |
Gets minimum y coordinate for the graph.
graph | The graph. |
The minimum y coordinate.
Note
The returned value is left scaled.For internal use.
getGraphXAxisOffsetScaled
int getGraphXAxisOffsetScaled | ( | const AbstractDataGraph * | graph | ) | |
Get x axis offset as a scaled value.
graph | The graph. |
The x axis offset (left scaled).
Note
For internal use.
getGraphXAxisScaleScaled
int getGraphXAxisScaleScaled | ( | const AbstractDataGraph * | graph | ) | |
Get x axis scale as a scaled value.
graph | The graph. |
The x axis scale (left scaled).
Note
For internal use.
indexToScreenXQ5
CWRUtil::Q5 indexToScreenXQ5 | ( | const AbstractDataGraph * | graph , | const | |
int16_t | index | const | |||
) | const |
Gets screen x coordinate for a specific data point added to the graph.
graph | The graph. |
index | The index of the element to get the x coordinate for. |
The screen x coordinate for the specific data point.
indexToScreenYQ5
CWRUtil::Q5 indexToScreenYQ5 | ( | const AbstractDataGraph * | graph , | const | |
int16_t | index | const | |||
) | const |
Gets screen y coordinate for a specific data point added to the graph.
graph | The graph. |
index | The index of the element to get the y coordinate for. |
The screen x coordinate for the specific data point.
isCenterInvisible
bool isCenterInvisible | ( | const AbstractDataGraph * | graph , | const | |
int16_t | index | const | |||
) | const |
Query if the center of a given data point index is visible inside the graph area.
graph | The graph. |
index | The data point index. |
True if center invisible, false if not.
rectAround
Rect rectAround | ( | CWRUtil::Q5 | xQ5 , | const | |
CWRUtil::Q5 | yQ5 , | const | |||
CWRUtil::Q5 | diameterQ5 | const | |||
) | const |
Find the screen rectangle around a given point with the specified diameter.
xQ5 | The screen x coordinate (in Q5). |
yQ5 | The screen y coordinate (in Q5). |
diameterQ5 | The diameter (in Q5). |
A Rect containing the point (and diameter).
rectFromQ5Coordinates
Rect rectFromQ5Coordinates | ( | CWRUtil::Q5 | screenXminQ5 , | const | |
CWRUtil::Q5 | screenYminQ5 , | const | |||
CWRUtil::Q5 | screenXmaxQ5 , | const | |||
CWRUtil::Q5 | screenYmaxQ5 | const | |||
) | const |
Find the screen rectangle containing the Q5 screen rectangle by rounding the coordinates up/down.
screenXminQ5 | The minimum screen x coordinate (in Q5). |
screenYminQ5 | The maximum screen y coordinate (in Q5). |
screenXmaxQ5 | The minimum screen x coordinate (in Q5). |
screenYmaxQ5 | The maximum screen y coordinate (in Q5). |
A Rect containing the Q5 rectangle.
roundQ5
CWRUtil::Q5 roundQ5 | ( | CWRUtil::Q5 | q5 | ) | |
Round the given CWRUtil::Q5 to the nearest integer and return it as a CWRUtil::Q5 instead of an integer.
q5 | The CWRUtil::Q5 value to round. |
The nearest integer as a CWRUtil::Q5 value.
valueToScreenXQ5
CWRUtil::Q5 valueToScreenXQ5 | ( | const AbstractDataGraph * | graph , | const | |
int | x | const | |||
) | const |
Gets graph screen x for x value.
graph | The graph. |
x | The x value. |
The graph screen x for value.
valueToScreenYQ5
CWRUtil::Q5 valueToScreenYQ5 | ( | const AbstractDataGraph * | graph , | const | |
int | y | const | |||
) | const |
Gets graph screen y for y value.
graph | The graph. |
y | The y value. |
The graph screen y for value.
xScreenRangeToIndexRange
bool xScreenRangeToIndexRange | ( | int16_t | xLow , | const | |
int16_t | xHigh , | const | |||
int16_t & | elementLow , | const | |||
int16_t & | elementHigh | const | |||
) | const |
Gets graph element range for screen x coordinate range.
xLow | The low. |
xHigh | The high. |
elementLow | The element low. |
elementHigh | The element high. |
True if it succeeds, false if it fails.
Protected Attributes Documentation
dataScale
int dataScale
The scaling factor.