Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoShaderParameter.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-2022 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23
24 /* include files */
25#ifndef _SO_SHADER_PARAMETER_H_
26#define _SO_SHADER_PARAMETER_H_
27
28#include <Inventor/SbBasic.h>
29#include <Inventor/nodes/SoNode.h>
30#include <Inventor/nodes/SoNode.h>
31#include <Inventor/fields/SoSFBufferObject.h>
32#include <Inventor/fields/SoSFString.h>
33#include <Inventor/fields/SoSFFloat.h>
34#include <Inventor/fields/SoSFInt32.h>
35#include <Inventor/fields/SoSFVec2f.h>
36#include <Inventor/fields/SoSFVec2i32.h>
37#include <Inventor/fields/SoSFVec3f.h>
38#include <Inventor/fields/SoSFVec3i32.h>
39#include <Inventor/fields/SoSFVec4f.h>
40#include <Inventor/fields/SoSFVec4i32.h>
41#include <Inventor/fields/SoSFBool.h>
42#include <Inventor/fields/SoMFFloat.h>
43#include <Inventor/fields/SoMFInt32.h>
44#include <Inventor/fields/SoMFShort.h>
45#include <Inventor/fields/SoMFVec2f.h>
46#include <Inventor/fields/SoMFVec2s.h>
47#include <Inventor/fields/SoMFVec2i32.h>
48#include <Inventor/fields/SoMFVec3f.h>
49#include <Inventor/fields/SoMFVec3s.h>
50#include <Inventor/fields/SoMFVec3i32.h>
51#include <Inventor/fields/SoMFVec4f.h>
52#include <Inventor/fields/SoMFVec4i32.h>
53#include <Inventor/fields/SoMFVec4s.h>
54#include <Inventor/fields/SoMFVec4b.h>
55#include <Inventor/fields/SoMFVec4ui32.h>
56#include <Inventor/fields/SoMFVec4us.h>
57#include <Inventor/fields/SoMFVec4ub.h>
58#include <Inventor/fields/SoSFMatrix.h>
59#include <Inventor/fields/SoSFMatrix3.h>
60#include <Inventor/fields/SoMFMatrix.h>
61#include <Inventor/fields/SoSFNode.h>
62#include <Inventor/fields/SoMFNode.h>
63#include <Inventor/fields/SoSFEnum.h>
64#include <Inventor/SbEventHandler.h>
65#include <Inventor/renderer/RendererResourceMacro.h>
66
67typedef unsigned int GLenum;
68
69class SoGLShaderObject ;
70class SoShaderObject ;
71class SoShaderProgram ;
72
73/*----------------------------------------------------------------------------*/
74
136class SoShaderParameter : public SoNode {
137
138 SO_NODE_ABSTRACT_HEADER(SoShaderParameter);
139
140public:
146
152
153
154private:
155 static void initClass() ;
156 static void exitClass() ;
157
158 SbBool isInternal() const;
159
160private:
165
166 // Destructor
167 virtual ~SoShaderParameter();
168
169};
170
313
314 SO_NODE_ABSTRACT_HEADER(SoUniformShaderParameter);
315 RENDERER_RESOURCE(SoUniformShaderParameter);
316
317public:
318
319 virtual bool isEqual(const SoUniformShaderParameter* param) const = 0;
320
321private:
322 static void initClass() ;
323 static void exitClass() ;
324
326 virtual void notify(SoNotList *list);
327
328private:
329 void GLRender(SoGLRenderAction *action);
330
331private:
336
337 // Destructor
339
340private:
341
342#if 1 SoDEPRECATED enum
347 ShaderType {
352 VERTEX,
357 FRAGMENT
358 };
359
368 SoSFEnum SoDEPRECATED shaderType;
369#endif
371};
372/*----------------------------------------------------------------------------*/
373
414
415 SO_NODE_HEADER(SoShaderParameter1f);
416
417public:
418
424
429
433 virtual bool isEqual(const SoUniformShaderParameter* param) const;
434
435private:
436
437 static void initClass() ;
438 static void exitClass() ;
439
440private:
441 // Destructor
442 virtual ~SoShaderParameter1f();
443};
444/*----------------------------------------------------------------------------*/
445
486
487 SO_NODE_HEADER(SoShaderParameter1i);
488
489public:
494
499
500 virtual bool isEqual(const SoUniformShaderParameter* param) const;
501
502private:
503 static void initClass() ;
504 static void exitClass() ;
505
506private:
507 // Destructor
508 virtual ~SoShaderParameter1i();
509};
510/*----------------------------------------------------------------------------*/
511
552
553 SO_NODE_HEADER(SoShaderParameter2f);
554
555public:
560
565
566 virtual bool isEqual(const SoUniformShaderParameter* param) const;
567
568private:
569 static void initClass() ;
570 static void exitClass() ;
571
572private:
573 // Destructor
574 virtual ~SoShaderParameter2f();
575};
576/*----------------------------------------------------------------------------*/
577
618
619 SO_NODE_HEADER(SoShaderParameter2i);
620
621public:
626
631
632 virtual bool isEqual(const SoUniformShaderParameter* param) const;
633
634private:
635 static void initClass() ;
636 static void exitClass() ;
637
638private:
639 // Destructor
640 virtual ~SoShaderParameter2i();
641};
642/*----------------------------------------------------------------------------*/
643
684
685 SO_NODE_HEADER(SoShaderParameter3f);
686
687public:
692
697
698 virtual bool isEqual(const SoUniformShaderParameter* param) const;
699
700private:
701 static void initClass() ;
702 static void exitClass() ;
703
704private:
705 // Destructor
706 virtual ~SoShaderParameter3f();
707};
708/*----------------------------------------------------------------------------*/
709
750
751 SO_NODE_HEADER(SoShaderParameter3i);
752
753public:
758
763
764 virtual bool isEqual(const SoUniformShaderParameter* param) const;
765
766private:
767 static void initClass() ;
768 static void exitClass() ;
769
770private:
771 // Destructor
772 virtual ~SoShaderParameter3i();
773
774};
775/*----------------------------------------------------------------------------*/
776
817
818 SO_NODE_HEADER(SoShaderParameter4f);
819
820public:
825
830
831 virtual bool isEqual(const SoUniformShaderParameter* param) const;
832
833private:
834 static void initClass() ;
835 static void exitClass() ;
836
837private:
838 // Destructor
839 virtual ~SoShaderParameter4f();
840};
841/*----------------------------------------------------------------------------*/
842
883
884 SO_NODE_HEADER(SoShaderParameter4i);
885
886public:
891
896
897 virtual bool isEqual(const SoUniformShaderParameter* param) const;
898
899private:
900 static void initClass() ;
901 static void exitClass() ;
902
903private:
904 // Destructor
905 virtual ~SoShaderParameter4i();
906};
907/*----------------------------------------------------------------------------*/
908
951
953
954public:
959
964
965 virtual bool isEqual(const SoUniformShaderParameter* param) const;
966
967private:
968 static void initClass() ;
969 static void exitClass() ;
970
971private:
972 // Destructor
974};
975/*----------------------------------------------------------------------------*/
976
1019
1021
1022public:
1027
1032
1033 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1034
1035private:
1036 static void initClass() ;
1037 static void exitClass() ;
1038
1039private:
1040 // Destructor
1041 virtual ~SoShaderParameterArray1i();
1042};
1043/*----------------------------------------------------------------------------*/
1044
1087
1089
1090public:
1095
1100
1101 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1102
1103private:
1104 static void initClass() ;
1105 static void exitClass() ;
1106
1107private:
1108 // Destructor
1109 virtual ~SoShaderParameterArray2f();
1110};
1111/*----------------------------------------------------------------------------*/
1112
1155
1157
1158public:
1163
1168
1169 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1170
1171private:
1172 static void initClass() ;
1173 static void exitClass() ;
1174
1175private:
1176 // Destructor
1177 virtual ~SoShaderParameterArray2i();
1178};
1179/*----------------------------------------------------------------------------*/
1180
1223
1225
1226public:
1231
1236
1237 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1238
1239private:
1240 static void initClass() ;
1241 static void exitClass() ;
1242
1243private:
1244 // Destructor
1245 virtual ~SoShaderParameterArray3f();
1246};
1247/*----------------------------------------------------------------------------*/
1248
1292
1294
1295public:
1300
1305
1306 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1307
1308private:
1309 static void initClass() ;
1310 static void exitClass() ;
1311
1312private:
1313 // Destructor
1314 virtual ~SoShaderParameterArray3i();
1315};
1316/*----------------------------------------------------------------------------*/
1317
1361
1363
1364public:
1369
1374
1375 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1376
1377private:
1378 static void initClass() ;
1379 static void exitClass() ;
1380
1381private:
1382 // Destructor
1383 virtual ~SoShaderParameterArray4f();
1384
1385};
1386/*----------------------------------------------------------------------------*/
1387
1432
1434
1435public:
1440
1445
1446 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1447
1448private:
1449 static void initClass() ;
1450 static void exitClass() ;
1451
1452private:
1453 // Destructor
1454 virtual ~SoShaderParameterArray4i();
1455};
1456/*----------------------------------------------------------------------------*/
1457
1506
1508
1509public:
1514
1519
1520 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1521
1522private:
1523 static void initClass() ;
1524 static void exitClass() ;
1525
1526private:
1527 // Destructor
1528 virtual ~SoShaderParameterMatrix();
1529
1530};
1531/*----------------------------------------------------------------------------*/
1532
1576
1578
1579public:
1584
1589
1590 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1591
1592private:
1593 static void initClass() ;
1594 static void exitClass() ;
1595
1596private:
1597 // Destructor
1598 virtual ~SoShaderParameterMatrix3();
1599
1600};
1601/*----------------------------------------------------------------------------*/
1602
1603
1648
1650
1651public:
1656
1661
1662 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1663
1664private:
1665 static void initClass() ;
1666 static void exitClass() ;
1667
1668private:
1669 // Destructor
1671};
1672/*----------------------------------------------------------------------------*/
1673
1727
1729
1730public:
1731
1754
1777
1782
1787
1792
1793 virtual bool isEqual(const SoUniformShaderParameter* param) const;
1794
1795private:
1796 static void initClass() ;
1797 static void exitClass() ;
1798
1799private:
1800 // Destructor
1802
1803};
1804/*----------------------------------------------------------------------------*/
1805
1914
1915 SO_NODE_ABSTRACT_HEADER(SoVertexShaderParameter);
1916
1917private:
1918 virtual void doAction(SoAction *action);
1919 virtual void GLRender(SoGLRenderAction *action);
1920 virtual void callback(SoCallbackAction *action);
1921 virtual void getBoundingBox( SoGetBoundingBoxAction *action );
1922 virtual void rayPick(SoRayPickAction *action );
1923 virtual void getPrimitiveCount(SoGetPrimitiveCountAction *action );
1924
1925private:
1926 static void initClass();
1927 static void exitClass();
1928
1929 static SbBool areVertexAttribFuncAvailable();
1930 static SbBool areVertexAttribDivisorFuncAvailable();
1931
1932 void getVertexAttribIndex(SoState * state, int& firstInd, int& size);
1933
1934 virtual size_t getVertexAttribOffset(int) { return 0; }
1935 virtual const char * getVertexAttribPtr(int i=0) = 0;
1936 virtual size_t getVertexAttribStride() = 0;
1937 virtual int getVertexAttribNum() = 0;
1938 virtual GLenum getVertexAttribType() = 0;
1939 virtual int getVertexAttribSize() = 0;
1940 virtual SbBool getVertexAttribIsToNormalize() = 0;
1941 virtual unsigned int getVertexAttribDivisor() { return 0; }
1942private:
1947
1948 // Destructor
1949 virtual ~SoVertexShaderParameter();
1950
1951};
1952/*----------------------------------------------------------------------------*/
1953
1989
1991
1992public:
1997
2002
2003private:
2004 static void initClass();
2005 static void exitClass();
2006
2007 virtual const char * getVertexAttribPtr( int ) { return (char *)value.getValues(0); }
2008 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2009 virtual int getVertexAttribNum() { return value.getNum(); }
2010 virtual GLenum getVertexAttribType();
2011 virtual int getVertexAttribSize() { return 1; }
2012 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2013
2014private:
2015 // Destructor
2017};
2018
2019/*----------------------------------------------------------------------------*/
2020
2056
2058
2059public:
2064
2069
2070private:
2071 static void initClass();
2072 static void exitClass();
2073
2074 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2075 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2076 virtual int getVertexAttribNum() { return value.getNum(); }
2077 virtual GLenum getVertexAttribType();
2078 virtual int getVertexAttribSize() { return 1; }
2079 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2080
2081private:
2082 // Destructor
2084};
2085
2086/*----------------------------------------------------------------------------*/
2087
2123
2125
2126public:
2131
2136
2137private:
2138 static void initClass();
2139 static void exitClass();
2140
2141 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2142 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2143 virtual int getVertexAttribNum() { return value.getNum(); }
2144 virtual GLenum getVertexAttribType();
2145 virtual int getVertexAttribSize() { return 2; }
2146 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2147
2148private:
2149 // Destructor
2151};
2152
2153/*----------------------------------------------------------------------------*/
2154
2190
2192
2193public:
2198
2203
2204private:
2205 static void initClass();
2206 static void exitClass();
2207
2208 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2209 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2210 virtual int getVertexAttribNum() { return value.getNum(); }
2211 virtual GLenum getVertexAttribType();
2212 virtual int getVertexAttribSize() { return 2; }
2213 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2214
2215private:
2216 // Destructor
2218};
2219
2220/*----------------------------------------------------------------------------*/
2221
2257
2259
2260public:
2265
2270
2271private:
2272 static void initClass();
2273 static void exitClass();
2274
2275 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2276 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2277 virtual int getVertexAttribNum() { return value.getNum(); }
2278 virtual GLenum getVertexAttribType();
2279 virtual int getVertexAttribSize() { return 3; }
2280 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2281
2282private:
2283 // Destructor
2285};
2286
2287/*----------------------------------------------------------------------------*/
2288
2324
2326
2327public:
2332
2337
2338private:
2339 static void initClass();
2340 static void exitClass();
2341
2342 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2343 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2344 virtual int getVertexAttribNum() { return value.getNum(); }
2345 virtual GLenum getVertexAttribType();
2346 virtual int getVertexAttribSize() { return 3; }
2347 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2348
2349private:
2350 // Destructor
2352};
2353
2354/*----------------------------------------------------------------------------*/
2355
2391
2393
2394public:
2399
2404
2405private:
2406 static void initClass();
2407 static void exitClass();
2408
2409 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2410 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2411 virtual int getVertexAttribNum() { return value.getNum(); }
2412 virtual GLenum getVertexAttribType();
2413 virtual int getVertexAttribSize() { return 4; }
2414 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2415
2416private:
2417 // Destructor
2419};
2420
2421/*----------------------------------------------------------------------------*/
2422
2465
2467
2468public:
2473
2478
2483
2484private:
2485 static void initClass();
2486 static void exitClass();
2487
2488 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2489 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2490 virtual int getVertexAttribNum() { return value.getNum(); }
2491 virtual GLenum getVertexAttribType();
2492 virtual int getVertexAttribSize() { return 4; }
2493 virtual SbBool getVertexAttribIsToNormalize() { return rangeScaling.getValue(); }
2494
2495private:
2496 // Destructor
2498};
2499
2500/*----------------------------------------------------------------------------*/
2501
2544
2546
2547public:
2552
2557
2562
2563private:
2564 static void initClass();
2565 static void exitClass();
2566
2567 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2568 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2569 virtual int getVertexAttribNum() { return value.getNum(); }
2570 virtual GLenum getVertexAttribType();
2571 virtual int getVertexAttribSize() { return 4; }
2572 virtual SbBool getVertexAttribIsToNormalize() { return rangeScaling.getValue(); }
2573
2574private:
2575 // Destructor
2577};
2578
2579/*----------------------------------------------------------------------------*/
2580
2623
2625
2626public:
2631
2636
2641
2642private:
2643 static void initClass();
2644 static void exitClass();
2645
2646 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2647 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2648 virtual int getVertexAttribNum() { return value.getNum(); }
2649 virtual GLenum getVertexAttribType();
2650 virtual int getVertexAttribSize() { return 4; }
2651 virtual SbBool getVertexAttribIsToNormalize() { return rangeScaling.getValue(); }
2652
2653private:
2654 // Destructor
2656};
2657
2658/*----------------------------------------------------------------------------*/
2659
2702
2704
2705public:
2710
2715
2720
2721private:
2722 static void initClass();
2723 static void exitClass();
2724
2725 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2726 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2727 virtual int getVertexAttribNum() { return value.getNum(); }
2728 virtual GLenum getVertexAttribType();
2729 virtual int getVertexAttribSize() { return 4; }
2730 virtual SbBool getVertexAttribIsToNormalize() { return rangeScaling.getValue(); }
2731
2732private:
2733 // Destructor
2735};
2736
2737/*----------------------------------------------------------------------------*/
2738
2782
2784
2785public:
2790
2795
2800
2801private:
2802 static void initClass();
2803 static void exitClass();
2804
2805 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2806 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2807 virtual int getVertexAttribNum() { return value.getNum(); }
2808 virtual GLenum getVertexAttribType();
2809 virtual int getVertexAttribSize() { return 4; }
2810 virtual SbBool getVertexAttribIsToNormalize() { return rangeScaling.getValue(); }
2811
2812private:
2813 // Destructor
2815};
2816
2817/*----------------------------------------------------------------------------*/
2818
2862
2864
2865public:
2870
2875
2880
2881private:
2882 static void initClass();
2883 static void exitClass();
2884
2885 virtual const char * getVertexAttribPtr(int) { return (char *)value.getValues(0); }
2886 virtual size_t getVertexAttribStride() { return value.getValueSize(); }
2887 virtual int getVertexAttribNum() { return value.getNum(); }
2888 virtual GLenum getVertexAttribType();
2889 virtual int getVertexAttribSize() { return 4; }
2890 virtual SbBool getVertexAttribIsToNormalize() { return rangeScaling.getValue(); }
2891
2892private:
2893 // Destructor
2895};
2896
2897/*----------------------------------------------------------------------------*/
2898
2937
2939
2940public:
2945
2950
2951private:
2952 virtual void doAction(SoAction *action);
2953
2954private:
2955 static void initClass();
2956 static void exitClass();
2957
2958 virtual const char * getVertexAttribPtr(int i=0);
2959 virtual size_t getVertexAttribStride() { return sizeof(SbMat); }
2960 virtual int getVertexAttribNum() { return value.getNum(); }
2961 virtual GLenum getVertexAttribType();
2962 virtual int getVertexAttribSize() { return 4; }
2963 virtual SbBool getVertexAttribIsToNormalize() { return FALSE; }
2964
2965private:
2966 // Destructor
2968
2969private:
2970 // Storing a list of the transposed matrices of the value field is necessary
2971 // because Open Inventor stores matrices in row major order whereas OpenGL
2972 // load them in column major order. Consequently, this list is necessary, to provide
2973 // values sequentially stored in column major order.
2974 SbMat * m_columnMajorOrderMatrices;
2975 int m_matricesNumber;
2976 void storeColumnMajorOrderMatrices(int startIndex);
2977};
2978
2979/*----------------------------------------------------------------------------*/
2980
2981//@TOBEWRAPPED
3020
3022
3023public:
3028
3033
3039
3045
3051
3058
3064
3065private:
3066 virtual void doAction(SoAction *action);
3067
3068private:
3069
3070 static void initClass();
3071 static void exitClass();
3072
3073 virtual size_t getVertexAttribOffset(int) { return (size_t)offset.getValue(); }
3074 virtual const char* getVertexAttribPtr(int);
3075
3076 virtual size_t getVertexAttribStride();
3077 virtual int getVertexAttribNum();
3078 virtual GLenum getVertexAttribType();
3079 virtual int getVertexAttribSize() { return components.getValue(); }
3080 virtual SbBool getVertexAttribIsToNormalize() { return shouldBeNormalized.getValue(); }
3081
3082private:
3083 // Destructor
3085};
3086
3087/*----------------------------------------------------------------------------*/
3088
3089
3090
3091#endif /*_SO_SHADER_PARAMETER_H_*/
3092
Abstract base class for all actions.
Definition SoAction.h:132
Performs a generic traversal of a scene graph or path.
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Counts number of...
Multiple-value field containing any number of floating point values.
Definition SoMFFloat.h:90
const float * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFFloat.h:92
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFFloat.h:92
Multiple-value field containing any number of int32_t integers.
Definition SoMFInt32.h:88
Multiple-value field containing any number of 4x4 matrices.
Definition SoMFMatrix.h:92
Multiple-value field containing any number of short integers.
Definition SoMFShort.h:89
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFShort.h:91
const short * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFShort.h:91
Multiple-value field containing any number of two-dimensional vectors.
Definition SoMFVec2f.h:89
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec2f.h:91
const SbVec2f * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec2f.h:91
Multiple-value field containing any number of two-dimensional vectors.
Definition SoMFVec2i32.h:63
Multiple-value field containing any number of two-dimensional vectors.
Definition SoMFVec2s.h:63
const SbVec2s * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec2s.h:65
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec2s.h:65
Multiple-value field containing any number of three-dimensional vectors.
Definition SoMFVec3f.h:181
const SbVec3f * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec3f.h:183
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec3f.h:183
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Multiple-value f...
Definition SoMFVec3i32.h:60
Multiple-value field containing any number of three-dimensional vectors.
Definition SoMFVec3s.h:64
const SbVec3s * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec3s.h:66
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec3s.h:66
Multiple-value field containing any number of four-dimensional vectors.
Definition SoMFVec4b.h:63
const SbVec4b * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec4b.h:65
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec4b.h:65
Multiple-value field containing any number of four-dimensional vectors.
Definition SoMFVec4f.h:90
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec4f.h:92
const SbVec4f * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec4f.h:92
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Multiple-value f...
Definition SoMFVec4i32.h:61
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec4i32.h:63
const SbVec4i32 * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec4i32.h:63
Multiple-value field containing any number of four-dimensional vectors.
Definition SoMFVec4s.h:63
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec4s.h:65
const SbVec4s * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec4s.h:65
Multiple-value field containing any number of four-dimensional vectors.
Definition SoMFVec4ub.h:63
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec4ub.h:65
const SbVec4ub * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec4ub.h:65
Multiple-value field containing any number of four-dimensional vectors.
const SbVec4ui32 * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
Multiple-value field containing any number of four-dimensional vectors.
Definition SoMFVec4us.h:62
virtual size_t getValueSize() const
Get size of the value.
Definition SoMFVec4us.h:64
const SbVec4us * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Definition SoMFVec4us.h:64
int getNum() const
Returns the number of values currently in the field.
Definition SoMField.h:146
Abstract base class for all database nodes.
Definition SoNode.h:145
Intersects objects with a ray cast into scene.
Field containing a single Boolean value.
Definition SoSFBool.h:79
SbBool getValue() const
Returns this field's value.
Definition SoSFBool.h:82
Field containing an enumerated value.
Definition SoSFEnum.h:89
Field containing a floating-point value.
Definition SoSFFloat.h:78
Field containing a int32_t integer.
Definition SoSFInt32.h:80
int32_t getValue() const
Returns this field's value.
Definition SoSFInt32.h:83
Field containing a 3x3 matrix.
Definition SoSFMatrix3.h:56
Field containing a 4x4 matrix.
Definition SoSFMatrix.h:86
Field containing a string.
Definition SoSFString.h:117
Field containing a two-dimensional vector.
Definition SoSFVec2f.h:78
Field containing a two-dimensional vector.
Definition SoSFVec2i32.h:52
Field containing a three-dimensional vector.
Definition SoSFVec3f.h:80
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Field containing...
Definition SoSFVec3i32.h:48
Field containing a homogeneous three-dimensional vector.
Definition SoSFVec4f.h:80
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Field containing...
Definition SoSFVec4i32.h:48
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract node cl...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoSFFloat value
Specifies the parameter's value.
SoShaderParameter1f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
Equality operator.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFInt32 value
Specifies the parameter's value.
SoShaderParameter1i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameter2f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec2f value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameter2i()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec2i32 value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoSFVec3f value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameter3f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec3i32 value
Specifies the parameter's value.
SoShaderParameter3i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameter4f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec4f value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoSFVec4i32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameter4i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoMFFloat value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameterArray1f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray1i()
Constructor.
SoMFInt32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoMFVec2f value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameterArray2f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray2i()
Constructor.
SoMFVec2i32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray3f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFVec3f value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoMFVec3i32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameterArray3i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFVec4f value
Specifies the parameter's value.
SoShaderParameterArray4f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray4i()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFVec4i32 value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
SoSFString name
Specifies the parameter's string name which is declared and used within high-level shading programs.
SoSFInt32 identifier
Specifies the parameter's integer name which is declared and used within low-level shading programs.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterMatrix3()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFMatrix3 value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFMatrix value
Specifies the parameter's value.
SoShaderParameterMatrixArray()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFMatrix value
Specifies the parameter's value.
SoShaderParameterMatrix()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Shader program p...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderStateMatrixParameter()
Constructor.
SoSFEnum matrixType
Specifies the type of the state matrix.
MatrixTransform
Matrix transformation possible values.
@ IDENTITY
The state matrix is unchanged (default).
@ INVERSE
Invert the state matrix.
@ INVERSE_TRANSPOSE
Invert the transposed state matrix.
@ TRANSPOSE
Transpose the state matrix.
MatrixType
Matrix type possible values.
@ MODELVIEW_PROJECTION
The state matrix is the modelview projection matrix (default value).
@ MODELVIEW
The state matrix is the modelview matrix.
@ TEXTURE
The state matrix is the current texture matrix.
@ PROJECTION
The state matrix is the the projection matrix.
SoSFEnum matrixTransform
Specifies the transformation to be applied to the state matrix.
Traversal state.
Definition SoState.h:74
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
virtual bool isEqual(const SoUniformShaderParameter *param) const =0
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter1f()
Constructor.
SoMFFloat value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter1s()
Constructor.
SoMFShort value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter2f()
Constructor.
SoMFVec2f value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec2s value
Specifies the parameter's values.
SoVertexShaderParameter2s()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec3f value
Specifies the parameter's values.
SoVertexShaderParameter3f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec3s value
Specifies the parameter's values.
SoVertexShaderParameter3s()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec4b value
Specifies the parameter's values.
SoVertexShaderParameter4b()
Constructor.
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec4f value
Specifies the parameter's values.
SoVertexShaderParameter4f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4i()
Constructor.
SoMFVec4i32 value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4s()
Constructor.
SoMFVec4s value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter4ub()
Constructor.
SoMFVec4ub value
Specifies the parameter's values.
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4ui()
Constructor.
SoMFVec4ui32 value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec4us value
Specifies the parameter's values.
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4us()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFInt32 stride
Specifies the byte offset between consecutive generic vertex parameter.
SoSFBufferObject value
Specifies the parameter's values.
SoVertexShaderParameterBufferObject()
Constructor.
SoSFInt32 components
Specifies the number of components per generic vertex parameter.
SoSFEnum type
Specifies the data type from the class SbDataType of each generic vertex parameter component.
SoSFBool shouldBeNormalized
Specifies if the fixed-point data in the buffer object should be normalized when they are accessed.
SoSFInt32 offset
Offset in bytes to the first parameter within the buffer.
<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> Vertex shader pa...
SoMFMatrix value
Specifies the parameter's values.
SoVertexShaderParameterMatrix()
Constructor.
int SbBool
Boolean type.
Definition SbBase.h:87