Open Inventor Reference
SoProfileCoordinateElement.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 $
45 |
46 | Description:
47 | This file defines the SoProfileCoordinateElement class.
48 |
49 | Author(s) : Paul S. Strauss, Nick Thompson, Thad Beier
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_PROFILE_COORDINATE_ELEMENT
56#define _SO_PROFILE_COORDINATE_ELEMENT
57
58#include <Inventor/SbLinear.h>
60
74
76
78
79 public:
81 virtual void init(SoState *state);
82
84 static void set2(SoState *state, SoNode *node,
85 int32_t numCoords, const SbVec2f *coords);
86 static void set3(SoState *state, SoNode *node,
87 int32_t numCoords, const SbVec3f *coords);
88
91
93 int32_t getNum() const { return numCoords; }
94
97 const SbVec2f & get2(int index) const;
98 const SbVec3f & get3(int index) const;
99
101 bool is2D() const { return coordsAre2D; }
102
104 static SbVec2f getDefault2() { return SbVec2f(0.0, 0.0); }
105 static SbVec3f getDefault3() { return SbVec3f(0.0, 0.0, 1.0); }
106
107 virtual void print(FILE *fp) const;
108
109 SoINTERNAL public:
111 static void initClass();
112
113 protected:
118
120
121 private:
122 static SbVec2f *defaultCoord2;
123
124 SbVec2f convert2;
125 SbVec3f convert3;
126};
127
128#endif /* _SO_PROFILE_COORDINATE_ELEMENT */
#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
signed int int32_t
Definition SbTypeDefs.h:43
#define SO_ELEMENT_HEADER(className)
This one is for non-abstract element classes.
2D vector class.
Definition SbLinear.h:246
3D vector class.
Definition SbLinear.h:120
Abstract base class for all database nodes.
Definition SoNode.h:103
Element storing the current profile coordinates, as either 2-D or 3-D points.
const SbVec3f & get3(int index) const
static void set3(SoState *state, SoNode *node, int32_t numCoords, const SbVec3f *coords)
virtual void init(SoState *state)
Initializes element.
bool is2D() const
TRUE if set2() was called.
virtual ~SoProfileCoordinateElement()
static void set2(SoState *state, SoNode *node, int32_t numCoords, const SbVec2f *coords)
Sets the current profile coordinates.
int32_t getNum() const
Returns the number of coordinate points in an instance.
static void initClass()
Initializes the SoCoordinateElement class.
static SbVec2f getDefault2()
Returns the default profile coordinate.
const SbVec2f & get2(int index) const
Returns the indexed coordinate from an element as a 2- or 3-vector, converting if necessary.
virtual void print(FILE *fp) const
Prints element (for debugging)
static const SoProfileCoordinateElement * getInstance(SoState *state)
Returns the top (current) instance of the element in the state.
This is the abstract base class for each state element whose value is replaced whenever it is set.
An SoState collects and holds state while traversing a scene graph.
Definition SoState.h:82