Open Inventor Reference
SoVertexShape.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 SoVertexShape node class.
48 |
49 | Author(s) : Paul S. Strauss
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_VERTEX_SHAPE_
56#define _SO_VERTEX_SHAPE_
57
61
62
63class SoNormalBundle;
64class SoNormalCache;
65class SoState;
66
67
70
134
136
138
139 public:
141
142 SoEXTENDER public:
147 virtual bool generateDefaultNormals(SoState *state,
148 SoNormalBundle *nb);
149
150 SoINTERNAL public:
151 static void initClass();
152
154 virtual void notify(SoNotList *list);
155
156 protected:
159
160 virtual ~SoVertexShape();
161
165
169 virtual bool shouldGLRender(SoGLRenderAction *action);
170
174
178 int numNormals, const SbVec3f *normals);
179
181 SoNormalCache *getNormalCache() const { return normalCache; }
182
186
188 void endVertexArrayRendering(SoGLRenderAction* action, bool vboWasUsed);
189
190 private:
192 SoNormalCache *normalCache;
193};
194
195#endif /* _SO_VERTEX_SHAPE_ */
#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_ABSTRACT_HEADER(className)
Macros to be called within the class definition header for a node subclass:
Definition SoSubNode.h:150
3D vector class.
Definition SbLinear.h:120
Renders a scene graph using OpenGL.
Bundle that allows shapes to deal with normals and normal bindings more easily.
Class SoNormalCache:
Holds a list of SoNotRec notification records.
Field containing a pointer to a node.
Definition SoSFNode.h:92
Abstract base class for all shape nodes.
Definition SoShape.h:101
An SoState collects and holds state while traversing a scene graph.
Definition SoState.h:82
Vertex property node.
Abstract base class for all vertex-based shape nodes.
SoVertexProperty * getVertexProperty()
Get the SoVertexProperty from the vertexProperty field, returning NULL if the contained node is not o...
virtual bool generateDefaultNormals(SoState *state, SoNormalBundle *nb)
Subclasses may define this method to generate normals to use when the normal binding is DEFAULT and t...
SoSFNode vertexProperty
static void initClass()
SoVertexShape()
Constructor - makes this abstract.
bool beginVertexArrayRendering(SoGLRenderAction *action)
enables vertex array rendering client state and VBO rendering (if supported), returns true if VBOs ar...
SoVertexPropertyCache vpCache
vpCache stores information from one render to the next about what information needs to be grabbed fro...
virtual bool shouldGLRender(SoGLRenderAction *action)
Returns TRUE if the shape should be rendered.
void endVertexArrayRendering(SoGLRenderAction *action, bool vboWasUsed)
disables vertex array rendering and VBOs if vboWasUsed is passes as true (MeVis ONLY)
virtual void notify(SoNotList *list)
Redefines this to invalidate normal cache.
SoNormalCache * getNormalCache() const
Returns the current normal cache, or NULL if there is none.
void setNormalCache(SoState *state, int numNormals, const SbVec3f *normals)
Sets up a cache to hold normals.
virtual ~SoVertexShape()