Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoMarker Class Reference

VSG extension Defines a custom bitmap for SoMarkerSet and SoIndexedMarkerSet. More...

#include <Inventor/nodes/SoMarker.h>

+ Inheritance diagram for SoMarker:

Public Types

enum  MarkerType {
  CROSS_5_5 ,
  PLUS_5_5 ,
  MINUS_5_5 ,
  SLASH_5_5 ,
  BACKSLASH_5_5 ,
  BAR_5_5 ,
  STAR_5_5 ,
  Y_5_5 ,
  LIGHTNING_5_5 ,
  WELL_5_5 ,
  CIRCLE_LINE_5_5 ,
  SQUARE_LINE_5_5 ,
  DIAMOND_LINE_5_5 ,
  TRIANGLE_LINE_5_5 ,
  RHOMBUS_LINE_5_5 ,
  HOURGLASS_LINE_5_5 ,
  SATELLITE_LINE_5_5 ,
  PINE_TREE_LINE_5_5 ,
  CAUTION_LINE_5_5 ,
  SHIP_LINE_5_5 ,
  CIRCLE_FILLED_5_5 ,
  SQUARE_FILLED_5_5 ,
  DIAMOND_FILLED_5_5 ,
  TRIANGLE_FILLED_5_5 ,
  RHOMBUS_FILLED_5_5 ,
  HOURGLASS_FILLED_5_5 ,
  SATELLITE_FILLED_5_5 ,
  PINE_TREE_FILLED_5_5 ,
  CAUTION_FILLED_5_5 ,
  SHIP_FILLED_5_5 ,
  CROSS_7_7 ,
  PLUS_7_7 ,
  MINUS_7_7 ,
  SLASH_7_7 ,
  BACKSLASH_7_7 ,
  BAR_7_7 ,
  STAR_7_7 ,
  Y_7_7 ,
  LIGHTNING_7_7 ,
  WELL_7_7 ,
  CIRCLE_LINE_7_7 ,
  SQUARE_LINE_7_7 ,
  DIAMOND_LINE_7_7 ,
  TRIANGLE_LINE_7_7 ,
  RHOMBUS_LINE_7_7 ,
  HOURGLASS_LINE_7_7 ,
  SATELLITE_LINE_7_7 ,
  PINE_TREE_LINE_7_7 ,
  CAUTION_LINE_7_7 ,
  SHIP_LINE_7_7 ,
  CIRCLE_FILLED_7_7 ,
  SQUARE_FILLED_7_7 ,
  DIAMOND_FILLED_7_7 ,
  TRIANGLE_FILLED_7_7 ,
  RHOMBUS_FILLED_7_7 ,
  HOURGLASS_FILLED_7_7 ,
  SATELLITE_FILLED_7_7 ,
  PINE_TREE_FILLED_7_7 ,
  CAUTION_FILLED_7_7 ,
  SHIP_FILLED_7_7 ,
  CROSS_9_9 ,
  PLUS_9_9 ,
  MINUS_9_9 ,
  SLASH_9_9 ,
  BACKSLASH_9_9 ,
  BAR_9_9 ,
  STAR_9_9 ,
  Y_9_9 ,
  LIGHTNING_9_9 ,
  WELL_9_9 ,
  CIRCLE_LINE_9_9 ,
  SQUARE_LINE_9_9 ,
  DIAMOND_LINE_9_9 ,
  TRIANGLE_LINE_9_9 ,
  RHOMBUS_LINE_9_9 ,
  HOURGLASS_LINE_9_9 ,
  SATELLITE_LINE_9_9 ,
  PINE_TREE_LINE_9_9 ,
  CAUTION_LINE_9_9 ,
  SHIP_LINE_9_9 ,
  CIRCLE_FILLED_9_9 ,
  SQUARE_FILLED_9_9 ,
  DIAMOND_FILLED_9_9 ,
  TRIANGLE_FILLED_9_9 ,
  RHOMBUS_FILLED_9_9 ,
  HOURGLASS_FILLED_9_9 ,
  SATELLITE_FILLED_9_9 ,
  PINE_TREE_FILLED_9_9 ,
  CAUTION_FILLED_9_9 ,
  SHIP_FILLED_9_9
}
 Marker type. More...
 

