Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoLDMGlobalResourceParameters.h
Go to the documentation of this file.
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>
30
31
38typedef void SoLDMLoadCB( SbBool startLoading, void *userData );
39
46typedef void SoLDMMonitoringCB(SoDataSet *dataSet, double elapsedTime, double memLoaded, void *userData);
47
171{
172
173public:
175 // Memory Control Parameters section
176
186 static void setMaxMainMemory( int maxMainMemory );
187
192 static int getMaxMainMemory();
193
204 static void setMaxTexMemory( int maxTexMemory );
205
210 static int getMaxTexMemory();
211
228 static void setTex3LoadRate( int loadRate );
229
235 static int getTex3LoadRate();
236
250 static void setTex2LoadRate( int loadRate );
251
257 static int getTex2LoadRate();
258
273 static void setNumIO(unsigned int numIO);
274
279 static unsigned int getNumIO();
280
282 // VisualFeedback Parameters section
283
336
341
346
347
349 // Viewing Parameters section
350
357 static void setViewCulling( SbBool state, SbBool forceRedraw = TRUE );
358
364
376
382
391
397
405 static void setViewpointRefinement( SbBool state );
406
412
432 static void setSliceEqualResolution( SbBool state, SbBool forceRedraw = TRUE );
433
439
447 static void setLoadNotificationRate(int);
448
454
464 static void setLoadCB( SoLDMLoadCB *func, void *userData = NULL );
465
474 static void setMonitoringCB( SoLDMMonitoringCB *func, int memAmount, void *userData = NULL );
475
479 static inline int64_t getDefaultMaxTexMem() { return s_defaultMaxTexMemMB; }
480
484 static inline int64_t getDefaultMaxMainMem() { return s_defaultMaxMainMemMB; }
485
496 static void setMax2DTexMemory(uint64_t maxMemory);
497
502 static uint64_t getMax2DTexMemory();
503
504#if 1 SoDEPRECATED
511 static void setMoveLowResolution( SbBool state );
512SoDEPRECATED
519
520#endif
522private:
523
524 // These identifiers are binary fixed,
525 // do not changed enum value as it will break ART scenario
526 enum Cmd{
527 SET_VISUAL_FEEDBACK_PARAM = 0,
528 SET_MAX_MAIN_MEMORY = 1,
529 SET_MAX_TEX_MEMORY = 2,
530 SET_MAX_2D_TEXTURES = 3,
531 SET_MAX_NUM_TRIANGLES = 4, // no more supported
532 SET_TEX3_LOAD_RATE = 5,
533 SET_TEX2_LOAD_RATE = 6,
534 SET_NUMIO = 7,
535 SET_WRITE_ALTERNATE_REP = 8,
536 SET_READ_ALTERNATE_REP = 9,
537 SET_DELAYED_RENDERING = 10,
538 SET_VIEW_CULLING = 11,
539 SET_SCREEN_RESOLUTION_CULLING = 12,
540 SET_VIEWPOINT_REFINEMENT = 13,
541 SET_IGNORE_FULLY_TRANSPARENT_TILES = 14,
542 SET_SLICE_EQUAL_RES = 15,
543 SET_MOVE_LOW_RES = 16,
544 SET_LOAD_NOTIFICATION_RATE = 17
545 };
546
547 static void initClass();
548
552 static bool isDrawingOutlines();
553
554#if 1 SoDEPRECATED
558 static size_t getMaxTextureSizeBytes();
559
560#endif
562private:
563
564// ------------------------------------------------------------
565 // VisualFeedback Parameters
566 static SbBool s_drawTiles;
567 static SbBool s_drawSlicesTex;
568 static SbBool s_drawTopology;
569 static SbBool s_drawTileOutline;
570 static SbBool s_showTilesLoaded;
571 static SbBool s_showLoadUnloadTiles;
572 static SbBool s_useFakeData;
573 // ------------------------------------------------------------
574 // Viewing Parameters
575 static SbBool s_ignoreFullyTransparentTiles;
576 static SbBool s_viewCulling;
577 static SbBool s_screenResolutionCulling;
578 static SbBool s_viewpointRefinement;
579 static SbBool s_sliceEqualResolution;
580 static SbBool s_moveLowResolution;
581
582 static int64_t s_defaultMaxTexMemMB;
583 static int64_t s_defaultMaxMainMemMB;
584
585};
586#endif // _SO_LDM_GLOBAL_RESOURCE_PARAM_
587
588
#define TRUE
Possible value of SbBool.
Definition SbBase.h:77
void SoLDMLoadCB(SbBool startLoading, void *userData)
Loading callback for LDM mode.
void SoLDMMonitoringCB(SoDataSet *dataSet, double elapsedTime, double memLoaded, void *userData)
Monitoring callback for LDM mode.
<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.
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...
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