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 
60 class 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:81
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 SoDetail * getDetail() const
Returns the detail giving more information about the vertex.
const SbVec3f & getNormal() const
These return the surface point, normal, and texture coordinates in object space.
void setNormal(const SbVec3f &norm)
SoPrimitiveVertex(const SoPrimitiveVertex &pv)
Constructors and destructor.
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.
const SbVec3f & getPoint() const
These return the surface point, normal, and texture coordinates in object space.
void setMaterialIndex(int index)
Sets the material index. The index is set to 0 during construction.
~SoPrimitiveVertex()
Constructors and destructor.
const SbVec4f & getTextureCoords() const
These return the surface point, normal, and texture coordinates in object space.
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)