Open Inventor Reference
SoSeparator.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * Further, this software is distributed without any warranty that it is
16 * free of the rightful claim of any third person regarding infringement
17 * or the like. Any license provided herein, whether implied or
18 * otherwise, applies only to this software file. Patent licenses, if
19 * any, provided herein do not apply to combinations of this program with
20 * other software, or any other product whatsoever.
21 *
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with this library; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 *
26 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
27 * Mountain View, CA 94043, or:
28 *
29 * http://www.sgi.com
30 *
31 * For further information regarding this notice, see:
32 *
33 * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
34 *
35 */
36
37
38/*
39 * Copyright (C) 1990,91 Silicon Graphics, Inc.
40 *
41 _______________________________________________________________________
42 ______________ S I L I C O N G R A P H I C S I N C . ____________
43 |
44 | $Revision: 1.1.1.1 $
45 |
46 | Description:
47 | This file defines the SoSeparator node class.
48 |
49 | Author(s) : Paul S. Strauss, Nick Thompson
50 |
51 ______________ S I L I C O N G R A P H I C S I N C . ____________
52 _______________________________________________________________________
53 */
54
55#ifndef _SO_SEPARATOR_
56#define _SO_SEPARATOR_
57
60
62class SoGLCacheList;
63
64
66
69
117
119
121
122 public:
123
128 AUTO
129 };
130
132
133
136
139
142
145
147
150
152 SoSeparator(int nChildren);
153
155 virtual bool affectsState() const;
156
167 static void setNumRenderCaches(int howMany);
169 static int getNumRenderCaches();
170
171 SoEXTENDER public:
173 virtual void doAction(SoAction *action);
174 virtual void callback(SoCallbackAction *action);
176 virtual void getMatrix(SoGetMatrixAction *action);
177 virtual void GLRender(SoGLRenderAction *action);
178 virtual void handleEvent(SoHandleEventAction *action);
179 virtual void rayPick(SoRayPickAction *action);
180 virtual void search(SoSearchAction *action);
181
185 virtual void GLRenderBelowPath(SoGLRenderAction *action);
186 virtual void GLRenderInPath(SoGLRenderAction *action);
187 virtual void GLRenderOffPath(SoGLRenderAction *action);
188
189 SoINTERNAL public:
190 static void initClass();
191
192 virtual void notify(SoNotList *list);
193
194 protected:
200 virtual bool cullTest(SoGLRenderAction *action, int &cullResults);
201
202 virtual bool readInstance(SoInput *in, unsigned short flags);
203
204 virtual ~SoSeparator();
205
206 private:
209 static int numRenderCaches;
210
211 SoBoundingBoxCache *bboxCache;
212 SoGLCacheList *cacheList;
213};
214
215#endif /* _SO_SEPARATOR_ */
#define SoEXTENDER
Provide inline template functions for abs, swap, min, max, and clamp.
Definition SbBasic.h:154
#define SoINTERNAL
Definition SbBasic.h:155
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
Definition SbSystem.h:77
#define SO_NODE_HEADER(className)
Non-abstract classes have everything abstract classes have, plus a way to create an instance.
Definition SoSubNode.h:170
Abstract base class for all actions.
Definition SoAction.h:179
Class SoBoundingBoxCache:
Performs a generic traversal of the scene graph.
Renders a scene graph using OpenGL.
Computes bounding box of a scene.
Computes transformation matrix for subgraph.
Base class for all group nodes.
Definition SoGroup.h:104
Allows nodes in a graph to receive input events.
Used to read Inventor data files.
Definition SoInput.h:128
Holds a list of SoNotRec notification records.
Intersects objects with a ray cast into scene.
Field containing an enumerated value.
Definition SoSFEnum.h:93
Searches for nodes in a scene graph.
Group node that saves and restores traversal state.
static int getNumRenderCaches()
Returns the current number of render caches.
SoSFEnum boundingBoxCaching
Whether to cache during bounding box traversal.
virtual void getBoundingBox(SoGetBoundingBoxAction *action)
static void setNumRenderCaches(int howMany)
By default, each separator node maintains 2 render caches.
virtual bool cullTest(SoGLRenderAction *action, int &cullResults)
Returns TRUE if this separator can be culled because it is outside the cull volume.
virtual bool affectsState() const
Overrides default method on SoNode.
CacheEnabled
Possible values for caching.
@ ON
Always try to build a cache.
@ OFF
Never build or use a cache.
virtual void getMatrix(SoGetMatrixAction *action)
SoSFEnum renderCaching
Whether to cache during rendering traversal.
virtual void GLRenderBelowPath(SoGLRenderAction *action)
These methods make render traversal faster by implementing different rendering paths corresponding to...
SoSFEnum renderCulling
Whether to cull during rendering traversal.
virtual void handleEvent(SoHandleEventAction *action)
virtual void notify(SoNotList *list)
Propagates modification notification through an instance.
virtual void rayPick(SoRayPickAction *action)
virtual void callback(SoCallbackAction *action)
virtual void GLRenderInPath(SoGLRenderAction *action)
virtual ~SoSeparator()
SoSeparator()
Creates a separator node with default settings.
SoSFEnum pickCulling
Whether to cull during picking traversal.
virtual void search(SoSearchAction *action)
virtual void GLRender(SoGLRenderAction *action)
These virtual functions implement all of the actions for nodes, Most of the default implementations d...
virtual bool readInstance(SoInput *in, unsigned short flags)
Reads stuff into instance of SoGroup. Returns FALSE on error.
SoSeparator(int nChildren)
Constructor that takes approximate number of children.
static void initClass()
virtual void doAction(SoAction *action)
Implement actions.
virtual void GLRenderOffPath(SoGLRenderAction *action)