Public Member Functions

virtual SoType getTypeId () const
 Returns the type identifier for this specific instance.
 
 SoMarker ()
 Marker constructor.
 
- Public Member Functions inherited from SoNode
virtual void setOverride (const SbBool state)
 Turns the override flag on or off.
 
virtual SbBool isOverride () const
 Returns the state of the override flag.
 
virtual SoNodecopy (SbBool copyConnections=FALSE) const
 Creates and returns an exact copy of the node.
 
virtual SbBool affectsState () const
 Returns TRUE if a node has an effect on the state during traversal.
 
virtual void touch ()
 Marks an instance as modified, simulating a change to it.
 
- Public Member Functions inherited from SoFieldContainer
void setToDefaults ()
 Sets all fields in this object to their default values.
 
SbBool hasDefaultValues () const
 Returns TRUE if all of the object's fields have their default values.
 
SbBool fieldsAreEqual (const SoFieldContainer *fc) const
 Returns TRUE if this object's fields are exactly equal to fc's fields.
 
void copyFieldValues (const SoFieldContainer *fc, SbBool copyConnections=FALSE)
 Copies the contents of fc's fields into this object's fields.
 
SoNONUNICODE SbBool set (const char *fieldDataString)
 Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.
 
SbBool set (const SbString &fieldDataString)
 Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.
 
void get (SbString &fieldDataString)
 Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string.
 
virtual int getFields (SoFieldList &list) const
 Appends references to all of this object's fields to resultList, and returns the number of fields appended.
 
virtual int getAllFields (SoFieldList &list) const
 Returns a list of fields, including the eventIn's and eventOut's.
 
virtual SoFieldgetField (const SbName &fieldName) const
 Returns a the field of this object whose name is fieldName.
 
virtual SoFieldgetEventIn (const SbName &fieldName) const
 Returns a the eventIn with the given name.
 
virtual SoFieldgetEventOut (const SbName &fieldName) const
 Returns the eventOut with the given name.
 
SbBool getFieldName (const SoField *field, SbName &fieldName) const
 Returns the name of the given field in the fieldName argument.
 
SbBool enableNotify (SbBool flag)
 Notification at this Field Container is enabled (if flag == TRUE) or disabled (if flag == FALSE).
 
SbBool isNotifyEnabled () const
 Notification is the process of telling interested objects that this object has changed.
 
virtual void setUserData (void *data)
 Sets application data.
 
void * getUserData (void) const
 Gets user application data.
 
- Public Member Functions inherited from SoBase
virtual SbName getName () const
 Returns the name of an instance.
 
virtual void setName (const SbName &name)
 Sets the name of an instance.
 
void setSynchronizable (const bool b)
 Sets this to be a ScaleViz synchronizable object.
 
bool isSynchronizable () const
 Gets the ScaleViz synchronizable state of this object.
 
- Public Member Functions inherited from SoRefCounter
void ref () const
 Adds a reference to an instance.
 
void unref () const
 Removes a reference from an instance.
 
void unrefNoDelete () const
 unrefNoDelete() should be called when it is desired to decrement the reference count, but not delete the instance if this brings the reference count to zero.
 
int getRefCount () const
 Returns current reference count.
 
void lock () const
 lock this instance.
 
void unlock () const
 unlock this instance.
 
- Public Member Functions inherited from SoTypedObject
SbBool isOfType (const SoType &type) const
 Returns TRUE if this object is of the type specified in type or is derived from that type.
 
template<typename TypedObjectClass >
SbBool isOfType () const
 Returns TRUE if this object is of the type of class TypedObjectClass or is derived from that class.
 

