#include <TnFXGraph.h>
The graphs can come in one of two formats: quick and pretty. The quick scales up to 500,000 points on typical 3D hardware without a problem whereas the pretty scales up to 100,000 on typical 3D hardware. As rendering all the points can take too long to allow smooth animation during user manipulation, the graph offers a turbo mode which quarters the number of points being plotted during animation. See FX::FXGLViewer::setTurbo().
Pretty mode can be enabled by specifying the option STYLE_SURFACE|SHADING_SMOOTH
on the FX::FXGLVertices underlying the item being rendered. You may also want to set up a specular light as well as a colour generation function.
Public Types | |
typedef void(* | ExpandFunc )(QMemArray< FXVec3f > &out, const QMemArray< FXVec2f > &in) |
typedef void(* | ReduceFunc )(QMemArray< FXVec3f > &out, const QMemArray< FXVec3f > &in) |
enum | { ID_LAST } |
Public Member Functions | |
TnFX3DGraph () | |
TnFX3DGraph (const QMemArray< FXVec2f > *data, ExpandFunc expand=Expand) | |
TnFX3DGraph (const QMemArray< FXVec3f > *data, ReduceFunc reduce=ReduceZ) | |
FXGLVertices * | setItemDetails (FXuint item, const FXString &title, const FXGLColor &colour, FXfloat pointsize=4.0f, FXfloat linesize=2.0f) |
FXGLVertices * | setItemData (FXuint item, const FXVec2f *data, FXuint elements, ExpandFunc expand=Expand) |
FXGLVertices * | setItemData (FXuint item, const QMemArray< FXVec2f > *data, ExpandFunc expand=Expand) |
FXGLVertices * | setItemData (FXuint item, const FXVec3f *data, FXuint elements, ReduceFunc reduce=ReduceZ) |
FXGLVertices * | setItemData (FXuint item, const QMemArray< FXVec3f > *data, ReduceFunc reduce=ReduceZ) |
FXGLVertices * | itemChanged (FXuint item) |
virtual void | bounds (FXRangef &box) |
virtual void | draw (FXGLViewer *viewer) |
virtual void | hit (FXGLViewer *viewer) |
FXGLObjectList & | getList () |
virtual FXGLObject * | copy () |
virtual FXGLObject * | identify (FXuint *path) |
virtual FXbool | canDrag () const |
virtual FXbool | drag (FXGLViewer *viewer, FXint fx, FXint fy, FXint tx, FXint ty) |
FXint | no () const |
FXGLObject * | child (FXint pos) const |
void | insert (FXint pos, FXGLObject *obj) |
void | prepend (FXGLObject *obj) |
void | append (FXGLObject *obj) |
void | replace (FXint pos, FXGLObject *obj) |
void | remove (FXGLObject *obj) |
void | erase (FXint pos) |
void | clear () |
virtual void | save (FXStream &store) const |
virtual void | load (FXStream &store) |
virtual FXbool | canDelete () const |
virtual long | onDefault (FXObject *, FXSelector, void *) |
const FXchar * | getClassName () const |
bool | isMemberOf (const FXMetaClass *metaclass) const |
virtual long | tryHandle (FXObject *sender, FXSelector sel, void *ptr) |
QTransString | tr (const char *text, const char *hint=0) |
virtual void * | getPythonObject () const |
virtual void | decouplePythonObject () const |
Static Public Member Functions | |
template<FXint zval> | |
static void | Expand (QMemArray< FXVec3f > &out, const QMemArray< FXVec2f > &in) |
static void | Expand (QMemArray< FXVec3f > &out, const QMemArray< FXVec2f > &in) |
template<int offset, int stepe, int stepm> | |
static void | ReduceE (QMemArray< FXVec3f > &out, const QMemArray< FXVec3f > &in) |
template<int yinc, int offset, int step> | |
static void | ReduceE2x (QMemArray< FXVec3f > &out, const QMemArray< FXVec3f > &in) |
template<int xinc, int offset, int step> | |
static void | ReduceE2y (QMemArray< FXVec3f > &out, const QMemArray< FXVec3f > &in) |
static void | ReduceZ (QMemArray< FXVec3f > &out, const QMemArray< FXVec3f > &in) |
Protected Attributes | |
QPtrVector< TnFXGraphItem > * | items |
FXGLObjectList | list |
typedef void(* FX::TnFXGraph::ExpandFunc)(QMemArray< FXVec3f > &out, const QMemArray< FXVec2f > &in) [inherited] |
A function translating a 2d array into a 3d array.
typedef void(* FX::TnFXGraph::ReduceFunc)(QMemArray< FXVec3f > &out, const QMemArray< FXVec3f > &in) [inherited] |
A function translating a 3d array into a 2d array.
FX::TnFX3DGraph::TnFX3DGraph | ( | ) |
Constructs an instance.
FXGLVertices* FX::TnFXGraph::setItemDetails | ( | FXuint | item, | |
const FXString & | title, | |||
const FXGLColor & | colour, | |||
FXfloat | pointsize = 4.0f , |
|||
FXfloat | linesize = 2.0f | |||
) | [inherited] |
Sets item title and colour.
FXGLVertices* FX::TnFXGraph::setItemData | ( | FXuint | item, | |
const FXVec2f * | data, | |||
FXuint | elements, | |||
ExpandFunc | expand = Expand | |||
) | [inherited] |
Sets the data to be used, with zero unsetting.
FXGLVertices* FX::TnFXGraph::setItemData | ( | FXuint | item, | |
const QMemArray< FXVec2f > * | data, | |||
ExpandFunc | expand = Expand | |||
) | [inherited] |
Sets the data to be used, with zero unsetting. Automatically fetches the length thereafter.
FXGLVertices* FX::TnFXGraph::setItemData | ( | FXuint | item, | |
const FXVec3f * | data, | |||
FXuint | elements, | |||
ReduceFunc | reduce = ReduceZ | |||
) | [inherited] |
Sets the data to be used, with zero unsetting.
FXGLVertices* FX::TnFXGraph::setItemData | ( | FXuint | item, | |
const QMemArray< FXVec3f > * | data, | |||
ReduceFunc | reduce = ReduceZ | |||
) | [inherited] |
Sets the data to be used, with zero unsetting. Automatically fetches the length thereafter.
FXGLVertices* FX::TnFXGraph::itemChanged | ( | FXuint | item | ) | [inherited] |
Indicates that an item's data should be recalculated.
virtual void FX::TnFXGraph::bounds | ( | FXRangef & | box | ) | [virtual, inherited] |
virtual void FX::TnFXGraph::draw | ( | FXGLViewer * | viewer | ) | [virtual, inherited] |
virtual void FX::TnFXGraph::hit | ( | FXGLViewer * | viewer | ) | [virtual, inherited] |
static void FX::TnFXGraph::Expand | ( | QMemArray< FXVec3f > & | out, | |
const QMemArray< FXVec2f > & | in | |||
) | [inline, static, inherited] |
Expands a 2d array into a 3d array by setting of Z.
References FX::QMemArray< type >::count(), and FX::QMemArray< type >::resize().
static void FX::TnFXGraph::Expand | ( | QMemArray< FXVec3f > & | out, | |
const QMemArray< FXVec2f > & | in | |||
) | [inline, static, inherited] |
Expands a 2d array into a 3d array by setting of Z to zero.
References FX::QMemArray< type >::count(), and FX::QMemArray< type >::resize().
static void FX::TnFXGraph::ReduceE | ( | QMemArray< FXVec3f > & | out, | |
const QMemArray< FXVec3f > & | in | |||
) | [inline, static, inherited] |
Translates a 3d array into a 2d array by elimination of a coordinate, stepping stepe at the end and stepm in the middle.
References FX::QMemArray< type >::count(), FX::QMemArray< type >::data(), and FX::QMemArray< type >::resize().
static void FX::TnFXGraph::ReduceE2x | ( | QMemArray< FXVec3f > & | out, | |
const QMemArray< FXVec3f > & | in | |||
) | [inline, static, inherited] |
Translates a 3d array into a 2d array by elimination of two coordinates.
References FX::QMemArray< type >::count(), FX::QMemArray< type >::data(), and FX::QMemArray< type >::resize().
static void FX::TnFXGraph::ReduceE2y | ( | QMemArray< FXVec3f > & | out, | |
const QMemArray< FXVec3f > & | in | |||
) | [inline, static, inherited] |
Translates a 3d array into a 2d array by elimination of two coordinates.
References FX::QMemArray< type >::count(), FX::QMemArray< type >::data(), and FX::QMemArray< type >::resize().
static void FX::TnFXGraph::ReduceZ | ( | QMemArray< FXVec3f > & | out, | |
const QMemArray< FXVec3f > & | in | |||
) | [inline, static, inherited] |
Translates a 3d array into a 2d array by division of Z.
References FX::QMemArray< type >::count(), and FX::QMemArray< type >::resize().
FXGLObjectList& FX::FXGLGroup::getList | ( | ) | [inline, inherited] |
Return list of childern.
virtual FXGLObject* FX::FXGLGroup::copy | ( | ) | [virtual, inherited] |
virtual FXGLObject* FX::FXGLGroup::identify | ( | FXuint * | path | ) | [virtual, inherited] |
virtual FXbool FX::FXGLGroup::canDrag | ( | ) | const [virtual, inherited] |
virtual FXbool FX::FXGLGroup::drag | ( | FXGLViewer * | viewer, | |
FXint | fx, | |||
FXint | fy, | |||
FXint | tx, | |||
FXint | ty | |||
) | [virtual, inherited] |
FXint FX::FXGLGroup::no | ( | ) | const [inline, inherited] |
Return number of children.
FXGLObject* FX::FXGLGroup::child | ( | FXint | pos | ) | const [inline, inherited] |
Child at position.
void FX::FXGLGroup::insert | ( | FXint | pos, | |
FXGLObject * | obj | |||
) | [inline, inherited] |
Insert child object at given position.
void FX::FXGLGroup::prepend | ( | FXGLObject * | obj | ) | [inline, inherited] |
Prepend child object.
void FX::FXGLGroup::append | ( | FXGLObject * | obj | ) | [inline, inherited] |
Append child object.
void FX::FXGLGroup::replace | ( | FXint | pos, | |
FXGLObject * | obj | |||
) | [inline, inherited] |
Replace child object.
void FX::FXGLGroup::remove | ( | FXGLObject * | obj | ) | [inline, inherited] |
Remove child object.
void FX::FXGLGroup::erase | ( | FXint | pos | ) | [inline, inherited] |
Remove child object at given position.
void FX::FXGLGroup::clear | ( | ) | [inline, inherited] |
Remove all children.
virtual void FX::FXGLGroup::save | ( | FXStream & | store | ) | const [virtual, inherited] |
virtual void FX::FXGLGroup::load | ( | FXStream & | store | ) | [virtual, inherited] |
virtual FXbool FX::FXGLObject::canDelete | ( | ) | const [virtual, inherited] |
virtual long FX::FXObject::onDefault | ( | FXObject * | , | |
FXSelector | , | |||
void * | ||||
) | [virtual, inherited] |
Called for unhandled messages.
Reimplemented in FX::FXDelegator, FX::FXGLViewer, FX::FXMDIChild, and FX::FXMDIClient.
const FXchar* FX::FXObject::getClassName | ( | ) | const [inherited] |
Get class name of some object.
bool FX::FXObject::isMemberOf | ( | const FXMetaClass * | metaclass | ) | const [inherited] |
Check if object is member of metaclass.
virtual long FX::FXObject::tryHandle | ( | FXObject * | sender, | |
FXSelector | sel, | |||
void * | ptr | |||
) | [virtual, inherited] |
Try handle message safely.
QTransString FX::FXObject::tr | ( | const char * | text, | |
const char * | hint = 0 | |||
) | [inherited] |
Returns a human translated version of the text to the locale language (warning: uses a virtual method call, so can't use before construction)
virtual void* FX::FXObject::getPythonObject | ( | ) | const [inline, virtual, inherited] |
Returns the python object representing this instance (if created in python).
virtual void FX::FXObject::decouplePythonObject | ( | ) | const [inline, virtual, inherited] |
Causes decoupling of python object from this object (deletes self).