Open Inventor Release 2024.1.1
 
Loading...
Searching...
No Matches
SoInstanceParameter.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2018 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : David Beilloin (Aug 2013)
22**=======================================================================*/
23
24
25#ifndef _SO_INSTANCE_PARAMETER_H_
26#define _SO_INSTANCE_PARAMETER_H_
27
28#include <Inventor/SbBasic.h>
29#include <Inventor/nodes/SoNode.h>
30
31#include <Inventor/nodes/SoShaderParameter.h>
32
33#include <Inventor/fields/SoSFBufferObject.h>
34#include <Inventor/fields/SoSFInt32.h>
35#include <Inventor/fields/SoSFUInt32.h>
36#include <Inventor/fields/SoSFBool.h>
37#include <Inventor/fields/SoSFEnum.h>
38
39
81{
82 SO_NODE_HEADER(SoInstanceParameter);
83
84public:
85
90
97
146
193 const SoBufferObject* values, uint32_t divisor = 1 );
194
197
200
201private:
203 static void initClass();
204
206 static void exitClass();
207
209 virtual void notify(SoNotList *list);
210
211 // Attrib divisor is set by a field
212 virtual unsigned int getVertexAttribDivisor() { return divisor.getValue(); }
213
214private:
215 // Destructor
216 virtual ~SoInstanceParameter();
217
218};
219
220/*----------------------------------------------------------------------------*/
221
222#endif /* _SO_INSTANCE_PARAMETER_H_ */
223
Class for smart character strings.
Definition SbString.h:202
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Per-instance par...
PredefinedParameters
List of predefined per-instance attribute names.
SoSFUInt32 divisor
This field modifies the rate at which values advance during multiple instance rendering.
static SoInstanceParameter * createPredefinedParameter(SoInstanceParameter::PredefinedParameters paramKey, const SoBufferObject *values, uint32_t divisor=1)
Creates an instance parameter object for one of the predefined attribute names.
static SbString getPredefinedParameterName(SoInstanceParameter::PredefinedParameters paramKey)
Returns the predefined instance parameter name for the specified paramKey.
void setPredefinedParameterName(SoInstanceParameter::PredefinedParameters paramKey)
Sets the name field to the string corresponding to the given paramKey.
SoInstanceParameter()
Constructor.
Field containing an unsigned int32_t integer.
Definition SoSFUInt32.h:80
uint32_t getValue() const
Returns this field's value.
Definition SoSFUInt32.h:83
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...