Static Public Member Functions

static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
- Static Public Member Functions inherited from SoNode
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 
static SoNodegetByName (const SbName &name)
 A node's name can be set using SoBase::setName().
 
static int getByName (const SbName &name, SoNodeList &list)
 A node's name can be set using SoBase::setName().
 
- Static Public Member Functions inherited from SoFieldContainer
static SoType getClassTypeId ()
 Returns the type of this class.
 
- Static Public Member Functions inherited from SoBase
static SoType getClassTypeId ()
 Returns type identifier for this class.
 
- Static Public Member Functions inherited from SoTypedObject
static SoType getClassTypeId ()
 Returns the type identifier for this class.
 

Public Attributes

SoMFUByte bitmap
 Defines the current marker data buffer.
 
SoMFUInt32 orderedRGBA
 Defines the marker coloration mask.
 
SoSFBool upToDown
 if TRUE, marker bitmap is described from down to up (that is bytes[0] is the left bottom corner of the bitmap), otherwise from up to down (that is bytes[0] is the top left corner).
 
SoSFBool isLSBFirst
 if TRUE, bits are ordered within a byte from Least Significant to most significant; otherwise the first bit in each byte is the most significant one.
 
SoSFVec2s size
 Defines the size (in pixels) of the marker.
 
SoSFInt32 index
 Defines the marker index.
 

Detailed Description

VSG extension Defines a custom bitmap for SoMarkerSet and SoIndexedMarkerSet.

This class defines a Marker. A marker is an image defined by a bitmap and optional color values. If no color values are given then image pixels corresponding to "1" bits are drawn using the current material color (see SoMaterial) and pixels corresponding to "0" bits are not drawn (whatever is behind the marker shows through). If color values are given then each pixel in the image can be assigned an RGBA value.

size is the dimensions of the marker image in pixels. bitmap is the marker bitmap. The bitmap is arranged row by row, from left to right and up to down (or down to up according to the parameter isUpToDown ). Each byte specifies eight pixels. If isLSBFirst is TRUE, bits are ordered within a byte from Least Significant to Most Significant; otherwise the first bit in each byte is the most significant one. If isUpToDown is TRUE, the marker bitmap is described from down to up (first byte is the bottom left corner of the bitmap), otherwise from up to down (first byte is the top left corner).
Also note that each row must use a whole number of bytes. Padding is thus needed at the end of each row if row size is not a multiple of 8.
orderedRGBA is an optional color mask to apply to the marker. The color mask is arranged the same as bitmap, but each value (unsigned integer) specifies the color of one pixel. Each color is an ordered RGBA value. A value of 0xFF for Alpha makes the color mask be ignored for this pixel, and the color is inherited from the state depending on the bitmap value (as if no color values were given).

Note:

  • If only orderedRGBA values are set, the bitmap is assumed to be a fully defined set of "1" bits.
  • Marker size must be greater than 1x1.

Marker definitions are used by the SoMarkerSet and SoIndexedMarkerSet nodes. To make a custom marker available to these nodes, use one of the addMarker methods defined in those classes.

An SoMarker node can be added to the scene graph, but it is not a geometry node or an attribute node (does not render anything and does not affect the traversal state list). However SoMarker nodes are written out to an Inventor file if an SoWriteAction is applied to the scene graph. So adding SoMarker nodes to the scene graph allows custom marker definitions to be saved and restored. For example:

// Add markers to scene graph in order to export them in IV file.
root->addChild( SoMarkerSet::getMarker(90) );
root->addChild( SoMarkerSet::getMarker(91) );
root->addChild( SoMarkerSet::getMarker(92) );
static SbBool getMarker(int markerIndex, SbVec2s &size, const unsigned char *&bytes, SbBool &isLSBFirst)
Retrieve the description of the marker with index markerIndex .

