Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoLDMGlobalResourceParameters.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-2024 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23#ifndef _SO_LDM_GLOBAL_RESOURCE_PARAM_
24#define _SO_LDM_GLOBAL_RESOURCE_PARAM_
25
26class SoLDMTileManager;
27
28#include <LDM/SoLDM.h>
29#include <Inventor/nodes/SoSubNode.h>
30
31
41typedef void SoLDMLoadCB( SbBool startLoading, void *userData );
42
52typedef void SoLDMMonitoringCB(SoDataSet *dataSet, double elapsedTime, double memLoaded, void *userData);
53
164{
165
166public:
168 // Memory Control Parameters section
169
179 static void setMaxMainMemory( int maxMainMemory );
180
185 static int getMaxMainMemory();
186
197 static void setMaxTexMemory( int maxTexMemory );
198
203 static int getMaxTexMemory();
204
221 static void setTex3LoadRate( int loadRate );
222
228 static int getTex3LoadRate();
229
243 static void setTex2LoadRate( int loadRate );
244
250 static int getTex2LoadRate();
251
266 static void setNumIO(unsigned int numIO);
267
272 static unsigned int getNumIO();
273
275 // VisualFeedback Parameters section
276
329
334
339
340
342 // Viewing Parameters section
343
350 static void setViewCulling( SbBool state, SbBool forceRedraw = TRUE );
351
357
369
375
384
390
398 static void setViewpointRefinement( SbBool state );
399
405
425 static void setSliceEqualResolution( SbBool state, SbBool forceRedraw = TRUE );
426
432
440 static void setLoadNotificationRate(int);
441
447
457 static void setLoadCB( SoLDMLoadCB *func, void *userData = NULL );
458
467 static void setMonitoringCB( SoLDMMonitoringCB *func, int memAmount, void *userData = NULL );
468
472 static inline int64_t getDefaultMaxTexMem() { return s_defaultMaxTexMemMB; }
473
477 static inline int64_t getDefaultMaxMainMem() { return s_defaultMaxMainMemMB; }
478
489 static void setMax2DTexMemory(uint64_t maxMemory);
490
495 static uint64_t getMax2DTexMemory();
496
497#if 1 SoDEPRECATED
504 static void setMoveLowResolution( SbBool state );
505SoDEPRECATED
512
513#endif
515private:
516
517 // These identifiers are binary fixed,
518 // do not changed enum value as it will break ART scenario
519 enum Cmd{
520 SET_VISUAL_FEEDBACK_PARAM = 0,
521 SET_MAX_MAIN_MEMORY = 1,
522 SET_MAX_TEX_MEMORY = 2,
523 SET_MAX_2D_TEXTURES = 3,
524 SET_MAX_NUM_TRIANGLES = 4, // no more supported
525 SET_TEX3_LOAD_RATE = 5,
526 SET_TEX2_LOAD_RATE = 6,
527 SET_NUMIO = 7,
528 SET_WRITE_ALTERNATE_REP = 8,
529 SET_READ_ALTERNATE_REP = 9,
530 SET_DELAYED_RENDERING = 10,
531 SET_VIEW_CULLING = 11,
532 SET_SCREEN_RESOLUTION_CULLING = 12,
533 SET_VIEWPOINT_REFINEMENT = 13,
534 SET_IGNORE_FULLY_TRANSPARENT_TILES = 14,
535 SET_SLICE_EQUAL_RES = 15,
536 SET_MOVE_LOW_RES = 16,
537 SET_LOAD_NOTIFICATION_RATE = 17
538 };
539
540 static void initClass();
541
545 static bool isDrawingOutlines();
546
547#if 1 SoDEPRECATED
551 static size_t getMaxTextureSizeBytes();
552
553#endif
555private:
556
557// ------------------------------------------------------------
558 // VisualFeedback Parameters
559 static SbBool s_drawTiles;
560 static SbBool s_drawSlicesTex;
561 static SbBool s_drawTopology;
562 static SbBool s_drawTileOutline;
563 static SbBool s_showTilesLoaded;
564 static SbBool s_showLoadUnloadTiles;
565 static SbBool s_useFakeData;
566 // ------------------------------------------------------------
567 // Viewing Parameters
568 static SbBool s_ignoreFullyTransparentTiles;
569 static SbBool s_viewCulling;
570 static SbBool s_screenResolutionCulling;
571 static SbBool s_viewpointRefinement;
572 static SbBool s_sliceEqualResolution;
573 static SbBool s_moveLowResolution;
574
575 static int64_t s_defaultMaxTexMemMB;
576 static int64_t s_defaultMaxMainMemMB;
577
578};
579#endif // _SO_LDM_GLOBAL_RESOURCE_PARAM_
580
581
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Data set...
Definition SoDataSet.h:139
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Global r...
static void setLoadCB(SoLDMLoadCB *func, void *userData=NULL)
Sets a callback to be called with the tile loading state.
static void setTex2LoadRate(int loadRate)
Sets the maximum number of 2D textures allowed to be downloaded into texture (GPU) memory per frame (...
static int getMaxTexMemory()
Returns the maximum texture memory in MB for all the VolumeViz data sets.
void SoLDMLoadCB(SbBool startLoading, void *userData)
Loading callback for LDM mode.
static int getLoadNotificationRate()
Returns the load notification rate.
static void setSliceEqualResolution(SbBool state, SbBool forceRedraw=TRUE)
Sets the slice equal resolution flag.
static SoDEPRECATED SbBool getMoveLowResolution()
Returns the move low resolution flag.
static SoDEPRECATED void setMoveLowResolution(SbBool state)
Sets the low resolution when moving flag.
static void setVisualFeedbackParam(VisualFeedbackParam param, SbBool state)
Sets the specified visual feedback parameter to true or false.
static void setScreenResolutionCulling(SbBool flag)
Sets the screen resolution culling flag.
static int getTex2LoadRate()
Returns the maximum number of 2D textures allowed to be loaded into texture memory per frame for all ...
static void setIgnoreFullyTransparentTiles(SbBool state)
Sets the IgnoreFullyTransparentTiles flag.
static void setTex3LoadRate(int loadRate)
Sets the maximum number of 3D textures allowed to be downloaded into texture (GPU) memory,...
static SbBool getScreenResolutionCulling()
Returns the screen resolution culling state.
static int64_t getDefaultMaxMainMem()
Returns the default maximum system (CPU) memory in MB.
static void setLoadNotificationRate(int)
Sets the load notification rate (number of tiles).
static SbBool getViewpointRefinement()
Returns the viewpoint refinement flag.
static uint64_t getMax2DTexMemory()
Get the maximum number of 2D textures allowed to be loaded.
@ DRAW_TILE_OUTLINE
Draw tile outlines for all primitives.
@ DRAW_TILES
Draw the tiles of SoVolumeRender or SoVolumeSkin primitives.
@ DRAW_SLICES_TEX
Use texturing for SoOrthoSlice, SoObliqueSlice, and SoVolumeGeometry primitives.
@ SHOW_TILES_VALUATED
Show tiles visited by the Tile Visitor.
@ USE_FAKE_DATA
Use fake data instead of the real data during loading into main memory.
@ SHOW_LOAD_UNLOAD_TILES
Show tiles loaded (in red) and unloaded (in blue) in texture memory.
@ DRAW_TOPOLOGY
Show tiles loaded in main memory.
static SbBool getIgnoreFullyTransparentTiles()
Returns the IgnoreFullyTransparentTiles flag.
static SbBool getViewCulling()
Returns the view culling flag.
static SbBool getVisualFeedbackParam(VisualFeedbackParam param)
Returns the state of the specified visual feedback parameter.
static void setMaxMainMemory(int maxMainMemory)
Sets the maximum main (CPU) memory, in MB, to use for all VolumeViz data sets.
static int getTex3LoadRate()
Returns the maximum number of tiles (3D textures) allowed to be downloaded into texture (GPU) memory ...
static void setMaxTexMemory(int maxTexMemory)
Sets the maximum texture (GPU) memory, in MB, for all VolumeViz data sets.
static SbBool getSliceEqualResolution()
Returns the slice equal resolution flag.
static void setViewpointRefinement(SbBool state)
Sets the viewpoint refinement flag.
static void setNumIO(unsigned int numIO)
Sets how many simultaneous tile loading threads to use if multi I/O mode is on (it is on when LDM mod...
void SoLDMMonitoringCB(SoDataSet *dataSet, double elapsedTime, double memLoaded, void *userData)
Monitoring callback for LDM mode.
static void setViewCulling(SbBool state, SbBool forceRedraw=TRUE)
Sets the view culling flag.
static unsigned int getNumIO()
Returns the current number of loading threads.
static void setMax2DTexMemory(uint64_t maxMemory)
Sets the maximum 2D texture GPU memory in MB allowed to be loaded for all VolumeViz data sets.
static int64_t getDefaultMaxTexMem()
Returns the default maximum GPU memory in MB.
static void setMonitoringCB(SoLDMMonitoringCB *func, int memAmount, void *userData=NULL)
Sets a monitoring callback .
static int getMaxMainMemory()
Returns the maximum main memory in MB for all the VolumeViz data sets.
int SbBool
Boolean type.
Definition SbBase.h:87