Coin Logo http://www.sim.no/
http://www.coin3d.org/

SoGLRenderAction.h
1#ifndef COIN_SOGLRENDERACTION_H
2#define COIN_SOGLRENDERACTION_H
3
4/**************************************************************************\
5 *
6 * This file is part of the Coin 3D visualization library.
7 * Copyright (C) by Kongsberg Oil & Gas Technologies.
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * ("GPL") version 2 as published by the Free Software Foundation.
12 * See the file LICENSE.GPL at the root directory of this source
13 * distribution for additional information about the GNU GPL.
14 *
15 * For using Coin with software that can not be combined with the GNU
16 * GPL, and for taking advantage of the additional benefits of our
17 * support services, please contact Kongsberg Oil & Gas Technologies
18 * about acquiring a Coin Professional Edition License.
19 *
20 * See http://www.coin3d.org/ for more information.
21 *
22 * Kongsberg Oil & Gas Technologies, Bygdoy Alle 5, 0257 Oslo, NORWAY.
23 * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
24 *
25\**************************************************************************/
26
27#include <Inventor/actions/SoAction.h>
28#include <Inventor/actions/SoSubAction.h>
29#include <Inventor/SbBasic.h>
30#include <Inventor/SbViewportRegion.h>
31#include <Inventor/system/inttypes.h>
32#include <Inventor/lists/SoPathList.h>
33#include <Inventor/lists/SbList.h>
34
35typedef void SoGLRenderPassCB(void * userdata);
36typedef void SoGLPreRenderCB(void * userdata, class SoGLRenderAction * action);
37typedef float SoGLSortedObjectOrderCB(void * userdata, SoGLRenderAction * action);
38
39class SoGLRenderActionP;
40
41class COIN_DLL_API SoGLRenderAction : public SoAction {
42 typedef SoAction inherited;
43
44 SO_ACTION_HEADER(SoGLRenderAction);
45
46public:
47 static void initClass(void);
48
49 SoGLRenderAction(const SbViewportRegion & viewportregion);
50 virtual ~SoGLRenderAction(void);
51
61
66
70
77
78 typedef AbortCode SoGLRenderAbortCB(void * userdata);
79
80 void setViewportRegion(const SbViewportRegion & newregion);
81 const SbViewportRegion & getViewportRegion(void) const;
82 void setUpdateArea(const SbVec2f & origin, const SbVec2f & size);
83 void getUpdateArea(SbVec2f & origin, SbVec2f & size) const;
84 void setAbortCallback(SoGLRenderAbortCB * const func, void * const userdata);
85 void getAbortCallback(SoGLRenderAbortCB * & func_out, void * & userdata_out) const;
90 void setSmoothing(const SbBool smooth);
91 SbBool isSmoothing(void) const;
92 void setNumPasses(const int num);
93 int getNumPasses(void) const;
94 void setPassUpdate(const SbBool flag);
95 SbBool isPassUpdate(void) const;
96 void setPassCallback(SoGLRenderPassCB * const func, void * const userdata);
97 void setCacheContext(const uint32_t context);
98 uint32_t getCacheContext(void) const;
99
100 void addDelayedPath(SoPath * path);
101 SbBool isRenderingDelayedPaths(void) const;
102
103 SbBool handleTransparency(SbBool istransparent = FALSE);
104 void setCurPass(const int passnum, const int numpasses);
105 int getCurPass(void) const;
106 SbBool abortNow(void);
107
108 void setRenderingIsRemote(SbBool isremote);
109 SbBool getRenderingIsRemote(void) const;
110
111 virtual void invalidateState(void);
112
113 void addPreRenderCallback(SoGLPreRenderCB * func, void * userdata);
114 void removePreRenderCallback(SoGLPreRenderCB * func, void * userdata);
115
116 void setSortedLayersNumPasses(int num);
117 int getSortedLayersNumPasses(void) const;
118
120 SoGLSortedObjectOrderCB * cb = NULL,
121 void * closure = NULL);
122
123 void setDelayedObjDepthWrite(SbBool write);
124 SbBool getDelayedObjDepthWrite(void) const;
125
126 SbBool isRenderingTranspPaths(void) const;
127 SbBool isRenderingTranspBackfaces(void) const;
128
129protected:
130 friend class SoGLRenderActionP; // calls beginTraversal
131 virtual void beginTraversal(SoNode * node);
132 virtual void endTraversal(SoNode * node);
133
134private:
135 SbPimplPtr<SoGLRenderActionP> pimpl;
136
138 SoGLRenderAction & operator = (const SoGLRenderAction & rhs);
139
140}; // SoGLRenderAction
141
142#endif // !COIN_SOGLRENDERACTION_H
The SbVec2f class is a 2 dimensional vector with floating point coordinates.
Definition SbVec2f.h:39
The SbViewportRegion class is a viewport within a full window.
Definition SbViewportRegion.h:31
virtual void invalidateState(void)
Definition SoAction.cpp:815
static void initClass(void)
Definition SoAction.cpp:366
SoAction(void)
Definition SoAction.cpp:333
virtual void beginTraversal(SoNode *node)
Definition SoAction.cpp:1263
virtual void endTraversal(SoNode *node)
Definition SoAction.cpp:1273
The SoGLRenderAction class renders the scene graph with OpenGL calls.
Definition SoGLRenderAction.h:41
void addDelayedPath(SoPath *path)
Definition SoGLRenderAction.cpp:1425
AbortCode
Definition SoGLRenderAction.h:67
@ DELAY
Definition SoGLRenderAction.h:68
@ ABORT
Definition SoGLRenderAction.h:68
@ PRUNE
Definition SoGLRenderAction.h:68
@ CONTINUE
Definition SoGLRenderAction.h:68
void setPassCallback(SoGLRenderPassCB *const func, void *const userdata)
Definition SoGLRenderAction.cpp:951
void setPassUpdate(const SbBool flag)
Definition SoGLRenderAction.cpp:930
void setCurPass(const int passnum, const int numpasses)
Definition SoGLRenderAction.cpp:1308
AbortCode SoGLRenderAbortCB(void *userdata)
Definition SoGLRenderAction.h:78
SoGLRenderAction(const SbViewportRegion &viewportregion)
Definition SoGLRenderAction.cpp:688
SbBool getDelayedObjDepthWrite(void) const
Definition SoGLRenderAction.cpp:1971
SbBool abortNow(void)
Definition SoGLRenderAction.cpp:1332
SbBool isPassUpdate(void) const
Definition SoGLRenderAction.cpp:941
void setSmoothing(const SbBool smooth)
Definition SoGLRenderAction.cpp:888
const SbViewportRegion & getViewportRegion(void) const
Definition SoGLRenderAction.cpp:756
void setTransparentDelayedObjectRenderType(TransparentDelayedObjectRenderType type)
Definition SoGLRenderAction.cpp:2007
void addPreRenderCallback(SoGLPreRenderCB *func, void *userdata)
Definition SoGLRenderAction.cpp:1517
void setTransparencyType(const TransparencyType type)
Definition SoGLRenderAction.cpp:852
int getSortedLayersNumPasses(void) const
Definition SoGLRenderAction.cpp:1007
SbBool isRenderingDelayedPaths(void) const
Definition SoGLRenderAction.cpp:1438
void setSortedLayersNumPasses(int num)
Definition SoGLRenderAction.cpp:997
SbBool isSmoothing(void) const
Definition SoGLRenderAction.cpp:900
uint32_t getCacheContext(void) const
Definition SoGLRenderAction.cpp:985
void removePreRenderCallback(SoGLPreRenderCB *func, void *userdata)
Definition SoGLRenderAction.cpp:1530
TransparencyType getTransparencyType(void) const
Definition SoGLRenderAction.cpp:864
int getNumPasses(void) const
Definition SoGLRenderAction.cpp:921
SbBool getRenderingIsRemote(void) const
Definition SoGLRenderAction.cpp:1409
SbBool isRenderingTranspBackfaces(void) const
Definition SoGLRenderAction.cpp:1996
TransparentDelayedObjectRenderType getTransparentDelayedObjectRenderType(void) const
Definition SoGLRenderAction.cpp:2018
SbBool isRenderingTranspPaths(void) const
Definition SoGLRenderAction.cpp:1984
void setSortedObjectOrderStrategy(const SortedObjectOrderStrategy strategy, SoGLSortedObjectOrderCB *cb=NULL, void *closure=NULL)
Definition SoGLRenderAction.cpp:1555
TransparencyType
Definition SoGLRenderAction.h:52
@ ADD
Definition SoGLRenderAction.h:54
@ SORTED_OBJECT_SORTED_TRIANGLE_ADD
Definition SoGLRenderAction.h:57
@ SCREEN_DOOR
Definition SoGLRenderAction.h:53
@ BLEND
Definition SoGLRenderAction.h:55
@ SORTED_OBJECT_BLEND
Definition SoGLRenderAction.h:55
@ SORTED_LAYERS_BLEND
Definition SoGLRenderAction.h:59
@ SORTED_OBJECT_SORTED_TRIANGLE_BLEND
Definition SoGLRenderAction.h:58
@ DELAYED_ADD
Definition SoGLRenderAction.h:54
@ SORTED_OBJECT_ADD
Definition SoGLRenderAction.h:54
@ NONE
Definition SoGLRenderAction.h:59
@ DELAYED_BLEND
Definition SoGLRenderAction.h:55
void setAbortCallback(SoGLRenderAbortCB *const func, void *const userdata)
Definition SoGLRenderAction.cpp:824
void setNumPasses(const int num)
Definition SoGLRenderAction.cpp:911
TransparentDelayedObjectRenderType
Definition SoGLRenderAction.h:62
@ NONSOLID_SEPARATE_BACKFACE_PASS
Definition SoGLRenderAction.h:64
@ ONE_PASS
Definition SoGLRenderAction.h:63
int getCurPass(void) const
Definition SoGLRenderAction.cpp:1320
SbBool handleTransparency(SbBool istransparent=FALSE)
Definition SoGLRenderAction.cpp:1187
void setRenderingIsRemote(SbBool isremote)
Definition SoGLRenderAction.cpp:1396
void setViewportRegion(const SbViewportRegion &newregion)
Definition SoGLRenderAction.cpp:744
void getUpdateArea(SbVec2f &origin, SbVec2f &size) const
Definition SoGLRenderAction.cpp:781
void setDelayedObjDepthWrite(SbBool write)
Definition SoGLRenderAction.cpp:1959
SortedObjectOrderStrategy
Definition SoGLRenderAction.h:71
@ BBOX_CENTER
Definition SoGLRenderAction.h:72
@ BBOX_FARTHEST_CORNER
Definition SoGLRenderAction.h:74
@ CUSTOM_CALLBACK
Definition SoGLRenderAction.h:75
void setCacheContext(const uint32_t context)
Definition SoGLRenderAction.cpp:973
void setUpdateArea(const SbVec2f &origin, const SbVec2f &size)
Definition SoGLRenderAction.cpp:770
void getAbortCallback(SoGLRenderAbortCB *&func_out, void *&userdata_out) const
Definition SoGLRenderAction.cpp:838
The SoNode class is the base class for nodes used in scene graphs.
Definition SoNode.h:47
The SoPath class is a container class for traversal path descriptions.
Definition SoPath.h:43

Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.

Generated for Coin by Doxygen 1.13.2.