Open Inventor Reference
SoPrimitiveVertex.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 base SoPrimitiveVertex 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_PRIMITIVE_VERTEX_
56#define _SO_PRIMITIVE_VERTEX_
57
58#include <Inventor/SbLinear.h>
59
60class SoDetail;
61
62
65
83
85
86 public:
87
94
98
101 const SbVec3f & getPoint() const { return point; }
104 const SbVec3f & getNormal() const { return normal; }
107 const SbVec4f & getTextureCoords() const { return texCoords; }
108
111 int getMaterialIndex() const { return materialIndex; }
112
115 const SoDetail * getDetail() const { return detail; }
116
119 SoPrimitiveVertex & operator =(const SoPrimitiveVertex &pv);
120
121 SoEXTENDER public:
122
125
127 void setPoint(const SbVec3f &pt) { point = pt; }
128 void setNormal(const SbVec3f &norm) { normal = norm; }
129 void setTextureCoords(const SbVec4f &t){ texCoords = t; }
130
132 void setMaterialIndex(int index) { materialIndex = index; }
133
136 void setDetail(SoDetail *d) { detail = d; }
137
138 private:
139 SbVec3f point;
140 SbVec3f normal;
141 SbVec4f texCoords;
142 int materialIndex;
143 SoDetail *detail;
144};
145
146#endif /* _SO_PRIMITIVE_VERTEX_ */
#define SoEXTENDER
Provide inline template functions for abs, swap, min, max, and clamp.
Definition SbBasic.h:154
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
Definition SbSystem.h:77
3D vector class.
Definition SbLinear.h:120
4D vector class.
Definition SbLinear.h:559
Base class for describing detail information about a shape node.
Definition SoDetail.h:78
Represents a vertex of a generated primitive.
const SbVec3f & getNormal() const
These return the surface point, normal, and texture coordinates in object space.
void setNormal(const SbVec3f &norm)
const SbVec3f & getPoint() const
These return the surface point, normal, and texture coordinates in object space.
SoPrimitiveVertex(const SoPrimitiveVertex &pv)
Constructors and destructor.
const SbVec4f & getTextureCoords() const
These return the surface point, normal, and texture coordinates in object space.
void setPoint(const SbVec3f &pt)
These methods are typically called by shape classes during primtiive generation.
void setDetail(SoDetail *d)
Sets the detail corresponding to the vertex.
void setMaterialIndex(int index)
Sets the material index. The index is set to 0 during construction.
~SoPrimitiveVertex()
Constructors and destructor.
const SoDetail * getDetail() const
Returns the detail giving more information about the vertex.
SoPrimitiveVertex()
Constructors and destructor.
int getMaterialIndex() const
Returns the index into the current set of materials of the material active at the vertex.
void setTextureCoords(const SbVec4f &t)