FILE FORMAT/DEFAULT

    Marker {
    bitmap 0
    orderedRGBA 0
    upToDown TRUE
    LSBFirst TRUE
    size (0, 0)
    index -1
    }

SEE ALSO

SoMarkerSet, SoIndexedMarkerSet

Definition at line 129 of file SoMarker.h.

Member Enumeration Documentation

◆ MarkerType

Marker type.

Enumerator
CROSS_5_5 

Cross 5x5.

PLUS_5_5 

Plus 5x5.

MINUS_5_5 

Minus 5x5.

SLASH_5_5 

Slash 5x5.

BACKSLASH_5_5 

Backslash 5x5.

BAR_5_5 

Bar 5x5.

STAR_5_5 

Star 5x5.

Y_5_5 

Y 5x5.

LIGHTNING_5_5 

Lightning 5x5.

WELL_5_5 

Well 5x5.

CIRCLE_LINE_5_5 

Circle line 5x5.

SQUARE_LINE_5_5 

Square line 5x5.

DIAMOND_LINE_5_5 

Diamond line 5x5.

TRIANGLE_LINE_5_5 

Triangle line 5x5.

RHOMBUS_LINE_5_5 

Rhombus line 5x5.

HOURGLASS_LINE_5_5 

Hourglass line 5x5.

SATELLITE_LINE_5_5 

Satellite line 5x5.

PINE_TREE_LINE_5_5 

Pine line 5x5.

CAUTION_LINE_5_5 

Caution line 5x5.

SHIP_LINE_5_5 

Ship line 5x5.

CIRCLE_FILLED_5_5 

Circle filled 5x5.

SQUARE_FILLED_5_5 

Square filled 5x5.

DIAMOND_FILLED_5_5 

Diamond filled 5x5.

TRIANGLE_FILLED_5_5 

Triangle filled 5x5.

RHOMBUS_FILLED_5_5 

Rhombus filled 5x5.

HOURGLASS_FILLED_5_5 

Hourglass filled 5x5.

SATELLITE_FILLED_5_5 

Satellite filled 5x5.

PINE_TREE_FILLED_5_5 

Pine filled 5x5.

CAUTION_FILLED_5_5 

Caution filled 5x5.

SHIP_FILLED_5_5 

Ship filled 5x5.

CROSS_7_7 

Cross 7x7.

PLUS_7_7 

Plus 7x7.

MINUS_7_7 

Minus 7x7.

SLASH_7_7 

Slash 7x7.

BACKSLASH_7_7 

Backslash 7x7.

BAR_7_7 

Bar 7x7.

STAR_7_7 

Star 7x7.

Y_7_7 

Y 7x7.

LIGHTNING_7_7 

Lightning 7x7.

WELL_7_7 

Well 7x7.

CIRCLE_LINE_7_7 

Circle line 7x7.

SQUARE_LINE_7_7 

Square line 7x7.

DIAMOND_LINE_7_7 

Diamond line 7x7.

TRIANGLE_LINE_7_7 

Triangle line 7x7.

RHOMBUS_LINE_7_7 

Rhombus line 7x7.

HOURGLASS_LINE_7_7 

Hourglass line 7x7.

SATELLITE_LINE_7_7 

Satellite line 7x7.

PINE_TREE_LINE_7_7 

Pine line 7x7.

CAUTION_LINE_7_7 

Caution line 7x7.

SHIP_LINE_7_7 

Ship line 7x7.

CIRCLE_FILLED_7_7 

Circle filled 7x7.

SQUARE_FILLED_7_7 

Square filled 7x7.

DIAMOND_FILLED_7_7 

Diamond filled 7x7.

TRIANGLE_FILLED_7_7 

Triangle filled 7x7.

RHOMBUS_FILLED_7_7 

Rhombus filled 7x7.

HOURGLASS_FILLED_7_7 

Hourglass filled 7x7.

SATELLITE_FILLED_7_7 

Satellite filled 7x7.

