![]() |
Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/kogt/ |
The LegendKit class is used to draw a simple colormap legend. More...
#include <LegendKit.h>
Inherits SoBaseKit.
Public Types | |
typedef SbString | SoNumberFormatCB(const double number, void *closure) |
![]() | |
enum | NodeType |
Public Member Functions | |
LegendKit (void) | |
void | preRender (SoAction *action) |
void | setImageTransparency (const float transparency=0.0f) |
void | useTextureNotImage (const SbBool onoff) |
void | setColorCB (uint32_t(*colorCB)(double, void *), void *userdata=NULL) |
void | setColorCB (uint32_t(*colorCB)(double)) |
void | clearTicks (void) |
void | addSmallTick (double nval) |
void | addBigTick (double nval, double tickvalue, const SbString *discretestring=NULL) |
void | addBigTick (double nval, const SbString &string, const SbString *discretestring=NULL) |
void | setDiscreteMode (const SbBool onoff) |
void | addDiscreteColor (double uppernval, uint32_t color) |
void | addDiscreteColor (double uppernval) |
void | clearData (void) |
void | enableImage (const SbBool onoff) |
float | getLegendWidth (void) const |
void | setNumberFormatCallback (SoNumberFormatCB *cb, void *closure) |
void | setTickAndLinesColor (const SbColor &color, const float transparency=0.0f) |
void | setTextColor (const SbColor &color, const float transparency=0.0f) |
void | setPosition (const SbVec2s &pos) |
void | setBackgroundColor (const SbColor &color, const float transparency=0.0f) |
void | enableBackground (const SbBool onoff) |
![]() | |
virtual SoType | getTypeId (void) const |
SoBaseKit (void) | |
virtual const SoNodekitCatalog * | getNodekitCatalog (void) const |
virtual SoNode * | getPart (const SbName &partname, SbBool makeifneeded) |
SbString | getPartString (const SoBase *part) |
virtual SoNodeKitPath * | createPathToPart (const SbName &partname, SbBool makeifneeded, const SoPath *pathtoextend=NULL) |
virtual SbBool | setPart (const SbName &partname, SoNode *from) |
SbBool | set (const char *namevaluepairliststring) |
SbBool | set (const char *partnamestring, const char *parameterstring) |
virtual void | doAction (SoAction *action) |
virtual void | write (SoWriteAction *action) |
virtual SoChildList * | getChildren (void) const |
void | printDiagram (void) |
void | printSubDiagram (const SbName &rootname, int level) |
void | printTable (void) |
virtual void | addWriteReference (SoOutput *out, SbBool isfromfield=FALSE) |
SbBool | forceChildDrivenWriteRefs (SoOutput *out) |
![]() | |
void | setOverride (const SbBool state) |
SbBool | isOverride (void) const |
void | setNodeType (const NodeType type) |
NodeType | getNodeType (void) const |
virtual SoNode * | copy (SbBool copyconnections=FALSE) const |
virtual void | GLRenderBelowPath (SoGLRenderAction *action) |
virtual void | GLRenderInPath (SoGLRenderAction *action) |
virtual void | GLRenderOffPath (SoGLRenderAction *action) |
virtual void | grabEventsSetup (void) |
virtual void | grabEventsCleanup (void) |
virtual void | startNotify (void) |
SbUniqueId | getNodeId (void) const |
virtual void | writeInstance (SoOutput *out) |
virtual SoFieldContainer * | copyThroughConnection (void) const |
![]() | |
void | setToDefaults (void) |
SbBool | hasDefaultValues (void) const |
SbBool | fieldsAreEqual (const SoFieldContainer *container) const |
void | copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE) |
SbBool | set (const char *const fielddata) |
void | get (SbString &fielddata) |
virtual int | getFields (SoFieldList &l) const |
virtual int | getAllFields (SoFieldList &l) const |
virtual SoField * | getField (const SbName &name) const |
virtual SoField * | getEventIn (const SbName &name) const |
virtual SoField * | getEventOut (const SbName &name) const |
SbBool | getFieldName (const SoField *const field, SbName &name) const |
SbBool | enableNotify (const SbBool flag) |
SbBool | isNotifyEnabled (void) const |
SbBool | set (const char *fielddata, SoInput *input) |
void | get (SbString &fielddata, SoOutput *out) |
virtual SbBool | validateNewFieldValue (SoField *field, void *newval) |
SbBool | getIsBuiltIn (void) const |
virtual void | getFieldsMemorySize (size_t &managed, size_t &unmanaged) const |
void | setUserData (void *userdata) const |
void * | getUserData (void) const |
![]() | |
void | ref (void) const |
void | unref (void) const |
void | unrefNoDelete (void) const |
int32_t | getRefCount (void) const |
void | touch (void) |
SbBool | isOfType (SoType type) const |
virtual SbName | getName (void) const |
virtual void | setName (const SbName &newname) |
void | addAuditor (void *const auditor, const SoNotRec::Type type) |
void | removeAuditor (void *const auditor, const SoNotRec::Type type) |
const SoAuditorList & | getAuditors (void) const |
SbBool | shouldWrite (void) |
void | assertAlive (void) const |
Static Public Member Functions | |
static void | initClass (void) |
![]() | |
static const SoNodekitCatalog * | getClassNodekitCatalog (void) |
static SbBool | isSearchingChildren (void) |
static void | setSearchingChildren (const SbBool newval) |
![]() | |
static uint32_t | getCompatibilityTypes (const SoType &nodetype) |
static SoNode * | getByName (const SbName &name) |
static int | getByName (const SbName &name, SoNodeList &l) |
static void | initClasses (void) |
static SbUniqueId | getNextNodeId (void) |
static int | getActionMethodIndex (const SoType type) |
static void | getBoundingBoxS (SoAction *action, SoNode *node) |
static void | GLRenderS (SoAction *action, SoNode *node) |
static void | callbackS (SoAction *action, SoNode *node) |
static void | getMatrixS (SoAction *action, SoNode *node) |
static void | handleEventS (SoAction *action, SoNode *node) |
static void | pickS (SoAction *action, SoNode *node) |
static void | rayPickS (SoAction *action, SoNode *node) |
static void | searchS (SoAction *action, SoNode *node) |
static void | writeS (SoAction *action, SoNode *node) |
static void | audioRenderS (SoAction *action, SoNode *node) |
static void | getPrimitiveCountS (SoAction *action, SoNode *node) |
![]() | |
static void | initCopyDict (void) |
static void | addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) |
static SoFieldContainer * | checkCopy (const SoFieldContainer *orig) |
static SoFieldContainer * | findCopy (const SoFieldContainer *orig, const SbBool copyconnections) |
static void | copyDone (void) |
![]() | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
static void | addName (SoBase *const base, const char *const name) |
static void | removeName (SoBase *const base, const char *const name) |
static void | incrementCurrentWriteCounter (void) |
static void | decrementCurrentWriteCounter (void) |
static SoBase * | getNamedBase (const SbName &name, SoType type) |
static int | getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) |
static SbBool | read (SoInput *input, SoBase *&base, SoType expectedtype) |
static void | setInstancePrefix (const SbString &c) |
static void | setTraceRefs (SbBool trace) |
static SbBool | getTraceRefs (void) |
static SbBool | connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) |
static SbBool | readRoute (SoInput *input) |
Protected Member Functions | |
virtual void | GLRender (SoGLRenderAction *action) |
virtual void | getBoundingBox (SoGetBoundingBoxAction *action) |
virtual void | handleEvent (SoHandleEventAction *action) |
virtual void | search (SoSearchAction *action) |
virtual void | callback (SoCallbackAction *action) |
virtual void | getMatrix (SoGetMatrixAction *action) |
virtual void | pick (SoPickAction *action) |
virtual void | rayPick (SoRayPickAction *action) |
virtual void | audioRender (SoAudioRenderAction *action) |
virtual void | getPrimitiveCount (SoGetPrimitiveCountAction *action) |
virtual SbBool | affectsState (void) const |
virtual | ~LegendKit () |
virtual void | notify (SoNotList *list) |
![]() | |
virtual const SoFieldData * | getFieldData (void) const |
virtual | ~SoBaseKit () |
virtual SoNode * | addToCopyDict (void) const |
virtual void | copyContents (const SoFieldContainer *fromfc, SbBool copyconnections) |
SoGroup * | getContainerNode (const SbName &listname, SbBool makeifneeded=TRUE) |
virtual SoNode * | getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE) |
virtual SoNodeKitPath * | createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE, const SoPath *pathtoextend=NULL) |
virtual SbBool | setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE) |
void | createNodekitPartsList (void) |
void | createFieldList (void) |
virtual void | createDefaultParts (void) |
const SoNodekitParts * | getNodekitPartsList (void) const |
const SbList< SoSFNode *> & | getCatalogInstances (void) const |
void | catalogError (void) |
virtual SbBool | setUpConnections (SbBool onoff, SbBool doitalways=FALSE) |
virtual SbBool | readInstance (SoInput *in, unsigned short flags) |
virtual void | setDefaultOnNonWritingFields (void) |
void | countMyFields (SoOutput *out) |
virtual SbBool | setPart (const int partNum, SoNode *node) |
![]() | |
SoNode (void) | |
virtual | ~SoNode () |
![]() | |
SoFieldContainer (void) | |
virtual | ~SoFieldContainer () |
![]() | |
SoBase (void) | |
virtual | ~SoBase () |
virtual void | destroy (void) |
SbBool | hasMultipleWriteRefs (void) const |
SbBool | writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const |
void | writeFooter (SoOutput *out) const |
virtual const char * | getFileFormatName (void) const |
Additional Inherited Members | |
![]() | |
enum | BaseFlags |
![]() | |
static const SoNodekitCatalog ** | getClassNodekitCatalogPtr (void) |
![]() | |
static const SoFieldData ** | getFieldDataPtr (void) |
static void | setNextActionMethodIndex (int index) |
static int | getNextActionMethodIndex (void) |
static void | incNextActionMethodIndex (void) |
static void | setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) |
![]() | |
static uint32_t | getCurrentWriteCounter (void) |
![]() | |
SoChildList * | children |
SbBool | connectionsSetUp |
![]() | |
SbUniqueId | uniqueId |
![]() | |
SbBool | isBuiltIn |
![]() | |
static SbUniqueId | nextUniqueId |
static int | nextActionMethodIndex |
The LegendKit class is used to draw a simple colormap legend.
FIXME: there should be an explanation of general usage here, preferably with an example. 20040305 mortene.
The class is organized as a nodekit for convenience. Most parts are public, but users should seldom have any reason for changing anything but the backgroundMaterial, tickMaterial and extraNodes parts.
This nodekit contains the follwing parts:
typedef SbString LegendKit::SoNumberFormatCB(const double number, void *closure) |
LegendKit::LegendKit | ( | void | ) |
Constructor.
|
protectedvirtual |
Destructor.
void LegendKit::addBigTick | ( | double | nval, |
double | tickvalue, | ||
const SbString * | discretetext = NULL |
||
) |
Adds a big tick at the normalized (0-1) position nval. Prints the value tickvalue to the right of the tick. If discretetext is != NULL, this text will be used when in discrete mode, and will be printed between this tick and the previous tick.
void LegendKit::addBigTick | ( | double | nval, |
const SbString & | string, | ||
const SbString * | discretetext = NULL |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void LegendKit::addDiscreteColor | ( | double | uppernval, |
uint32_t | color | ||
) |
Adds a discrete color. The area from the previous discrete color added (or from 0 if this is the first one) to uppernval will be painted with color.
void LegendKit::addDiscreteColor | ( | double | uppernval | ) |
Adds a discrete color. The area from the previous discrete color added (or from 0 if this is the first one) to uppernval will be painted with the color found from the color callback for the value uppernval or from the previous discrete uppernval if discreteUseLower is TRUE.
void LegendKit::addSmallTick | ( | double | nval | ) |
Adds a small tick at the normalized (0-1) position nval.
|
protectedvirtual |
Reimplemented from SoNode.
|
protectedvirtual |
Reimplemented from SoNode.
|
protectedvirtual |
Reimplemented from SoBaseKit.
void LegendKit::clearData | ( | void | ) |
Clears all data in this kit.
void LegendKit::clearTicks | ( | void | ) |
Clear all tick information.
void LegendKit::enableBackground | ( | const SbBool | onoff | ) |
Enables or disables the Legend background.
void LegendKit::enableImage | ( | const SbBool | onoff | ) |
Enable/disable legend image. Is enabled by default.
|
protectedvirtual |
Reimplemented from SoBaseKit.
float LegendKit::getLegendWidth | ( | void | ) | const |
Returns the width (in pixels) of the legend.
|
protectedvirtual |
Reimplemented from SoBaseKit.
|
protectedvirtual |
Reimplemented from SoBaseKit.
|
protectedvirtual |
Overloaded to (re)initialize image and other data before rendering.
Reimplemented from SoBaseKit.
|
protectedvirtual |
Reimplemented from SoBaseKit.
|
static |
Initializes this class. Call before using it.
|
protectedvirtual |
Overloaded to recalculate stuff when necessary.
Reimplemented from SoNode.
|
protectedvirtual |
Reimplemented from SoNode.
void LegendKit::preRender | ( | SoAction * | action | ) |
Method needed for thread safe rendering. If multiple threads are used to render a scene graph containing this nodekit, you must set the threadSafe field to TRUE, and use an SoCallbackAction to call this method before rendering the scene graph.
|
protectedvirtual |
Reimplemented from SoBaseKit.
|
protectedvirtual |
Reimplemented from SoBaseKit.
void LegendKit::setBackgroundColor | ( | const SbColor & | color, |
const float | transparency = 0.0f |
||
) |
Sets the background color.
void LegendKit::setColorCB | ( | uint32_t(*)(double, void *) | colorCB, |
void * | userdata = NULL |
||
) |
Sets the callback used to decide the color per line in the image.
The user-provided callback should for each call return the RGBA value encoded as a 32-bits value, for the value given by the first argument to the callback.
void LegendKit::setColorCB | ( | uint32_t(*)(double) | colorCB | ) |
void LegendKit::setDiscreteMode | ( | const SbBool | onoff | ) |
Switch to discrete mode. If a callback is registered and one or more big ticks have been added, a call to this method will cause the discrete data to generated based on those values. For each big tick, the color value is found, and the discrete color for the area from the tick to the next big tick is set to the color of the line right under the next big tick.
void LegendKit::setImageTransparency | ( | const float | transparency = 0.0f | ) |
Sets the transparency for the image in the legend (the color bars). Because the image might be drawn as an image, and not a texture, each pixel in the image has to be reset to the new alpha value the next time the legend is rendered.
void LegendKit::setNumberFormatCallback | ( | SoNumberFormatCB * | cb, |
void * | closure | ||
) |
Set a callback to be used for formatting numbers instead of the tickValueFormat field.
void LegendKit::setPosition | ( | const SbVec2s & | pos | ) |
Sets the position, in pixels from the lower left corner of the GL widget.
void LegendKit::setTextColor | ( | const SbColor & | color, |
const float | transparency = 0.0f |
||
) |
Sets the color used when rendering text.
void LegendKit::setTickAndLinesColor | ( | const SbColor & | color, |
const float | transparency = 0.0f |
||
) |
Sets the color used when rendering ticks and other lines.
void LegendKit::useTextureNotImage | ( | const SbBool | onoff | ) |
By default the image is drawn as a raw GL image. Call this with onoff TRUE if you want to use a textured quad instead. This is much faster on most PC cards. Maybe a test for linux and _WIN32 could be a good idea to enable this. On SGI and HP (AFAIK) platforms raw GL image drawing is pretty fast.
SoSFFloat LegendKit::bigTickSize |
The size of the big ticks, in pixels.
SoSFBool LegendKit::delayedRender |
Specifies whether legend should be rendered using SoGLRenderAction::addDelayedPath(). Default value is TRUE.
SoSFString LegendKit::description |
The description/title for the legend. Default value is an empty string. If you specify several strings, they will be printed one string per line.
SoSFBool LegendKit::descriptionOnTop |
Specifies whether description should be on top or at the bottom. Default value is TRUE.
SoSFFloat LegendKit::discreteUseLower |
When calculating the discrete color between bigticks, use the lower value of that section (the value right above the previous bigtick), instead of the upper value (the value right below the current bigtick).
SoSFFloat LegendKit::imageWidth |
The width of the legend image. Default value is 32.
SoSFBool LegendKit::on |
Specifies whether the legend is enabled (visible) or not. Default value is TRUE.
SoSFFloat LegendKit::smallTickSize |
The size of the small ticks, in pixels.
SoSFFloat LegendKit::space |
The space (in pixels) between items in the legend. Default value is 6.0, which usually looks pretty good.
SoSFBool LegendKit::threadSafe |
SoSFString LegendKit::tickValueFormat |
The format string used to convert the tick value into a string. Default value is g.
SoSFFloat LegendKit::tickValueOffset |
The offset from the end of the big tick to the printed value. Default value is 2.
SoSFFloat LegendKit::topSpace |
The distance, in pixels, from the top of the viewport to the top of the legend. Default value is 0.0.