SmallChange  1.0.0
A collection of extensions to Coin3D
Loading...
Searching...
No Matches
SmVertexArrayShape.h
1/**************************************************************************\
2 * Copyright (c) Kongsberg Oil & Gas Technologies AS
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * Neither the name of the copyright holder nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31\**************************************************************************/
32
33#ifndef COIN_VERTEXARRAYSHAPE_H
34#define COIN_VERTEXARRAYSHAPE_H
35
36#include <Inventor/nodes/SoShape.h>
37#include <Inventor/nodes/SoSubNode.h>
38#include <Inventor/fields/SoMFInt32.h>
39#include <Inventor/fields/SoSFNode.h>
40#include <Inventor/fields/SoSFEnum.h>
41
42#include <SmallChange/basic.h>
43
44class SmVertexArrayShapeP;
45
47 typedef SoShape inherited;
48
49 SO_NODE_HEADER(SmVertexArrayShape);
50
51public:
52 static void initClass(void);
54
55 enum ShapeType {
56 POINTS = -1,
57 LINES = -2,
58 LINE_LOOP = -3,
59 LINE_STRIP = -4,
60 TRIANGLES = -5,
61 TRIANGLE_STRIP = -6,
62 TRIANGLE_FAN = -7,
63 QUADS = -8,
64 QUAD_STRIP = -9,
65 POLYGON = -10
66 };
67
68 enum RenderAsVertexBufferObjects {
69 OFF, ON, AUTO
70 };
71
72 SoSFEnum renderAsVertexBufferObject;
73 SoMFInt32 vertexIndex;
74 SoSFNode vertexCoord;
75 SoSFNode vertexNormal;
76 SoSFNode vertexTexCoord;
77 SoSFNode vertexColor;
78
79 virtual void GLRender(SoGLRenderAction * action);
80 virtual void getPrimitiveCount(SoGetPrimitiveCountAction * action);
81
82protected:
83 virtual ~SmVertexArrayShape();
84
85 virtual void generatePrimitives(SoAction * action);
86 virtual void computeBBox(SoAction * action, SbBox3f & box, SbVec3f & center);
87 virtual void notify(SoNotList * list);
88
89private:
90 SmVertexArrayShapeP * pimpl;
91};
92
93#endif // COIN_VERTEXARRAYSHAPE_H
Definition misc/SbList.h:69
The SmVertexArrayShape class us used to render using OpenGL vertex arrays (and soon vertex buffer obj...
Definition SmVertexArrayShape.h:46