Forge
chart.h
Go to the documentation of this file.
1 /*******************************************************
2  * Copyright (c) 2015-2019, ArrayFire
3  * All rights reserved.
4  *
5  * This file is distributed under 3-clause BSD license.
6  * The complete license agreement can be obtained at:
7  * http://arrayfire.com/licenses/BSD-3-Clause
8  ********************************************************/
9 
10 #pragma once
11 
12 #include <fg/defines.h>
13 #include <fg/image.h>
14 #include <fg/plot.h>
15 #include <fg/surface.h>
16 #include <fg/vector_field.h>
17 #include <fg/histogram.h>
18 
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
37  const fg_chart_type pChartType);
38 
47 
59  const char* pX,
60  const char* pY,
61  const char* pZ);
62 
77  const float pXmin, const float pXmax,
78  const float pYmin, const float pYmax,
79  const float pZmin, const float pZmax);
80 
93 FGAPI fg_err fg_set_chart_legend_position(fg_chart pHandle, const float pX, const float pY);
94 
110  const unsigned pWidth, const unsigned pHeight,
111  const fg_channel_format pFormat,
112  const fg_dtype pType);
113 
126  const unsigned pNBins, const fg_dtype pType);
127 
144  const unsigned pNPoints, const fg_dtype pType,
145  const fg_plot_type pPlotType, const fg_marker_type pMarkerType);
146 
163  const unsigned pXPoints, const unsigned pYPoints, const fg_dtype pType,
164  const fg_plot_type pPlotType, const fg_marker_type pMarkerType);
165 
177  const unsigned pNPoints, const fg_dtype pType);
178 
191 FGAPI fg_err fg_render_chart(const fg_window pWindow,
192  const fg_chart pChart,
193  const int pX, const int pY, const int pWidth, const int pHeight);
194 
203 FGAPI fg_err fg_get_chart_type(const fg_chart_type *pChartType, const fg_chart pChart);
204 
207 #ifdef __cplusplus
208 }
209 #endif
210 
211 
212 #ifdef __cplusplus
213 
214 namespace forge
215 {
216 
226 class Chart {
227  private:
228  fg_chart mValue;
229 
230  public:
236  FGAPI Chart(const ChartType cType);
237 
241  FGAPI Chart(const Chart& pOther);
242 
246  FGAPI ~Chart();
247 
255  FGAPI void setAxesTitles(const char* pX,
256  const char* pY,
257  const char* pZ=NULL);
258 
269  FGAPI void setAxesLimits(const float pXmin, const float pXmax,
270  const float pYmin, const float pYmax,
271  const float pZmin=-1, const float pZmax=1);
272 
282  FGAPI void setLegendPosition(const float pX, const float pY);
283 
289  FGAPI void add(const Image& pImage);
290 
296  FGAPI void add(const Histogram& pHistogram);
297 
303  FGAPI void add(const Plot& pPlot);
304 
310  FGAPI void add(const Surface& pSurface);
311 
317  FGAPI void add(const VectorField& pVectorField);
318 
329  FGAPI Image image(const unsigned pWidth, const unsigned pHeight,
330  const ChannelFormat pFormat=FG_RGBA, const dtype pDataType=f32);
331 
339  FGAPI Histogram histogram(const unsigned pNBins, const dtype pDataType);
340 
352  FGAPI Plot plot(const unsigned pNumPoints, const dtype pDataType,
353  const PlotType pPlotType=FG_PLOT_LINE, const MarkerType pMarkerType=FG_MARKER_NONE);
354 
366  FGAPI Surface surface(const unsigned pNumXPoints, const unsigned pNumYPoints, const dtype pDataType,
367  const PlotType pPlotType=FG_PLOT_SURFACE, const MarkerType pMarkerType=FG_MARKER_NONE);
368 
376  FGAPI VectorField vectorField(const unsigned pNumPoints, const dtype pDataType);
377 
387  FGAPI void render(const Window& pWindow,
388  const int pX, const int pY, const int pVPW, const int pVPH) const;
389 
393  FGAPI fg_chart get() const;
394 
398  FGAPI ChartType getChartType() const;
399 };
400 
401 }
402 
403 #endif
FGAPI ChartType getChartType() const
Get the type of the chart.
VectorField is a line graph to display two dimensional data.
Definition: vector_field.h:170
FGAPI fg_err fg_render_chart(const fg_window pWindow, const fg_chart pChart, const int pX, const int pY, const int pWidth, const int pHeight)
Render the chart to given window.
Definition: defines.h:192
Four(Red, Green, Blue & Alpha) channels.
Definition: defines.h:113
void * fg_chart
Definition: defines.h:42
fg_marker_type
Definition: defines.h:164
No marker.
Definition: defines.h:165
Definition: chart.h:214
FGAPI void setLegendPosition(const float pX, const float pY)
Set legend position for Chart.
FGAPI fg_err fg_get_chart_type(const fg_chart_type *pChartType, const fg_chart pChart)
Render the type of a chart.
FGAPI Histogram histogram(const unsigned pNBins, const dtype pDataType)
Create and add an Histogram object to the current chart.
fg_plot_type
Definition: defines.h:158
FGAPI void setAxesLimits(const float pXmin, const float pXmax, const float pYmin, const float pYmax, const float pZmin=-1, const float pZmax=1)
Set axes data ranges.
FGAPI fg_err fg_set_chart_axes_titles(fg_chart pHandle, const char *pX, const char *pY, const char *pZ)
Set axes titles for the chart.
dtype
Definition: defines.h:187
fg_channel_format
Definition: defines.h:108
Plot is a line graph to display two dimensional data.
Definition: plot.h:188
FGAPI fg_err fg_set_chart_axes_limits(fg_chart pHandle, const float pXmin, const float pXmax, const float pYmin, const float pYmax, const float pZmin, const float pZmax)
Set axes data ranges.
fg_chart_type
Definition: defines.h:117
void * fg_vector_field
Definition: defines.h:47
FGAPI fg_err fg_add_vector_field_to_chart(fg_vector_field *pField, fg_chart pHandle, const unsigned pNPoints, const fg_dtype pType)
Create and add an Vector Field object to the current chart.
FGAPI fg_err fg_set_chart_legend_position(fg_chart pHandle, const float pX, const float pY)
Set legend position for Chart.
FGAPI void render(const Window &pWindow, const int pX, const int pY, const int pVPW, const int pVPH) const
Render the chart to given window.
FGAPI void add(const Image &pImage)
Add an existing Image object to the current chart.
#define FGAPI
Definition: defines.h:28
void * fg_surface
Definition: defines.h:46
FGAPI Chart(const ChartType cType)
Creates a Chart object with given dimensional property.
FGAPI fg_err fg_add_histogram_to_chart(fg_histogram *pHistogram, fg_chart pHandle, const unsigned pNBins, const fg_dtype pType)
Create and add an Histogram object to the current chart.
void * fg_plot
Definition: defines.h:45
FGAPI void setAxesTitles(const char *pX, const char *pY, const char *pZ=NULL)
Set axes titles for the chart.
void * fg_image
Definition: defines.h:43
fg_err
Definition: defines.h:49
Chart is base canvas where other plottable objects are rendered.
Definition: chart.h:226
Surface plot.
Definition: defines.h:161
Surface is a graph to display three dimensional data.
Definition: surface.h:153
FGAPI fg_err fg_add_image_to_chart(fg_image *pImage, fg_chart pHandle, const unsigned pWidth, const unsigned pHeight, const fg_channel_format pFormat, const fg_dtype pType)
Create and add an Image object to the current chart.
FGAPI fg_err fg_add_surface_to_chart(fg_surface *pSurface, fg_chart pHandle, const unsigned pXPoints, const unsigned pYPoints, const fg_dtype pType, const fg_plot_type pPlotType, const fg_marker_type pMarkerType)
Create and add an Plot object to the current chart.
FGAPI ~Chart()
Chart destructor.
FGAPI VectorField vectorField(const unsigned pNumPoints, const dtype pDataType)
Create and add an Vector Field object to the current chart.
FGAPI fg_err fg_destroy_chart(fg_chart pHandle)
Destroy the chart object.
Image is plain rendering of an image over the window or sub-region of it.
Definition: image.h:164
Window is where other objects such as Images, Plots etc.
Definition: window.h:296
void * fg_histogram
Definition: defines.h:44
void * fg_window
Definition: defines.h:40
Line plot.
Definition: defines.h:159
FGAPI fg_err fg_create_chart(fg_chart *pHandle, const fg_chart_type pChartType)
Create a Chart object with given dimensional property.
FGAPI Plot plot(const unsigned pNumPoints, const dtype pDataType, const PlotType pPlotType=FG_PLOT_LINE, const MarkerType pMarkerType=FG_MARKER_NONE)
Create and add an Plot object to the current chart.
FGAPI Image image(const unsigned pWidth, const unsigned pHeight, const ChannelFormat pFormat=FG_RGBA, const dtype pDataType=f32)
Create and add an Image object to the current chart.
fg_dtype
Definition: defines.h:148
FGAPI Surface surface(const unsigned pNumXPoints, const unsigned pNumYPoints, const dtype pDataType, const PlotType pPlotType=FG_PLOT_SURFACE, const MarkerType pMarkerType=FG_MARKER_NONE)
Create and add an Plot object to the current chart.
FGAPI fg_err fg_add_plot_to_chart(fg_plot *pPlot, fg_chart pHandle, const unsigned pNPoints, const fg_dtype pType, const fg_plot_type pPlotType, const fg_marker_type pMarkerType)
Create and add an Plot object to the current chart.
Histogram is a bar graph to display data frequencey.
Definition: histogram.h:153