Empirical
|
#include <visualizations.h>
Public Types | |
using | INFO_TYPE = D3VisualizationInfo |
using | return_t = D3Visualization |
Public Member Functions | |
LineGraph (std::string x_var="", std::string y_var="", int w=800, int h=400) | |
~LineGraph () | |
virtual void | Setup () |
X_SCALE_TYPE * | GetXScale () |
Y_SCALE_TYPE * | GetYScale () |
D3::Axis< X_SCALE_TYPE > * | GetXAxis () |
D3::Axis< Y_SCALE_TYPE > * | GetYAxis () |
D3::LineGenerator * | GetLineGenerator () |
D3::CSVDataset * | GetDataset () |
D3::ToolTip * | GetToolTip () |
std::function< double(DATA_TYPE)> | GetXAccessor () |
std::function< double(DATA_TYPE)> | GetYAccessor () |
std::function< double(DATA_TYPE)> | GetScaledX () |
std::function< double(DATA_TYPE)> | GetScaledY () |
void | SetXScale (X_SCALE_TYPE *scale) |
void | SetYScale (Y_SCALE_TYPE *scale) |
void | SetXAxis (D3::Axis< X_SCALE_TYPE > *ax) |
void | SetYAxis (D3::Axis< Y_SCALE_TYPE > *ax) |
void | SetLineGenerator (D3::LineGenerator *line) |
void | SetDataset (D3::CSVDataset *d) |
void | SetTooltipFunction (std::string func) |
void | SetXAccessor (std::string func) |
void | SetYAccessor (std::string func) |
void | DrawPointsFromDataset () |
Draw points and lines for data in this object's dataset object. More... | |
void | LoadDataFromFile (std::string filename) |
Load data from the file at [filename]. Expected to be a CSV dataset. More... | |
void | AddDataPoint (DATA_TYPE data_point) |
Smoothly (i.e. with animation) add data_point to the graph. More... | |
template<typename T > | |
void | Redraw (D3::SelectionOrTransition< T > &s) |
void | DrawData (bool backlog=false) |
void | Clear () |
int | GetWidth () const |
double | GetWidth () |
Get the width of this Widget on screen. More... | |
int | GetHeight () const |
double | GetHeight () |
Get the height of this Widget on screen. More... | |
D3::Selection * | GetSVG () |
std::string | GetID () |
const std::string & | GetID () const |
What is the HTML string ID for this Widget? More... | |
void | SetDrawCallback (std::string func) |
void | CallDrawCallback () |
return_t & | SetCSS (const std::string &setting, SETTING_TYPE &&value) |
Set a specific CSS value for this widget. More... | |
return_t & | SetCSS (const std::string &setting1, T1 &&val1, const std::string &setting2, T2 &&val2, OTHER_SETTINGS...others) |
Multiple CSS settings can be provided simultaneously. More... | |
return_t & | SetCSS (const Style &in_style) |
return_t & | SetAttr (const std::string &setting, SETTING_TYPE &&value) |
Set a specific Attribute value for this widget. More... | |
return_t & | SetAttr (const std::string &setting1, T1 &&val1, const std::string &setting2, T2 &&val2, OTHER_SETTINGS...others) |
Multiple Attributes can be provided simultaneously. More... | |
return_t & | SetAttr (const Attributes &in_attr) |
return_t & | On (const std::string &event_name, const std::function< void()> &fun) |
return_t & | On (const std::string &event_name, const std::function< void(MouseEvent evt)> &fun) |
return_t & | On (const std::string &event_name, const std::function< void(double, double)> &fun) |
return_t & | OnResize (T &&arg) |
Provide a function to be called when the window is resized. More... | |
return_t & | OnClick (T &&arg) |
Provide a function to be called when the mouse button is clicked in this Widget. More... | |
return_t & | OnDoubleClick (T &&arg) |
Provide a function to be called when the mouse button is double clicked in this Widget. More... | |
return_t & | OnMouseDown (T &&arg) |
Provide a function to be called when the mouse button is pushed down in this Widget. More... | |
return_t & | OnMouseUp (T &&arg) |
Provide a function to be called when the mouse button is released in this Widget. More... | |
return_t & | OnMouseMove (T &&arg) |
Provide a function to be called whenever the mouse moves in this Widget. More... | |
return_t & | OnMouseOut (T &&arg) |
Provide a function to be called whenever the mouse leaves the Widget. More... | |
return_t & | OnMouseOver (T &&arg) |
Provide a function to be called whenever the mouse moves over the Widget. More... | |
return_t & | OnMouseWheel (T &&arg) |
Provide a function to be called whenever the mouse wheel moves in this Widget. More... | |
return_t & | OnKeydown (T &&arg) |
Provide a function to be called whenever a key is pressed down in this Widget. More... | |
return_t & | OnKeypress (T &&arg) |
Provide a function to be called whenever a key is pressed down and released in this Widget. More... | |
return_t & | OnKeyup (T &&arg) |
Provide a function to be called whenever a key is pressed released in this Widget. More... | |
return_t & | OnCopy (T &&arg) |
Provide a function to be called whenever text is copied in this Widget. More... | |
return_t & | OnCut (T &&arg) |
Provide a function to be called whenever text is cut in this Widget. More... | |
return_t & | OnPaste (T &&arg) |
Provide a function to be called whenever text is pasted in this Widget. More... | |
return_t & | SetWidth (double w, const std::string &unit="px") |
return_t & | SetHeight (double h, const std::string &unit="px") |
return_t & | SetSize (double w, double h, const std::string &unit="px") |
return_t & | Center () |
Move this widget to the center of its container. More... | |
return_t & | SetPosition (int x, int y, const std::string &unit="px", const std::string &pos_type="absolute", const std::string &x_anchor="left", const std::string &y_anchor="top") |
Set the x-y position of this widget within its container. More... | |
return_t & | SetPositionRT (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget within its container, using the TOP-RIGHT as an anchor. More... | |
return_t & | SetPositionRB (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget within its container, using the BOTTOM-RIGHT as an anchor. More... | |
return_t & | SetPositionLB (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget within its container, using the BOTTOM-LEFT as an anchor. More... | |
return_t & | SetPositionFixed (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget, fixed within the browser window. More... | |
return_t & | SetPositionFixedRT (int x, int y, const std::string &unit="px") |
Set the x-y position of the top-right corner this Widget, fixed within the browser window. More... | |
return_t & | SetPositionFixedRB (int x, int y, const std::string &unit="px") |
Set the x-y position of the bottom-right corner this Widget, fixed within the browser window. More... | |
return_t & | SetPositionFixedLB (int x, int y, const std::string &unit="px") |
Set the x-y position of the bottom-left corner this Widget, fixed within the browser window. More... | |
return_t & | SetFloat (const std::string &f="left") |
Set this Widget to float appropriately within its containter. More... | |
return_t & | SetOverflow (const std::string &o="auto") |
Setup how this Widget should handle overflow. More... | |
return_t & | SetScroll () |
Setup how this Widget to always have scrollbars. More... | |
return_t & | SetScrollAuto () |
Setup how this Widget to have scrollbars if needed for overflow. More... | |
return_t & | SetResizable () |
Setup how this Widget to be user-resizable. More... | |
return_t & | SetResizableX () |
Setup how this Widget for the x only to be user-resizable. More... | |
return_t & | SetResizableY () |
Setup how this Widget for the y only to be user-resizable. More... | |
return_t & | SetResizableOff () |
Setup how this Widget to NOT be resizable. More... | |
return_t & | SetFont (const Font &font) |
Provide a Font object to setup the font for this widget. More... | |
return_t & | SetFont (const std::string &font) |
Setup the Font to be used in this Widget. More... | |
return_t & | SetFontSize (int s) |
Setup the size of the Font to be used in this Widget. More... | |
return_t & | SetFontSizeVW (double s) |
Setup the size of the Font to be used in this Widget in units of % of viewport width. More... | |
return_t & | SetCenterText () |
Align text to be centered. More... | |
return_t & | SetBackground (const std::string &v) |
Set the background color of this Widget. More... | |
return_t & | SetColor (const std::string &v) |
Set the foreground color of this Widget. More... | |
return_t & | SetOpacity (double v) |
Set the opacity level of this Widget. More... | |
return_t & | SetBorder (const std::string &border_info) |
Set information about the Widget board. More... | |
return_t & | SetPadding (double p, const std::string &unit="px") |
The the number of pixels (or alternate unit) for the padding around cells (used with Tables) More... | |
bool | IsNull () const |
Test if this widget is valid. More... | |
std::string | InfoTypeName () const |
Some debugging helpers... More... | |
bool | IsInactive () const |
Test if the activity state of this widget is currently INACTIVE. More... | |
bool | IsWaiting () const |
Test if the activity state of this widget is currently WAITING. More... | |
bool | IsFrozen () const |
Test if the activity state of this widget is currently FROZEN. More... | |
bool | IsActive () const |
Test if the activity state of this widget is currently ACTIVE. More... | |
bool | AppendOK () const |
Is it okay to add more internal Widgets into this one? More... | |
void | PreventAppend () |
Disallow further appending to this Widget. More... | |
bool | IsButton () const |
Is this Widget a Button? More... | |
bool | IsCanvas () const |
Is this Widget a Canvas? More... | |
bool | IsImage () const |
Is this Widget an Image? More... | |
bool | IsSelector () const |
Is this Widget a Selector? More... | |
bool | IsDiv () const |
Is this Widget a Div? More... | |
bool | IsTable () const |
Is this Widget a Table? More... | |
bool | IsText () const |
Is this Widget a Text? More... | |
virtual std::string | GetCSS (const std::string &setting) |
virtual bool | HasCSS (const std::string &setting) |
Determine is a CSS trait has been set on this Widget. More... | |
virtual std::string | GetAttr (const std::string &setting) |
Retrieve a specific attribute associated with this Widget. More... | |
virtual bool | HasAttr (const std::string &setting) |
Determine is an attribute has been set on this Widget. More... | |
bool | operator== (const Widget &in) const |
Are two Widgets refering to the same HTML object? More... | |
bool | operator!= (const Widget &in) const |
Are two Widgets refering to differnt HTML objects? More... | |
operator bool () const | |
Conver Widget to bool (I.e., is this Widget active?) More... | |
double | GetXPos () |
Get the X-position of this Widget within its parent. More... | |
double | GetYPos () |
Get the Y-position of this Widget within its parent. More... | |
double | GetInnerWidth () |
Get the width of this Widget not including padding. More... | |
double | GetInnerHeight () |
Get the height of this Widget not including padding. More... | |
double | GetOuterWidth () |
Get the width of this Widget including all padding. More... | |
double | GetOuterHeight () |
Get the height of this Widget including all padding. More... | |
void | Activate () |
Make this widget live, so changes occur immediately (once document is ready) More... | |
void | Freeze () |
Record changes internally, but keep static screen until Activate() is called. More... | |
virtual void | Deactivate (bool top_level=true) |
bool | ToggleActive () |
Doggle between Active and Deactivated. More... | |
void | Redraw () |
Clear and redraw the current widget on the screen. More... | |
Widget & | Find (const std::string &test_name) |
Look up previously created elements, by type. More... | |
Widget & | AddDependant (const Widget &w) |
Add a dependant to this Widget that should be redrawn when it is. More... | |
virtual void | PrepareAppend () |
Setup << operator to redirect to Append; option preparation can be overridden. More... | |
template<typename IN_TYPE > | |
Widget | operator<< (IN_TYPE &&in_val) |
std::string | GetInfoType () const |
Debug... More... | |
Public Attributes | |
D3::Selection | exit |
emp::vector< std::string > | variables |
FunctionSet< void()> | pending_funcs |
bool | init = false |
std::string | draw_data_callback = "__default_draw_data_callback" |
Callback function for drawing data after rescale animation. More... | |
Protected Types | |
enum | ActivityState { INACTIVE, WAITING, FROZEN, ACTIVE } |
using | WidgetInfo = internal::WidgetInfo |
Protected Member Functions | |
D3VisualizationInfo * | Info () |
const D3VisualizationInfo * | Info () const |
virtual void | DoCSS (const std::string &setting, const std::string &value) |
virtual void | DoAttr (const std::string &setting, const std::string &value) |
virtual void | DoListen (const std::string &event_name, size_t fun_id) |
template<typename FWD_TYPE > | |
Widget & | ForwardAppend (FWD_TYPE &&arg) |
If an Append doesn't work with current class, forward it to the parent and try there. More... | |
Widget & | SetInfo (WidgetInfo *in_info) |
Set the information associated with this widget. More... | |
WidgetInfo * | operator-> () |
Internally, we can treat a Widget as a pointer to its WidgetInfo. More... | |
Static Protected Member Functions | |
static WidgetInfo * | Info (const Widget &w) |
Give derived classes the ability to access widget info. More... | |
Protected Attributes | |
double | y_min = 1000 |
double | y_max = 0 |
double | x_min = 1000 |
double | x_max = 0 |
X_SCALE_TYPE * | x_scale |
Y_SCALE_TYPE * | y_scale |
D3::Axis< X_SCALE_TYPE > * | x_axis |
D3::Axis< Y_SCALE_TYPE > * | y_axis |
D3::LineGenerator * | line_gen |
D3::ToolTip * | tip |
D3::CSVDataset * | dataset |
std::deque< DATA_TYPE > | data |
DATA_TYPE | prev_data = {{-1,-1}} |
std::function< double(DATA_TYPE)> | return_x = [](DATA_TYPE d){ return d[0]; } |
std::function< double(DATA_TYPE)> | return_y = [](DATA_TYPE d){ return d[1]; } |
std::function< double(DATA_TYPE)> | y |
std::function< double(DATA_TYPE)> | x |
double | axis_width = 60 |
double | y_margin = 10 |
double | x_margin = 30 |
WidgetInfo * | info |
Information associated with this widget. More... | |
Static Protected Attributes | |
static const std::string | no_name = "(none)" |
Default name for un-initialized widgets. More... | |
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
inline |
|
inline |
|
inherited |
Make this widget live, so changes occur immediately (once document is ready)
|
inline |
Smoothly (i.e. with animation) add data_point to the graph.
Add a dependant to this Widget that should be redrawn when it is.
|
inherited |
Is it okay to add more internal Widgets into this one?
|
inlineinherited |
|
inlineinherited |
Move this widget to the center of its container.
|
inline |
|
virtualinherited |
Record changes internally and REMOVE from screen until Activate is called. (Argument is for recursive, internal use only.)
Reimplemented in emp::web::Div.
|
inlineprotectedvirtualinherited |
Attr-related options may be overridden in derived classes that have multiple attributes. By default DoAttr will track the new information and apply it (if active) to the widget.
|
inlineprotectedvirtualinherited |
CSS-related options may be overridden in derived classes that have multiple styles. By default DoCSS will track the new information and apply it (if active) to the widget.
|
inlineprotectedvirtualinherited |
Listener options may be overridden in derived classes that have multiple listen targets. By default DoListen will track new listens and set them up immediately, if active.
|
inline |
|
inline |
Draw points and lines for data in this object's dataset object.
|
inherited |
Look up previously created elements, by type.
|
protectedinherited |
If an Append doesn't work with current class, forward it to the parent and try there.
|
inherited |
Record changes internally, but keep static screen until Activate() is called.
|
virtualinherited |
Retrieve a specific attribute associated with this Widget.
|
virtualinherited |
Retrieve a specific CSS trait associated with this Widget. Note: CSS-related options may be overridden in derived classes that have multiple styles.
Reimplemented in emp::web::TableWidget, emp::web::TableCell, emp::web::TableCol, emp::web::TableColGroup, emp::web::TableRowGroup, and emp::web::TableRow.
|
inline |
|
inlineinherited |
|
inherited |
Get the height of this Widget on screen.
|
inlineinherited |
|
inherited |
What is the HTML string ID for this Widget?
|
inherited |
Debug...
|
inherited |
Get the height of this Widget not including padding.
|
inherited |
Get the width of this Widget not including padding.
|
inline |
|
inherited |
Get the height of this Widget including all padding.
|
inherited |
Get the width of this Widget including all padding.
|
inline |
|
inline |
|
inlineinherited |
|
inline |
|
inlineinherited |
|
inherited |
Get the width of this Widget on screen.
|
inline |
|
inline |
|
inherited |
Get the X-position of this Widget within its parent.
|
inline |
|
inline |
|
inline |
|
inherited |
Get the Y-position of this Widget within its parent.
|
inline |
|
virtualinherited |
Determine is an attribute has been set on this Widget.
|
virtualinherited |
Determine is a CSS trait has been set on this Widget.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlinestaticprotectedinherited |
Give derived classes the ability to access widget info.
|
inherited |
Some debugging helpers...
|
inherited |
Test if the activity state of this widget is currently ACTIVE.
|
inherited |
Test if the activity state of this widget is currently FROZEN.
|
inherited |
Test if the activity state of this widget is currently INACTIVE.
|
inlineinherited |
Test if this widget is valid.
|
inherited |
Test if the activity state of this widget is currently WAITING.
|
inline |
Load data from the file at [filename]. Expected to be a CSV dataset.
|
inlineinherited |
Provide an event and a function that will be called when that event is triggered. In this case, the function as no arguments.
|
inlineinherited |
Provide an event and a function that will be called when that event is triggered. In this case, the function takes a mouse event as an argument, with full info about mouse.
|
inlineinherited |
Provide an event and a function that will be called when that event is triggered. In this case, the function takes two doubles which will be filled in with mouse coordinates.
|
inlineinherited |
Provide a function to be called when the mouse button is clicked in this Widget.
|
inlineinherited |
Provide a function to be called whenever text is copied in this Widget.
|
inlineinherited |
Provide a function to be called whenever text is cut in this Widget.
|
inlineinherited |
Provide a function to be called when the mouse button is double clicked in this Widget.
|
inlineinherited |
Provide a function to be called whenever a key is pressed down in this Widget.
|
inlineinherited |
Provide a function to be called whenever a key is pressed down and released in this Widget.
|
inlineinherited |
Provide a function to be called whenever a key is pressed released in this Widget.
|
inlineinherited |
Provide a function to be called when the mouse button is pushed down in this Widget.
|
inlineinherited |
Provide a function to be called whenever the mouse moves in this Widget.
|
inlineinherited |
Provide a function to be called whenever the mouse leaves the Widget.
|
inlineinherited |
Provide a function to be called whenever the mouse moves over the Widget.
|
inlineinherited |
Provide a function to be called when the mouse button is released in this Widget.
|
inlineinherited |
Provide a function to be called whenever the mouse wheel moves in this Widget.
|
inlineinherited |
Provide a function to be called whenever text is pasted in this Widget.
|
inlineinherited |
Provide a function to be called when the window is resized.
|
inlineinherited |
|
inlineinherited |
Are two Widgets refering to differnt HTML objects?
|
inlineprotectedinherited |
Internally, we can treat a Widget as a pointer to its WidgetInfo.
|
inherited |
|
inlineinherited |
Are two Widgets refering to the same HTML object?
|
inlinevirtualinherited |
Setup << operator to redirect to Append; option preparation can be overridden.
Reimplemented in emp::web::TableWidget.
|
inherited |
Disallow further appending to this Widget.
|
inherited |
Clear and redraw the current widget on the screen.
|
inline |
Redraws all data on the given selection or transition, which should contain an SVG canvas. Useful if you've adjusted scales.
|
inlineinherited |
Set a specific Attribute value for this widget.
|
inlineinherited |
Multiple Attributes can be provided simultaneously.
|
inlineinherited |
Allow multiple Attr settings to be provided as a single object. (still go through DoAttr given need for virtual re-routing.)
|
inlineinherited |
Set the background color of this Widget.
|
inlineinherited |
Set information about the Widget board.
|
inlineinherited |
Align text to be centered.
|
inlineinherited |
Set the foreground color of this Widget.
|
inlineinherited |
Set a specific CSS value for this widget.
|
inlineinherited |
Multiple CSS settings can be provided simultaneously.
|
inlineinherited |
Allow multiple CSS settings to be provided as a single object. (still go through DoCSS given need for virtual re-routing.)
|
inline |
|
inlineinherited |
This callback function will be called every time data is done being drawn. Can be a string represnting the name of a function in Javascript (can be in the current window, the emp namespace, or the d3 namespace)
|
inlineinherited |
Set this Widget to float appropriately within its containter.
|
inlineinherited |
Provide a Font object to setup the font for this widget.
|
inlineinherited |
Setup the Font to be used in this Widget.
|
inlineinherited |
Setup the size of the Font to be used in this Widget.
|
inlineinherited |
Setup the size of the Font to be used in this Widget in units of % of viewport width.
|
inlineinherited |
Update the height of this Widget.
unit | defaults to pixels ("px"), but can also be a measured distance (e.g, "inches") or a percentage("%") |
|
protectedinherited |
Set the information associated with this widget.
|
inline |
|
inlineinherited |
Set the opacity level of this Widget.
|
inlineinherited |
Setup how this Widget should handle overflow.
|
inlineinherited |
The the number of pixels (or alternate unit) for the padding around cells (used with Tables)
|
inlineinherited |
Set the x-y position of this widget within its container.
|
inlineinherited |
Set the x-y position of this Widget, fixed within the browser window.
|
inlineinherited |
Set the x-y position of the bottom-left corner this Widget, fixed within the browser window.
|
inlineinherited |
Set the x-y position of the bottom-right corner this Widget, fixed within the browser window.
|
inlineinherited |
Set the x-y position of the top-right corner this Widget, fixed within the browser window.
|
inlineinherited |
Set the x-y position of this Widget within its container, using the BOTTOM-LEFT as an anchor.
|
inlineinherited |
Set the x-y position of this Widget within its container, using the BOTTOM-RIGHT as an anchor.
|
inlineinherited |
Set the x-y position of this Widget within its container, using the TOP-RIGHT as an anchor.
|
inlineinherited |
Setup how this Widget to be user-resizable.
|
inlineinherited |
Setup how this Widget to NOT be resizable.
|
inlineinherited |
Setup how this Widget for the x only to be user-resizable.
|
inlineinherited |
Setup how this Widget for the y only to be user-resizable.
|
inlineinherited |
Setup how this Widget to always have scrollbars.
|
inlineinherited |
Setup how this Widget to have scrollbars if needed for overflow.
|
inlineinherited |
Update the size (width and height) of this widget.
unit | defaults to pixels ("px"), but can also be a measured distance (e.g, "inches") or a percentage("%") |
|
inline |
|
inlinevirtual |
Initializes the graph. This function is called automatically when the emp::Document this has been added to is ready.
Reimplemented from emp::web::D3Visualization.
|
inlineinherited |
Update the width of this Widget.
unit | defaults to pixels ("px"), but can also be a measured distance (e.g, "inches") or a percentage("%") |
|
inline |
Set the function that is used to get the x variable from within a DATA_TYPE object. For instance, the default accessor assumes that DATA_TYPE is an array with two elements (x, y): [](DATA_TYPE d) {return d[0];}
This accessor will be fed into the x_scale to get x values scaled to the plotting area. Can be a string represnting the name of a function in Javascript (can be in the current window, the emp namespace, or the d3 namespace)
|
inline |
|
inline |
|
inline |
Set the function that is used to get the y variable from within a DATA_TYPE object. For instance, the default accessor assumes that DATA_TYPE is an array with two elements (x, y): [](DATA_TYPE d) {return d[1];}
This accessor will be fed into the y_scale to get y values scaled to the plotting area. Can be a string represnting the name of a function in Javascript (can be in the current window, the emp namespace, or the d3 namespace)
|
inline |
|
inline |
|
inherited |
Doggle between Active and Deactivated.
|
protectedinherited |
|
protected |
|
protected |
|
inherited |
Callback function for drawing data after rescale animation.
D3::Selection emp::web::LineGraph< DATA_TYPE, X_SCALE_TYPE, Y_SCALE_TYPE >::exit |
|
protectedinherited |
Information associated with this widget.
|
inherited |
|
protected |
|
staticprotectedinherited |
Default name for un-initialized widgets.
|
inherited |
|
protected |
|
protected |
|
protected |
|
protected |
|
inherited |
|
protected |
|
protected |
|
protectedinherited |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
|
protected |
|
protected |
|
protected |