PINE_TREE_FILLED_7_7 

Pine filled 7x7.

CAUTION_FILLED_7_7 

Caution filled 7x7.

SHIP_FILLED_7_7 

Ship filled 7x7.

CROSS_9_9 

Cross 9x9.

PLUS_9_9 

Plus 9x9.

MINUS_9_9 

Minus 9x9.

SLASH_9_9 

Slash 9x9.

BACKSLASH_9_9 

Backslash 9x9.

BAR_9_9 

Bar 9x9.

STAR_9_9 

Star 9x9.

Y_9_9 

Y 9x9.

LIGHTNING_9_9 

Lightning 9x9.

WELL_9_9 

Well 9x9.

CIRCLE_LINE_9_9 

Circle line 9x9.

SQUARE_LINE_9_9 

Square line 9x9.

DIAMOND_LINE_9_9 

Diamond line 9x9.

TRIANGLE_LINE_9_9 

Triangle line 9x9.

RHOMBUS_LINE_9_9 

Rhombus line 9x9.

HOURGLASS_LINE_9_9 

Hourglass line 9x9.

SATELLITE_LINE_9_9 

Satellite line 9x9.

PINE_TREE_LINE_9_9 

Pine line 9x9.

CAUTION_LINE_9_9 

Caution line 9x9.

SHIP_LINE_9_9 

Ship line 9x9.

CIRCLE_FILLED_9_9 

Circle filled 9x9.

SQUARE_FILLED_9_9 

Square filled 9x9.

DIAMOND_FILLED_9_9 

Diamond filled 9x9.

TRIANGLE_FILLED_9_9 

Triangle filled 9x9.

RHOMBUS_FILLED_9_9 

Rhombus filled 9x9.

HOURGLASS_FILLED_9_9 

Hourglass filled 9x9.

SATELLITE_FILLED_9_9 

Satellite filled 9x9.

PINE_TREE_FILLED_9_9 

Pine filled 9x9.

CAUTION_FILLED_9_9 

Caution filled 9x9.

SHIP_FILLED_9_9 

Ship filled 9x9.

Definition at line 136 of file SoMarker.h.

Constructor & Destructor Documentation

◆ SoMarker()

SoMarker::SoMarker ( )

Marker constructor.

Member Function Documentation

◆ getClassTypeId()

static SoType SoMarker::getClassTypeId ( )
static

Returns the type identifier for this class.


◆ getTypeId()

virtual SoType SoMarker::getTypeId ( ) const
virtual

Returns the type identifier for this specific instance.

Reimplemented from SoNode.

Member Data Documentation

◆ bitmap

SoMFUByte SoMarker::bitmap

Defines the current marker data buffer.

Note that each pixel row of the marker must use a whole number of bytes. Padding is thus needed at the end of each row if row size is not a multiple of 8.

Definition at line 339 of file SoMarker.h.

◆ index

SoSFInt32 SoMarker::index

Defines the marker index.

Definition at line 367 of file SoMarker.h.

◆ isLSBFirst

SoSFBool SoMarker::isLSBFirst

if TRUE, bits are ordered within a byte from Least Significant to most significant; otherwise the first bit in each byte is the most significant one.

Definition at line 357 of file SoMarker.h.

◆ orderedRGBA

SoMFUInt32 SoMarker::orderedRGBA

Defines the marker coloration mask.

Definition at line 344 of file SoMarker.h.

◆ size

SoSFVec2s SoMarker::size

Defines the size (in pixels) of the marker.

Must be greater than 1x1

Definition at line 362 of file SoMarker.h.

◆ upToDown

SoSFBool SoMarker::upToDown

if TRUE, marker bitmap is described from down to up (that is bytes[0] is the left bottom corner of the bitmap), otherwise from up to down (that is bytes[0] is the top left corner).

Definition at line 351 of file SoMarker.h.


The documentation for this class was generated from the following file: