public class SoIndexedMarkerSet extends SoIndexedPointSet
vertexProperty
field (from SoVertexShape
) or the current inherited 3D coordinates. For best performance, the vertexProperty
field is recommended. The coordinate of each marker is specified by the coordIndex
field which indexes into the list of coordinates. The number of markers is the number of values in the coordIndex field.
You specify the marker to be drawn at each point using the field markerIndex
, which indexes into the global list of marker definitions. There is a set of pre-defined markers already in the global list. You can add your own marker definitions to this list using the addMarker
functions. Marker definitions in the global list can be used by any SoMarkerSet
or SoIndexedMarkerSet
node. You can specify fewer index values than the number of markers to be drawn (the number of coordinates). In this case the node will cycle through the provided index values as many times as necessary. If all the markers in the set will use the same definition it is only necessary to set the first value in markerIndex.
You can specify a scale factor (> 0) for each marker using the field markerScale
. You can specify fewer scale values than the number of markers to be drawn, but in this case the "missing" values are assumed to be 1. You can also specify a scale factor to be applied to every marker in the set using the field markerGlobalScale
. This scale factor is applied in addition to the individual scale factor (if any).
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 is assigned an RGBA value.
The coordinates of the markers are transformed by the current cumulative transformation.
Lighting is not applied to markers (i.e., they are rendered with light model BASE_COLOR) unless the application explicitly sets normal vectors using SoVertexProperty
or SoNormal
.
Automatic simplification (by skipping points) is controlled by the SoComplexity
field
value. Only values < 0.25 have any effect.
Note that custom markers defined with addMarker are not automatically saved in the Open Inventor file when an SoWriteAction
is applied to the scene graph (and therefore are not defined if the scene graph is reloaded). To save marker definitions in an Open Inventor file use the SoMarker
node.
Depending on the current material and normal binding values, the materials and normals for the vertices may be accessed in order or indexed. If they are indexed, the materialIndex and normalIndex fields are used. Treatment of the current material and normal binding is as follows: PER_PART, PER_FACE, and PER_VERTEX bindings bind one material or normal to each point. The default material binding is OVERALL. The default normal binding is PER_VERTEX.
Limitations:
SoIndexedMarkerSet
does not cast or receive shadows (see SoShadowGroup
).
Shape Antialiasing type is SoShape.POINTS
.
The following markers are defined by default:
File format/default:
IndexedMarkerSet {
markerIndex | 0 |
markerScale | 1 |
markerGlobalScale | 1 |
vertexProperty | NULL |
coordIndex | 0 |
materialIndex | -1 |
normalIndex | -1 |
Action behavior:
SoGLRenderAction
Draws bitmaps based on the current coordinates.
SoGetPrimitiveCountAction
Increments the image count by 1 for each marker in the marker set.
See also:
SoCoordinate3
, SoFullSceneAntialiasing
, SoIndexedPointSet
, SoMarkerSet
, SoVertexProperty
Modifier and Type | Class and Description |
---|---|
static class |
SoIndexedMarkerSet.MarkerTypes
Marker type.
|
SoShape.ShapeTypes
Inventor.ConstructorCommand
coordIndex, materialIndex, normalIndex, textureCoordIndex
vertexProperty
boundingBoxIgnoring, LINES, POINTS, POLYGONS, TEXT
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoIndexedMarkerSet()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
static void |
addMarker(int markerIndex,
SbVec2s size,
byte[] bytes)
Calls addMarker(markerIndex, size, bytes, true, true).
|
static void |
addMarker(int markerIndex,
SbVec2s size,
byte[] bytes,
boolean isLSBFirst)
Calls addMarker(markerIndex, size, bytes, isLSBFirst, true).
|
static void |
addMarker(int markerIndex,
SbVec2s size,
byte[] bytes,
boolean isLSBFirst,
boolean isUpToDown)
Add a new marker with index markerIndex .
|
static void |
addMarker(int markerIndex,
SbVec2s size,
byte[] bytes,
int[] orderedRGBA)
Calls addMarker(markerIndex, size, bytes, orderedRGBA, true, true).
|
static void |
addMarker(int markerIndex,
SbVec2s size,
byte[] bytes,
int[] orderedRGBA,
boolean isLSBFirst)
Calls addMarker(markerIndex, size, bytes, orderedRGBA, isLSBFirst, true).
|
static void |
addMarker(int markerIndex,
SbVec2s size,
byte[] bytes,
int[] orderedRGBA,
boolean isLSBFirst,
boolean isUpToDown)
Add a new colored marker with index markerIndex .
|
static void |
addMarker(int markerIndex,
SoMarker marker)
Add a new marker with index markerIndex using an existing marker definition.
|
static SoMarker |
getMarker(int markerIndex)
Retrieve the definition of the marker with index markerIndex .
|
static int |
getNumDefinedMarkers()
Return the number of defined markers.
|
static boolean |
removeMarker(int markerIndex)
Remove the marker with index markerIndex .
|
getNormalCache
getShapeType, isPrimitiveRestartAvailable, isPrimitiveRestartAvailable
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizable
getAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads
@Deprecated public static final int CROSS_5_5
SoIndexedMarkerSet.MarkerTypes.CROSS_5_5
instead.@Deprecated public static final int PLUS_5_5
SoIndexedMarkerSet.MarkerTypes.PLUS_5_5
instead.@Deprecated public static final int MINUS_5_5
SoIndexedMarkerSet.MarkerTypes.MINUS_5_5
instead.@Deprecated public static final int SLASH_5_5
SoIndexedMarkerSet.MarkerTypes.SLASH_5_5
instead.@Deprecated public static final int BACKSLASH_5_5
SoIndexedMarkerSet.MarkerTypes.BACKSLASH_5_5
instead.@Deprecated public static final int BAR_5_5
SoIndexedMarkerSet.MarkerTypes.BAR_5_5
instead.@Deprecated public static final int STAR_5_5
SoIndexedMarkerSet.MarkerTypes.STAR_5_5
instead.@Deprecated public static final int Y_5_5
SoIndexedMarkerSet.MarkerTypes.Y_5_5
instead.@Deprecated public static final int LIGHTNING_5_5
SoIndexedMarkerSet.MarkerTypes.LIGHTNING_5_5
instead.@Deprecated public static final int WELL_5_5
SoIndexedMarkerSet.MarkerTypes.WELL_5_5
instead.@Deprecated public static final int CIRCLE_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.CIRCLE_LINE_5_5
instead.@Deprecated public static final int SQUARE_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.SQUARE_LINE_5_5
instead.@Deprecated public static final int DIAMOND_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.DIAMOND_LINE_5_5
instead.@Deprecated public static final int TRIANGLE_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.TRIANGLE_LINE_5_5
instead.@Deprecated public static final int RHOMBUS_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.RHOMBUS_LINE_5_5
instead.@Deprecated public static final int HOURGLASS_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.HOURGLASS_LINE_5_5
instead.@Deprecated public static final int SATELLITE_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.SATELLITE_LINE_5_5
instead.@Deprecated public static final int PINE_TREE_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.PINE_TREE_LINE_5_5
instead.@Deprecated public static final int CAUTION_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.CAUTION_LINE_5_5
instead.@Deprecated public static final int SHIP_LINE_5_5
SoIndexedMarkerSet.MarkerTypes.SHIP_LINE_5_5
instead.@Deprecated public static final int CIRCLE_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.CIRCLE_FILLED_5_5
instead.@Deprecated public static final int SQUARE_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.SQUARE_FILLED_5_5
instead.@Deprecated public static final int DIAMOND_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.DIAMOND_FILLED_5_5
instead.@Deprecated public static final int TRIANGLE_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.TRIANGLE_FILLED_5_5
instead.@Deprecated public static final int RHOMBUS_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.RHOMBUS_FILLED_5_5
instead.@Deprecated public static final int HOURGLASS_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.HOURGLASS_FILLED_5_5
instead.@Deprecated public static final int SATELLITE_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.SATELLITE_FILLED_5_5
instead.@Deprecated public static final int PINE_TREE_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.PINE_TREE_FILLED_5_5
instead.@Deprecated public static final int CAUTION_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.CAUTION_FILLED_5_5
instead.@Deprecated public static final int SHIP_FILLED_5_5
SoIndexedMarkerSet.MarkerTypes.SHIP_FILLED_5_5
instead.@Deprecated public static final int CROSS_7_7
SoIndexedMarkerSet.MarkerTypes.CROSS_7_7
instead.@Deprecated public static final int PLUS_7_7
SoIndexedMarkerSet.MarkerTypes.PLUS_7_7
instead.@Deprecated public static final int MINUS_7_7
SoIndexedMarkerSet.MarkerTypes.MINUS_7_7
instead.@Deprecated public static final int SLASH_7_7
SoIndexedMarkerSet.MarkerTypes.SLASH_7_7
instead.@Deprecated public static final int BACKSLASH_7_7
SoIndexedMarkerSet.MarkerTypes.BACKSLASH_7_7
instead.@Deprecated public static final int BAR_7_7
SoIndexedMarkerSet.MarkerTypes.BAR_7_7
instead.@Deprecated public static final int STAR_7_7
SoIndexedMarkerSet.MarkerTypes.STAR_7_7
instead.@Deprecated public static final int Y_7_7
SoIndexedMarkerSet.MarkerTypes.Y_7_7
instead.@Deprecated public static final int LIGHTNING_7_7
SoIndexedMarkerSet.MarkerTypes.LIGHTNING_7_7
instead.@Deprecated public static final int WELL_7_7
SoIndexedMarkerSet.MarkerTypes.WELL_7_7
instead.@Deprecated public static final int CIRCLE_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.CIRCLE_LINE_7_7
instead.@Deprecated public static final int SQUARE_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.SQUARE_LINE_7_7
instead.@Deprecated public static final int DIAMOND_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.DIAMOND_LINE_7_7
instead.@Deprecated public static final int TRIANGLE_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.TRIANGLE_LINE_7_7
instead.@Deprecated public static final int RHOMBUS_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.RHOMBUS_LINE_7_7
instead.@Deprecated public static final int HOURGLASS_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.HOURGLASS_LINE_7_7
instead.@Deprecated public static final int SATELLITE_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.SATELLITE_LINE_7_7
instead.@Deprecated public static final int PINE_TREE_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.PINE_TREE_LINE_7_7
instead.@Deprecated public static final int CAUTION_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.CAUTION_LINE_7_7
instead.@Deprecated public static final int SHIP_LINE_7_7
SoIndexedMarkerSet.MarkerTypes.SHIP_LINE_7_7
instead.@Deprecated public static final int CIRCLE_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.CIRCLE_FILLED_7_7
instead.@Deprecated public static final int SQUARE_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.SQUARE_FILLED_7_7
instead.@Deprecated public static final int DIAMOND_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.DIAMOND_FILLED_7_7
instead.@Deprecated public static final int TRIANGLE_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.TRIANGLE_FILLED_7_7
instead.@Deprecated public static final int RHOMBUS_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.RHOMBUS_FILLED_7_7
instead.@Deprecated public static final int HOURGLASS_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.HOURGLASS_FILLED_7_7
instead.@Deprecated public static final int SATELLITE_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.SATELLITE_FILLED_7_7
instead.@Deprecated public static final int PINE_TREE_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.PINE_TREE_FILLED_7_7
instead.@Deprecated public static final int CAUTION_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.CAUTION_FILLED_7_7
instead.@Deprecated public static final int SHIP_FILLED_7_7
SoIndexedMarkerSet.MarkerTypes.SHIP_FILLED_7_7
instead.@Deprecated public static final int CROSS_9_9
SoIndexedMarkerSet.MarkerTypes.CROSS_9_9
instead.@Deprecated public static final int PLUS_9_9
SoIndexedMarkerSet.MarkerTypes.PLUS_9_9
instead.@Deprecated public static final int MINUS_9_9
SoIndexedMarkerSet.MarkerTypes.MINUS_9_9
instead.@Deprecated public static final int SLASH_9_9
SoIndexedMarkerSet.MarkerTypes.SLASH_9_9
instead.@Deprecated public static final int BACKSLASH_9_9
SoIndexedMarkerSet.MarkerTypes.BACKSLASH_9_9
instead.@Deprecated public static final int BAR_9_9
SoIndexedMarkerSet.MarkerTypes.BAR_9_9
instead.@Deprecated public static final int STAR_9_9
SoIndexedMarkerSet.MarkerTypes.STAR_9_9
instead.@Deprecated public static final int Y_9_9
SoIndexedMarkerSet.MarkerTypes.Y_9_9
instead.@Deprecated public static final int LIGHTNING_9_9
SoIndexedMarkerSet.MarkerTypes.LIGHTNING_9_9
instead.@Deprecated public static final int WELL_9_9
SoIndexedMarkerSet.MarkerTypes.WELL_9_9
instead.@Deprecated public static final int CIRCLE_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.CIRCLE_LINE_9_9
instead.@Deprecated public static final int SQUARE_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.SQUARE_LINE_9_9
instead.@Deprecated public static final int DIAMOND_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.DIAMOND_LINE_9_9
instead.@Deprecated public static final int TRIANGLE_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.TRIANGLE_LINE_9_9
instead.@Deprecated public static final int RHOMBUS_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.RHOMBUS_LINE_9_9
instead.@Deprecated public static final int HOURGLASS_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.HOURGLASS_LINE_9_9
instead.@Deprecated public static final int SATELLITE_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.SATELLITE_LINE_9_9
instead.@Deprecated public static final int PINE_TREE_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.PINE_TREE_LINE_9_9
instead.@Deprecated public static final int CAUTION_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.CAUTION_LINE_9_9
instead.@Deprecated public static final int SHIP_LINE_9_9
SoIndexedMarkerSet.MarkerTypes.SHIP_LINE_9_9
instead.@Deprecated public static final int CIRCLE_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.CIRCLE_FILLED_9_9
instead.@Deprecated public static final int SQUARE_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.SQUARE_FILLED_9_9
instead.@Deprecated public static final int DIAMOND_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.DIAMOND_FILLED_9_9
instead.@Deprecated public static final int TRIANGLE_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.TRIANGLE_FILLED_9_9
instead.@Deprecated public static final int RHOMBUS_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.RHOMBUS_FILLED_9_9
instead.@Deprecated public static final int HOURGLASS_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.HOURGLASS_FILLED_9_9
instead.@Deprecated public static final int SATELLITE_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.SATELLITE_FILLED_9_9
instead.@Deprecated public static final int PINE_TREE_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.PINE_TREE_FILLED_9_9
instead.@Deprecated public static final int CAUTION_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.CAUTION_FILLED_9_9
instead.@Deprecated public static final int SHIP_FILLED_9_9
SoIndexedMarkerSet.MarkerTypes.SHIP_FILLED_9_9
instead.public final SoMFInt32 markerIndex
MarkerType
. You can specify fewer index values than the number of markers to be drawn (the number of coordinates). In this case the node will cycle through the provided index values as many times as necessary. For example, if all the markers in the set will use the same definition it is only necessary to set the first value in markerIndex.public final SoMFFloat markerScale
markerGlobalScale
.
Supported only when using shader implementation.
public final SoSFFloat markerGlobalScale
Supported only when using shader implementation.
public static void addMarker(int markerIndex, SbVec2s size, byte[] bytes)
public static void addMarker(int markerIndex, SbVec2s size, byte[] bytes, boolean isLSBFirst)
public static void addMarker(int markerIndex, SbVec2s size, byte[] bytes, int[] orderedRGBA, boolean isLSBFirst)
public static void addMarker(int markerIndex, SbVec2s size, byte[] bytes, int[] orderedRGBA)
public static int getNumDefinedMarkers()
public static SoMarker getMarker(int markerIndex)
public static boolean removeMarker(int markerIndex)
public static void addMarker(int markerIndex, SbVec2s size, byte[] bytes, boolean isLSBFirst, boolean isUpToDown)
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.
isUpToDown : If true, marker bitmap is described from top to bottom (bytes[0] is the left top corner of the bitmap), otherwise from bottom to top (bytes[0] is the bottom left corner).
public static void addMarker(int markerIndex, SbVec2s size, byte[] bytes, int[] orderedRGBA, boolean isLSBFirst, boolean isUpToDown)
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. 8 isUpToDown : If true, marker bitmap and color array are described from top to bottom (bytes[0] is the left top corner of the bitmap), otherwise from bottom to top (bytes[0] is the bottom left corner).
public static void addMarker(int markerIndex, SoMarker marker)
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com