Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoIndexedMarkerSet.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2017 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : F. DELLA MAESTRA (Sep 2005)
22**=======================================================================*/
23
24 /* include files */
25#ifndef _SO_INDEXED_MARKER_SET_
26#define _SO_INDEXED_MARKER_SET_
27
28#include <Inventor/nodes/SoIndexedPointSet.h>
29#include <Inventor/nodes/SoMarkerSet.h>
30#include <Inventor/fields/SoMFInt32.h>
31#include <Inventor/nodes/SoPointSet.h>
32#include <Inventor/fields/SoSFFloat.h>
33#include <Inventor/fields/SoMFFloat.h>
34#include <Inventor/caches/SoCache.h>
35
36class SbThreadMutex;
37class SoMarker;
38class SoMarkerSizeCache;
39
40/*----------------------------------------------------------------------------*/
41
146 SO_NODE_HEADER(SoIndexedMarkerSet) ;
147
148 public:
158
171
181
186
209
230
251
272
293
314
335
356
377 };
378
383
399 static void addMarker( int markerIndex, const SbVec2s& size, const unsigned char* bytes,
400 SbBool isLSBFirst = TRUE, SbBool isUpToDown = TRUE );
401
419 static void addMarker( int markerIndex,
420 const SbVec2s& size,
421 const unsigned char* bytes,
422 const uint32_t* orderedRGBA,
423 SbBool isLSBFirst = TRUE,
424 SbBool isUpToDown = TRUE );
425
430 static void addMarker( int markerIndex, SoMarker* marker );
431
440 SbVec2s& size,
441 const unsigned char*& bytes,
442 SbBool& isLSBFirst );
443
453 SbVec2s& size,
454 const unsigned char* &bytes,
455 const uint32_t*& orderedRGBA,
456 SbBool& isLSBFirst );
457
463
469
470private:
471 // Generates markers representing marker set
472 virtual void generatePrimitives( SoAction* action );
473
474 // says that rendering is PointOrLine
475 virtual SbBool isRenderingPointsOrLines( SoGLRenderAction* action );
476
477 // Destructor.
478 virtual ~SoIndexedMarkerSet();
479
480private:
481 virtual void GLRender( SoGLRenderAction* action );
482 virtual void getPrimitiveCount( SoGetPrimitiveCountAction* action );
483
484 // Computes bounding box
485 virtual void computeBBox( SoAction* action, SbBox3f& box, SbVec3f& center );
486
487private:
488 static void initClass();
489 static void exitClass();
490
491 static SbBool isMarkerBitSet( int markerIndex, int bitNumber );
492
493 // manage notification
494 virtual void notify( SoNotList* list );
495};
496/*----------------------------------------------------------------------------*/
497
498inline SbBool
499SoIndexedMarkerSet::isRenderingPointsOrLines(SoGLRenderAction *)
500{
501 return TRUE;
502}
503
504#endif /* _SO_INDEXED_MARKER_SET_ */
505
506
3D box class.
Definition SbBox.h:649
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Portable mutex c...
2D vector class.
Definition SbVec.h:700
3D vector class.
Definition SbVec.h:932
Abstract base class for all actions.
Definition SoAction.h:132
Renders a scene graph using Open Inventor's Render Engine.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Counts number of...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Extension of Ind...
@ SHIP_LINE_5_5
Ship line 5x5.
@ LIGHTNING_9_9
Lightning 9x9.
@ PINE_TREE_FILLED_7_7
Pine filled 7x7.
@ SHIP_LINE_7_7
Ship line 7x7.
@ CAUTION_LINE_5_5
Caution line 5x5.
@ SHIP_LINE_9_9
Ship line 9x9.
@ CAUTION_FILLED_5_5
Caution filled 5x5.
@ HOURGLASS_FILLED_5_5
Hourglass filled 5x5.
@ HOURGLASS_FILLED_9_9
Hourglass filled 9x9.
@ CIRCLE_FILLED_9_9
Circle filled 9x9.
@ HOURGLASS_FILLED_7_7
Hourglass filled 7x7.
@ CIRCLE_LINE_5_5
Circle line 5x5.
@ CAUTION_FILLED_9_9
Caution filled 9x9.
@ CIRCLE_FILLED_5_5
Circle filled 5x5.
@ RHOMBUS_LINE_9_9
Rhombus line 9x9.
@ CIRCLE_LINE_9_9
Circle line 9x9.
@ SQUARE_LINE_7_7
Square line 7x7.
@ SQUARE_FILLED_5_5
Square filled 5x5.
@ CAUTION_FILLED_7_7
Caution filled 7x7.
@ TRIANGLE_FILLED_9_9
Triangle filled 9x9.
@ SQUARE_LINE_9_9
Square line 9x9.
@ SQUARE_FILLED_9_9
Square filled 9x9.
@ BACKSLASH_5_5
Backslash 5x5.
@ SATELLITE_FILLED_5_5
Satellite filled 5x5.
@ SQUARE_FILLED_7_7
Square filled 7x7.
@ CIRCLE_LINE_7_7
Circle line 7x7.
@ BACKSLASH_7_7
Backslash 7x7.
@ SATELLITE_FILLED_7_7
Satellite filled 7x7.
@ SQUARE_LINE_5_5
Square line 5x5.
@ TRIANGLE_LINE_5_5
Triangle line 5x5.
@ HOURGLASS_LINE_9_9
Hourglass line 9x9.
@ DIAMOND_FILLED_5_5
Diamond filled 5x5.
@ PINE_TREE_FILLED_5_5
Pine filled 5x5.
@ DIAMOND_FILLED_7_7
Diamond filled 7x7.
@ PINE_TREE_LINE_7_7
Pine line 7x7.
@ CAUTION_LINE_9_9
Caution line 9x9.
@ SATELLITE_LINE_7_7
Satellite line 7x7.
@ TRIANGLE_FILLED_5_5
Triangle filled 5x5.
@ PINE_TREE_LINE_5_5
Pine line 5x5.
@ LIGHTNING_7_7
Lightning 7x7.
@ BACKSLASH_9_9
Backslash 9x9.
@ HOURGLASS_LINE_5_5
Hourglass line 5x5.
@ SHIP_FILLED_7_7
Ship filled 7x7.
@ SHIP_FILLED_9_9
Ship filled 9x9.
@ PINE_TREE_FILLED_9_9
Pine filled 9x9.
@ RHOMBUS_FILLED_9_9
Rhombus filled 9x9.
@ RHOMBUS_FILLED_5_5
Rhombus filled 5x5.
@ TRIANGLE_LINE_7_7
Triangle line 7x7.
@ SATELLITE_FILLED_9_9
Satellite filled 9x9.
@ TRIANGLE_FILLED_7_7
Triangle filled 7x7.
@ RHOMBUS_FILLED_7_7
Rhombus filled 7x7.
@ PINE_TREE_LINE_9_9
Pine line 9x9.
@ TRIANGLE_LINE_9_9
Triangle line 9x9.
@ RHOMBUS_LINE_5_5
Rhombus line 5x5.
@ DIAMOND_LINE_5_5
Diamond line 5x5.
@ LIGHTNING_5_5
Lightning 5x5.
@ HOURGLASS_LINE_7_7
Hourglass line 7x7.
@ DIAMOND_LINE_7_7
Diamond line 7x7.
@ SATELLITE_LINE_5_5
Satellite line 5x5.
@ SHIP_FILLED_5_5
Ship filled 5x5.
@ DIAMOND_LINE_9_9
Diamond line 9x9.
@ CIRCLE_FILLED_7_7
Circle filled 7x7.
@ DIAMOND_FILLED_9_9
Diamond filled 9x9.
@ CAUTION_LINE_7_7
Caution line 7x7.
@ RHOMBUS_LINE_7_7
Rhombus line 7x7.
@ SATELLITE_LINE_9_9
Satellite line 9x9.
static void addMarker(int markerIndex, const SbVec2s &size, const unsigned char *bytes, SbBool isLSBFirst=TRUE, SbBool isUpToDown=TRUE)
Add a new marker with index markerIndex .
static int getNumDefinedMarkers()
Return the number of defined markers.
static void addMarker(int markerIndex, const SbVec2s &size, const unsigned char *bytes, const uint32_t *orderedRGBA, SbBool isLSBFirst=TRUE, SbBool isUpToDown=TRUE)
Add a new colored marker with index markerIndex .
SoMFFloat markerScale
Specifies the scale factor applied to each marker.
static void addMarker(int markerIndex, SoMarker *marker)
Add a new marker with index markerIndex using an existing marker definition.
SoSFFloat markerGlobalScale
Specifies a global scale factor applied to all markers.
static SoMarker * getMarker(int markerIndex)
Retrieve the definition of the marker with index markerIndex .
static SbBool removeMarker(int markerIndex)
Remove the marker with index markerIndex .
static SbBool getMarker(int markerIndex, SbVec2s &size, const unsigned char *&bytes, const uint32_t *&orderedRGBA, SbBool &isLSBFirst)
Retrieve the description of the colored marker with index markerIndex .
SoIndexedMarkerSet()
Constructor.
static SbBool getMarker(int markerIndex, SbVec2s &size, const unsigned char *&bytes, SbBool &isLSBFirst)
Retrieve the description of the marker with index markerIndex .
SoMFInt32 markerIndex
Specifies the marker index (type of marker) for each marker.
Indexed point set shape node.
Multiple-value field containing any number of floating point values.
Definition SoMFFloat.h:90
Multiple-value field containing any number of int32_t integers.
Definition SoMFInt32.h:88
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Defines a custom...
Definition SoMarker.h:130
Field containing a floating-point value.
Definition SoSFFloat.h:78
int SbBool
Boolean type.
Definition SbBase.h:87