Open Inventor Release 2024.1.1
 
Loading...
Searching...
No Matches
SoGLRenderAction.h
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : Paul S. Strauss (MMM yyyy)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2024 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : VSG (MMM YYYY)
47**=======================================================================*/
48
49#ifndef _SO_GL_RENDER_ACTION_
50#define _SO_GL_RENDER_ACTION_
51
52#include <Inventor/SbViewportRegion.h>
53#include <Inventor/nodes/SoViewport.h>
54#include <Inventor/actions/SoSubAction.h>
55#include <Inventor/elements/SoShapeStyleElement.h>
56#include <Inventor/elements/SoDecimationTypeElement.h>
57#include <Inventor/lists/SoPathList.h>
58#include <Inventor/lists/SoSensorList.h>
59
60#ifdef _MSC_VER
61#pragma warning( push )
62#pragma warning(disable:4251)
63#endif
64
65class SbBox3f;
67class SoGLDepthPeeling;
68class SoCache;
69class SoCamera;
70class SoSeparator;
71class SoGLRenderActionSync;
72class SoGLRenderActionImpl;
73
74
82typedef void SoGLRenderPassCB(void *userData);
83
85//
86// Class: SoGLRenderAction
87//
88// GL rendering action.
89//
91
193
194 SO_ACTION_HEADER(SoGLRenderAction);
195
196 public:
197
232 {
233SoDEPRECATED
236
246
262
269
305
306 };
307
371
378
383
388
392 DELAY
393 };
394
400 typedef AbortCode SoGLRenderAbortCB(void *userData);
401
422
427 SoGLRenderAction(const SbViewportRegion &viewportRegion);
428
429#ifndef HIDDEN_FROM_DOC
430 // Destructor
431 virtual ~SoGLRenderAction();
432#endif // HIDDEN_FROM_DOC
433
437 void setViewportRegion(const SbViewportRegion &newRegion);
438
442 const SbViewportRegion &getViewportRegion() const { return vpRegion; }
443
448 void setLogicalViewportRegion(const SbViewportRegion &newLogicalRegion);
449
454
463 void setUpdateArea(const SbVec2f &origin, const SbVec2f &size);
464
468 void getUpdateArea(SbVec2f &origin, SbVec2f &size) const;
469
478 void setAbortCallback(SoGLRenderAbortCB *func, void *userData)
479 { abortCB = func; abortData = userData; }
480
515
521 { return m_transpType; }
522
532 void setFastEditSavePolicy(FastEditSavePolicy policy, SbBool fastEditDelayedObjects = FALSE);
533
538 { return m_fastEditPolicy; }
539SoDEPRECATED
550 void setSmoothing(SbBool smooth);
551SoDEPRECATED
556 SbBool isSmoothing() const { return doSmooth; }
557
573 void setNumPasses(int num);
574
578 int getNumPasses() const { return numPasses; }
579
584 void setPassUpdate(SbBool flag) { passUpdate = flag; }
585
593 SbBool isPassUpdate() const { return passUpdate; }
594
600 void setPassCallback(SoGLRenderPassCB *func, void *userData)
601 { passCB = func; passData = userData; }
602
611 void setCacheContext(uint32_t context);
612
616 uint32_t getCacheContext() const;
617
622 static uint32_t generateCacheContext();
623
627 static bool isUsedCacheContext( uint32_t context );
628
655 { m_sortedLayersNumPasses = num; }
656
657
664 { return m_sortedLayersNumPasses ; }
665
672
689 void setAlphaTest( SbBool flag );
690
695 { return m_alphaTest; }
696
697
712
716 virtual void invalidateState();
717
724 float percentage = 1.0);
725
730
735 float getDecimationPercentage() { return decPercent; };
736
753
758
766 uint32_t getFrameCounter() const { return m_frameCounter; }
767
772 void resetFrameCounter( uint32_t count = 0 ) { m_frameCounter = count; }
773
775 virtual void apply(SoNode* node);
776
778 virtual void apply(SoPath* path);
779
781 virtual void apply(const SoPathList& pathList, SbBool obeysRules = FALSE);
782
796
803
804private:
806 inline bool isDoingDepthPeeling() const { return m_isDoingDepthPeeling; }
807
811 int getDepthPeelingPass();
812
817 void enableDepthPeeling3D(bool flag) const;
818
819 SoGLDepthPeeling* getDepthPeelingInterface() const;
820
821 // Returns current rendering pass number
822 int getCurPass() const { return curPass; }
823
824 // Returns TRUE if render action should abort - checks user callback
825 SbBool abortNow()
826 { return (hasTerminated() || (abortCB != NULL && checkAbort())); }
827
828 // Returns TRUE if render action handles processing of a
829 // transparent object (if it is to be sorted and rendered later).
830 // If this returns FALSE, the object should just go ahead and
831 // render itself.
832 // The optional argument isTransparent ensures that the object being
833 // rendered will be taken as transparent, regardless of transparency
834 // in the state. If it is false, the state is checked for transparency.
835 virtual SbBool handleTransparency(SbBool isTransparent = FALSE, SbBool isLinesOrPoints = FALSE);
836
838 virtual void setUpState();
839
844 void setDelayedObjDepthWrite( SbBool flag ) { m_delayedObjDepthWrite = flag; }
845
850 SbBool getDelayedObjDepthWrite() const { return m_delayedObjDepthWrite; }
851
858 virtual bool preDelayedTraversal();
859
866 virtual void postDelayedTraversal();
867
873 void setCache( SoCache* cache );
874
876 SoCache* getCache() const;
877
878 private:
879 static void initClass();
880 static void exitClass();
881
883 inline bool isFloatingPointFramebuffer() const { return m_floatingPointFramebuffer; }
884 inline void setFloatingPointFramebuffer(bool flag) { m_floatingPointFramebuffer = flag; }
885
886 // Returns TRUE if rendering is being delayed because of transparency sorting or delaying
887 SbBool isDelaying() const { return delayObjs; }
888
889 // Returns true if the current state contains any transparency
890 bool stateContainsTransparency() const;
891
892 // Used in SoLocateHighlight in order to clear the transparent path cache
893 void removeAllDelayedPath();
894
895 bool isTraversalPassTransparent() const;
896
897 bool handleFastEdit(SoSeparator* sep);
898
899 int getCullTestResults() { return cullBits; }
900 void setCullTestResults(int b) { cullBits = b; }
901
902 SbBool isLogicalRegionSet() const;
903
904 void setTiledViewportRegion(const SbVec4f& region, int info = 0);
905
910 void setMaxDepthOffset(float maxDepthOffset);
911
912/* FAST EDIT METHODS*/
913 // set the buffer type.
914 void setDoubleBuffer(SbBool db);
915 // The main scene must be redrawn.
916 void setForceRender();
917 // Set viewing mode (from viewer).
918 void setViewing(SbBool viewing);
919 // Is there any delayed object to render ?
920 SbBool hasDelayedNodesToRender() const;
921 // initialize the start of a stereo pass.
922 void setFirstStereoPass(SbBool first);
923
924 SoPathList transpPaths; // Keep for compatibility. should be removed in OIV 9.2
925
926 void setRenderingFromOffscreen(SbBool renderFromOffscreen)
927 { m_renderingFromOffscreen = renderFromOffscreen; }
928
929 SbBool getRenderingFromOffscreen() const
930 { return m_renderingFromOffscreen; }
931
932 //Return true after an apply if there were transparent objects
933 //(used in SoLocateHighlight in order to redraw the whole scene only in this case)
934 SbBool hasDrawnTransparentObjs() const
935 { return m_hasDrawnTransparentObjs; }
936
937 // Set the fullscene antialiasing element
938 void setFullSceneAntialiasingElement( SbBool enable, int filterMask );
939
941 enum RenderMode {
945 ALL_OBJECTS,
949 OPAQUE_OBJECTS,
953 DELAYED_OBJECTS
954 };
955
956 //
957 // Allow to restrict which object will be render during the next ::render call.
958 // After the ::render call, this mode is reset to its default value.
959 // Note : this is used by ScaleViz Depth compositing to manage delayed object.
960 void setRestrictObjectRenderingMode( const RenderMode mode = ALL_OBJECTS )
961 { m_restrictObjectRendering = mode; };
962
963 int getRestrictObjectRenderingMode() const
964 { return m_restrictObjectRendering; };
965
966 SoGLRenderActionSync* getSynchronizer() const;
967 void setSynchronizer( SoGLRenderActionSync* );
968
969 virtual void updateParametersFrom( SoGLRenderAction* );
970 SoGLRenderPassCB* getPassCallback( void*& data )
971 {
972 data = passData;
973 return passCB;
974 }
975
976 SoGLRenderActionImpl* getImpl();
977
978 // Used to temporary change the depth peeling interface, used
979 // for depth only. Returns the value in use before the call.
980 SoGLDepthPeeling* setDepthPeelingInterface(SoGLDepthPeeling*);
981
982 bool isFastEditManipulating();
983
984 SoPathList delayedPaths; // Keep for compatibility. should be removed in OIV 9.2
985
991 bool isLazyEvaluating() const { return m_lazyEvaluating; }
992 void setLazyEvaluating(bool value) { m_lazyEvaluating = value; }
993
994 void copyParametersFrom( SoGLRenderAction* action );
995
996 SoViewport* getViewportNode() const
997 {
998 return m_viewport.ptr();
999 }
1000
1001 // These flags determine which things have to be sent to GL when
1002 // the action is applied. They indicate what's changed since the
1003 // last time the action was applied.
1004 enum flags {
1005 TRANSPARENCY_TYPE = 0x01,
1006 SMOOTHING = 0x02,
1007 ALPHA_TEST = 0x04,
1008 FASTEDIT_SAVE_POLICY = 0x08,
1009 SCENE_GRAPH = 0x10,
1010 ANTIALIASING = 0x20,
1011 ALL = 0x3F // Initial value
1012 };
1013
1014private:
1015 // Initiates action on graph
1016 virtual void beginTraversal(SoNode *node);
1017
1018SoINTERNAL private:
1019 // used internally to temporary change the fastEditPolicy without reseting any caches
1020 void setFastEditSavePolicyInternal(FastEditSavePolicy policy)
1021 { m_fastEditPolicy = policy; }
1022
1023 // used internally to temporary change the transparencyType without reseting any caches
1024 void setTransparencyTypeInternal(TransparencyType type)
1025 { m_transpType = type; }
1026
1027 uint32_t getWhatChanged() const
1028 {
1029 return whatChanged;
1030 }
1031
1032private:
1033
1035 template<typename ApplyType> void commonApply(ApplyType applyObject, SbBool obeysRules);
1036
1038 template<typename ApplyType> void applyTo(ApplyType applyObject, SbBool obeysRules);
1039
1040 SoGLRenderActionSync* m_synchronizer;
1041
1042 FastEditSavePolicy m_fastEditPolicy; // Transparency quality type
1043 TransparencyType m_transpType; // Transparency quality type
1044
1048 void removeInvalidPaths();
1049
1051 bool m_isDoingDepthPeeling;
1052
1053 SbBool m_hasDrawnTransparentObjs;
1054 SbBool m_isViewing;
1055 SoNode* m_appliedNode;
1056 SbBool m_isFirstApply;
1057 SbBool m_firstStereoPass;
1058 int m_lastStereoMode;
1059
1060 int m_useCacheOpt;
1061 int m_useCompactPaths;
1062
1063 SbViewportRegion vpRegion; // Current viewport region
1064
1065 // super viewport node that manage viewport, modify viewport and logical viewport
1066 SoRef<SoViewport> m_viewport;
1067
1071 SoRef<SoNode> m_maxDepthOffset;
1072
1073 SbVec2f updateOrigin; // Origin of update area
1074 SbVec2f updateSize; // Size of update area
1075
1076
1077 // Variables for render abort:
1078 SoGLRenderAbortCB *abortCB; // Callback to test abort
1079 void *abortData; // User data for abort callback
1080
1081 // Variables for transparency, smoothing, and multi-pass rendering:
1082 SbBool doSmooth; // Doing smoothing ?
1083 int numPasses; // Number of rendering passes
1084 int curPass; // Current pass
1085 SbBool passUpdate; // Whether to update after each pass
1086 SoGLRenderPassCB *passCB; // Callback between passes
1087 void *passData; // User data for pass callback
1088
1089 // For SORTED_OBJECT transparency:
1090 SbBool delayObjs; // TRUE if transp objects are to be delayed until after opaque ones
1091
1092 SbBool remoteRendering;// Remote rendering?
1093
1094 // BA 2/98 - added decimation variables
1095 SoDecimationTypeElement::Type decType; // Decimation type
1096 float decPercent; // Decimation percentage
1097
1098 uint32_t whatChanged;
1099
1100 // Enables or disables GL blending
1101 void enableBlending(SbBool enable);
1102
1103 // Enables or disables GL smoothing
1104 void enableSmoothing(SbBool enable);
1105
1106 // Returns TRUE if render action should abort based on callback
1107 SbBool checkAbort();
1108
1109 // Keep track of which planes we need to view-volume cull test
1110 // against:
1111 int cullBits;
1112
1113 SbBool m_delayedObjDepthWrite;
1114
1115 // Indicates if the next render is asked for Offscreen
1116 SbBool m_renderingFromOffscreen;
1117
1118 SbBool m_alphaTest;
1119
1120 // Count frames rendered with this action (for debugging)
1121 uint32_t m_frameCounter;
1122
1123 // indicate if action is currently called to evaluate lazy eval or for classical traversal.
1124 // See isLazyEvaluating() doc for details.
1125 bool m_lazyEvaluating;
1126
1127 //================== Begin sorted layers rendering ========================
1128
1129 int m_sortedLayersNumPasses ;
1130
1131 // Realizes a sorted layers rendering using depth peeling technics.
1132 void renderSortedLayers(SoNode *node) ;
1133 void initDepthPeeling(SoNode *node);
1134
1135 // Rendering callback for sorted layers rendering.
1136 static void renderSortedLayersCB(void *userData, SoGLDepthPeeling *mgr) ;
1137
1138 SoGLDepthPeeling *m_glDepthPeeling ;
1139
1140 static void cameraPostCB( SoCamera *camera, SoGLRenderAction* renderAction );
1141 bool m_ignoreCameraPostCB;
1142 //================== End Sorted layers rendering ========================
1143
1144
1145 InvalidateCacheMode m_invalidateAllCaches;
1146 RenderMode m_restrictObjectRendering;
1147
1148 bool m_floatingPointFramebuffer;
1149
1150 //================ FSAA element management ============================
1151 SbBool m_fsaaEnable;
1152 int m_fsaaFilterMask;
1153
1154 SoGLRenderActionImpl* m_impl;
1155};
1156
1157
1158// INLINE METHODS
1159inline SoGLRenderActionSync* SoGLRenderAction::getSynchronizer() const
1160{
1161 return m_synchronizer;
1162}
1163
1164inline SoGLRenderActionImpl* SoGLRenderAction::getImpl()
1165{
1166 return m_impl;
1167}
1168
1169#ifdef _MSC_VER
1170#pragma warning( pop )
1171#endif
1172#endif /* _SO_GL_RENDER_ACTION_ */
1173
3D box class.
Definition SbBox.h:649
2D vector class.
Definition SbVec.h:76
4D vector class.
Definition SbVec.h:2214
Class for representing a viewport.
Abstract base class for all actions.
Definition SoAction.h:132
SbBool hasTerminated() const
Returns TRUE if the traversal has reached a termination condition.
Definition SoAction.h:430
Abstract base class for camera nodes.
Definition SoCamera.h:188
Type
These are the available decimation types.
Renders a scene graph using Open Inventor's Render Engine.
AbortCode
Possible return codes from a render abort callback.
@ DELAY
Delay rendering of this node until the second pass.
@ ABORT
Stop traversing the rest of the graph.
@ PRUNE
Do not traverse this node or its children, but continue.
@ CONTINUE
Continue traversal as usual.
FastEditSavePolicy
Fast edit traversal types.
@ DISABLE
Fast editing is disabled.
@ WHEN_NEEDED
The fast edit feature is available.
@ EACH_FRAME
The fast edit feature is available.
float getDecimationPercentage()
Gets decimation percentage, the value should be a number between 0.0 and 1.0.
void setAlphaTest(SbBool flag)
Enable or disable the OpenGL alpha test for rendering.
int getSortedLayersNumPasses() const
Returns the number of rendering passes used when transparency type is SORTED_PIXEL.
void SoGLRenderPassCB(void *userData)
Callback functions used between rendering passes should be of this type.
AutoCacheMode
Two bits are stored.
InvalidateCacheMode
Invalidate cache mode.
@ OFF
(Default) Render caches are handled normally.
@ ONCE
Render caches are invalidated for each SoSeparator node before its children are traversed.
@ ALWAYS
Render caches are invalidated for each SoSeparator node before its children are traversed.
virtual void invalidateState()
Invalidate the state, forcing it to be recreated at the next apply.
const SbViewportRegion & getLogicalViewportRegion() const
Returns current logical viewport region.
static uint32_t generateCacheContext()
Generates and returns a new cache context id.
TransparencyType getTransparencyType() const
Returns transparency quality level to use when rendering.
virtual void apply(SoNode *node)
Initiates an action on the graph defined by a node.
SoDEPRECATED void setSmoothing(SbBool smooth)
Sets smoothing flag.
void setDecimationValue(SoDecimationTypeElement::Type type, float percentage=1.0)
Sets decimation percentage, the value should be a number between 0.0 and 1.0 Useful for reducing the ...
void setTransparencyType(TransparencyType type)
Sets global transparency algorithm to use when rendering.
SbBool isAlphaTest() const
Returns whether the OpenGL alpha test is enabled for rendering.
void setSortedLayersNumPasses(int num)
Sets the number of rendering passes used when transparency type is SORTED_PIXEL.
void setFastEditSavePolicy(FastEditSavePolicy policy, SbBool fastEditDelayedObjects=FALSE)
Sets fast editing save policy to use when rendering.
AbortCode SoGLRenderAbortCB(void *userData)
Callback functions for render abort should be of this type.
void setPassUpdate(SbBool flag)
Sets a flag indicating whether intermediate results are displayed after each antialiasing pass for pr...
void setAbortCallback(SoGLRenderAbortCB *func, void *userData)
Sets callback to call during rendering to test for an abort condition.
void setCacheContext(uint32_t context)
Sets the OpenGL cache context.
SoGLRenderAction(const SbViewportRegion &viewportRegion)
Constructor.
virtual void apply(const SoPathList &pathList, SbBool obeysRules=FALSE)
Initiates an action on the graph defined by a list of paths.
SoDEPRECATED SbBool isSmoothing() const
Returns smoothing flag.
void shouldAutoCache(AutoCacheMode mode)
Called by nodes to say that they should/shouldn't be auto-cached (pass TRUE if should,...
SbBool getRenderingIsRemote() const
Returns TRUE if remote rendering is being done.
void setLogicalViewportRegion(const SbViewportRegion &newLogicalRegion)
Sets current logical viewport region to use for rendering.
const SbViewportRegion & getViewportRegion() const
Returns viewport region to use for rendering.
void resetFrameCounter(uint32_t count=0)
Reset the frame counter.
TransparencyType
Transparency rendering algorithm.
@ OPAQUE_FIRST
Same as NO_SORT, but the rendering of opaque objects is performed before the rendering of semi-transp...
@ SORTED_PIXEL
Same as OPAQUE_FIRST, but uses a fragment-level depth sorting technique during the rendering of semi-...
@ NO_SORT
The simplest transparency mode.
@ SORTED_OBJECT
Same as OPAQUE_FIRST, but sorts semi-transparent objects by distances of bounding boxes from camera.
virtual void apply(SoPath *path)
Initiates an action on the graph defined by a path.
SoDecimationTypeElement::Type getDecimationType()
Gets decimation type.
uint32_t getCacheContext() const
Returns the OpenGL cache context id for this action.
uint32_t getFrameCounter() const
Returns the current frame counter.
void setPassCallback(SoGLRenderPassCB *func, void *userData)
Sets a callback function to invoke between passes when antialiasing.
static bool isUsedCacheContext(uint32_t context)
Returns TRUE if the specified cache context id is currently used by any SoGLRenderAction.
static SbBool isSortedLayersSupported(SoState *state=NULL)
Indicates if SORTED_PIXEL transparency is supported by your graphics board on the current context.
void setRenderingIsRemote(SbBool flag)
Sets whether or not "remote" rendering is done.
FastEditSavePolicy getFastEditSavePolicy() const
Returns fast editing save policy used when rendering.
SbBool isPassUpdate() const
Returns a flag indicating whether intermediate results are displayed after each antialiasing pass for...
InvalidateCacheMode getInvalidateCacheMode()
Returns the current cache invalidation mode.
void getUpdateArea(SbVec2f &origin, SbVec2f &size) const
Returns the current update area.
void setViewportRegion(const SbViewportRegion &newRegion)
Changes viewport region to use for rendering.
int getNumPasses() const
Gets number of rendering passes for multipass rendering.
void setNumPasses(int num)
Sets number of rendering passes for multipass antialiasing.
void setInvalidateCacheMode(InvalidateCacheMode icm)
Enables or disables the invalidation of render caches.
void setUpdateArea(const SbVec2f &origin, const SbVec2f &size)
Sets the current update area, which is the rectangular area of the viewport region that will actually...
Computes bounding box of a scene.
Abstract base class for all database nodes.
Definition SoNode.h:145
Path that points to a list of hierarchical nodes.
Definition SoPath.h:187
Maintains a list of pointers to paths.
Definition SoPathList.h:81
Smart pointer for any class inheriting SoRefCounter.
Definition SoRef.h:90
T * ptr() const
Cast to C pointer.
Definition SoRef.h:167
Group node that saves and restores traversal state.
Traversal state.
Definition SoState.h:74
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Viewport paramet...
Definition SoViewport.h:103
int SbBool
Boolean type.
Definition SbBase.h:87