72template <
typename T,
unsigned int RowN,
unsigned int ColN>
92 if( &
rhs ==
this )
return *
this;
432 UNSIGNED_INT = GL_UNSIGNED_INT,
573 virtual void setName(
const std::string& name );
604 explicit Uniform(
const char* name,
float f );
605 explicit Uniform(
const char* name,
double d );
607 explicit Uniform(
const char* name,
unsigned int ui );
609 explicit Uniform(
const char* name,
unsigned long long ull);
610 explicit Uniform(
const char* name,
long long ll );
636 Uniform(
const char* name,
int i0,
int i1,
int i2 );
637 Uniform(
const char* name,
int i0,
int i1,
int i2,
int i3 );
638 Uniform(
const char* name,
unsigned int ui0,
unsigned int ui1 );
639 Uniform(
const char* name,
unsigned int ui0,
unsigned int ui1,
unsigned int ui2 );
640 Uniform(
const char* name,
unsigned int ui0,
unsigned int ui1,
unsigned int ui2,
unsigned int ui3 );
641 Uniform(
const char* name,
bool b0,
bool b1 );
642 Uniform(
const char* name,
bool b0,
bool b1,
bool b2 );
643 Uniform(
const char* name,
bool b0,
bool b1,
bool b2,
bool b3 );
649 bool operator < (
const Uniform& rhs)
const {
return compare(rhs)<0; }
650 bool operator == (
const Uniform& rhs)
const {
return compare(rhs)==0; }
651 bool operator != (
const Uniform& rhs)
const {
return compare(rhs)!=0; }
678 inline unsigned int getNumParents()
const {
return static_cast<unsigned int>(_parents.size()); }
685 bool set(
unsigned int ui );
687 bool set(
unsigned long long ull );
713 bool set(
int i0,
int i1 );
714 bool set(
int i0,
int i1,
int i2 );
715 bool set(
int i0,
int i1,
int i2,
int i3 );
716 bool set(
unsigned int ui0,
unsigned int ui1 );
717 bool set(
unsigned int ui0,
unsigned int ui1,
unsigned int ui2 );
718 bool set(
unsigned int ui0,
unsigned int ui1,
unsigned int ui2,
unsigned int ui3 );
719 bool set(
bool b0,
bool b1 );
720 bool set(
bool b0,
bool b1,
bool b2 );
721 bool set(
bool b0,
bool b1,
bool b2,
bool b3 );
724 bool get(
float& f )
const;
725 bool get(
double& d )
const;
727 bool get(
unsigned int& ui )
const;
728 bool get(
bool& b )
const;
729 bool get(
unsigned long long & ull )
const;
730 bool get(
long long& ll )
const;
755 bool get(
int& i0,
int& i1 )
const;
756 bool get(
int& i0,
int& i1,
int& i2 )
const;
757 bool get(
int& i0,
int& i1,
int& i2,
int& i3 )
const;
758 bool get(
unsigned int& ui0,
unsigned int& ui1 )
const;
759 bool get(
unsigned int& ui0,
unsigned int& ui1,
unsigned int& ui2 )
const;
760 bool get(
unsigned int& ui0,
unsigned int& ui1,
unsigned int& ui2,
unsigned int& ui3 )
const;
761 bool get(
bool& b0,
bool& b1 )
const;
762 bool get(
bool& b0,
bool& b1,
bool& b2 )
const;
763 bool get(
bool& b0,
bool& b1,
bool& b2,
bool& b3 )
const;
771 bool setElement(
unsigned int index,
unsigned long long ull );
798 bool setElement(
unsigned int index,
int i0,
int i1,
int i2 );
799 bool setElement(
unsigned int index,
int i0,
int i1,
int i2,
int i3 );
800 bool setElement(
unsigned int index,
unsigned int ui0,
unsigned int ui1 );
801 bool setElement(
unsigned int index,
unsigned int ui0,
unsigned int ui1,
unsigned int ui2 );
802 bool setElement(
unsigned int index,
unsigned int ui0,
unsigned int ui1,
unsigned int ui2,
unsigned int ui3 );
804 bool setElement(
unsigned int index,
bool b0,
bool b1,
bool b2 );
805 bool setElement(
unsigned int index,
bool b0,
bool b1,
bool b2,
bool b3 );
811 bool getElement(
unsigned int index,
unsigned int& ui )
const;
813 bool getElement(
unsigned int index,
unsigned long long & ull )
const;
839 bool getElement(
unsigned int index,
int& i0,
int& i1 )
const;
840 bool getElement(
unsigned int index,
int& i0,
int& i1,
int& i2 )
const;
841 bool getElement(
unsigned int index,
int& i0,
int& i1,
int& i2,
int& i3 )
const;
842 bool getElement(
unsigned int index,
unsigned int& ui0,
unsigned int& ui1 )
const;
843 bool getElement(
unsigned int index,
unsigned int& ui0,
unsigned int& ui1,
unsigned int& ui2 )
const;
844 bool getElement(
unsigned int index,
unsigned int& ui0,
unsigned int& ui1,
unsigned int& ui2,
unsigned int& ui3 )
const;
845 bool getElement(
unsigned int index,
bool& b0,
bool& b1 )
const;
846 bool getElement(
unsigned int index,
bool& b0,
bool& b1,
bool& b2 )
const;
847 bool getElement(
unsigned int index,
bool& b0,
bool& b1,
bool& b2,
bool& b3 )
const;
875 inline void dirty() { ++_modifiedCount; }
#define GL_DOUBLE_MAT2x3
Definition GLDefines:339
#define GL_IMAGE_2D_RECT
Definition GLDefines:362
#define GL_INT_VEC3
Definition GLDefines:104
#define GL_FLOAT_MAT3x4
Definition GLDefines:160
#define GL_DOUBLE_MAT4x2
Definition GLDefines:343
#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
Definition GLDefines:380
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
Definition GLDefines:391
#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY
Definition GLDefines:387
#define GL_BOOL_VEC3
Definition GLDefines:108
#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT
Definition GLDefines:41
#define GL_UNSIGNED_INT_IMAGE_CUBE
Definition GLDefines:385
#define GL_INT_SAMPLER_CUBE_MAP_ARRAY
Definition GLDefines:436
#define GL_INT_IMAGE_2D_ARRAY
Definition GLDefines:377
#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
Definition GLDefines:389
#define GL_SAMPLER_2D
Definition GLDefines:134
#define GL_INT_IMAGE_2D_MULTISAMPLE
Definition GLDefines:379
#define GL_BOOL_VEC4
Definition GLDefines:109
#define GL_INT_SAMPLER_2D_MULTISAMPLE
Definition GLDefines:350
#define GL_DOUBLE_VEC3
Definition GLDefines:334
#define GL_SAMPLER_CUBE_MAP_ARRAY
Definition GLDefines:434
#define GL_DOUBLE_MAT2x4
Definition GLDefines:340
#define GL_UNSIGNED_INT_IMAGE_BUFFER
Definition GLDefines:386
#define GL_UNSIGNED_INT_SAMPLER_3D_EXT
Definition GLDefines:276
#define GL_IMAGE_CUBE
Definition GLDefines:363
#define GL_IMAGE_1D_ARRAY
Definition GLDefines:365
#define GL_SAMPLER_1D
Definition GLDefines:139
#define GL_INT_VEC2
Definition GLDefines:103
#define GL_UNSIGNED_INT_VEC4_EXT
Definition GLDefines:265
#define GL_IMAGE_2D_ARRAY
Definition GLDefines:366
#define GL_FLOAT_MAT2x3
Definition GLDefines:157
#define GL_IMAGE_2D_MULTISAMPLE
Definition GLDefines:368
#define GL_DOUBLE_VEC4
Definition GLDefines:335
#define GL_UNSIGNED_INT_IMAGE_1D
Definition GLDefines:381
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT
Definition GLDefines:278
#define GL_FLOAT_VEC3
Definition GLDefines:101
#define GL_IMAGE_BUFFER
Definition GLDefines:364
#define GL_UNSIGNED_INT_SAMPLER_2D_EXT
Definition GLDefines:275
#define GL_DOUBLE_MAT3x2
Definition GLDefines:341
#define GL_INT_SAMPLER_CUBE_EXT
Definition GLDefines:269
#define GL_IMAGE_3D
Definition GLDefines:361
#define GL_BOOL_VEC2
Definition GLDefines:107
#define GL_DOUBLE_VEC2
Definition GLDefines:333
#define GL_BOOL
Definition GLDefines:106
#define GL_SAMPLER_1D_SHADOW
Definition GLDefines:146
#define GL_UNSIGNED_INT_IMAGE_2D_RECT
Definition GLDefines:384
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT
Definition GLDefines:280
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
Definition GLDefines:351
#define GL_SAMPLER_BUFFER_EXT
Definition GLDefines:259
#define GL_DOUBLE_MAT3
Definition GLDefines:337
#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY
Definition GLDefines:352
#define GL_SAMPLER_2D_RECT_SHADOW
Definition GLDefines:396
#define GL_FLOAT_MAT3
Definition GLDefines:111
#define GL_SAMPLER_2D_RECT
Definition GLDefines:395
#define GL_INT_IMAGE_CUBE_MAP_ARRAY
Definition GLDefines:378
#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
Definition GLDefines:353
#define GL_FLOAT_VEC4
Definition GLDefines:102
#define GL_INT_IMAGE_CUBE
Definition GLDefines:374
#define GL_INT_IMAGE_1D_ARRAY
Definition GLDefines:376
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT
Definition GLDefines:281
#define GL_FLOAT_MAT4x2
Definition GLDefines:161
#define GL_UNSIGNED_INT_VEC3_EXT
Definition GLDefines:264
#define GL_INT_SAMPLER_1D_ARRAY_EXT
Definition GLDefines:271
#define GL_INT_SAMPLER_3D_EXT
Definition GLDefines:268
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
Definition GLDefines:390
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
Definition GLDefines:354
#define GL_INT_IMAGE_3D
Definition GLDefines:372
#define GL_INT_SAMPLER_2D_RECT_EXT
Definition GLDefines:270
#define GL_DOUBLE_MAT4x3
Definition GLDefines:344
#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
Definition GLDefines:437
#define GL_IMAGE_2D
Definition GLDefines:360
#define GL_INT64_ARB
Definition GLDefines:561
#define GL_UNSIGNED_INT_IMAGE_2D
Definition GLDefines:382
#define GL_INT_IMAGE_BUFFER
Definition GLDefines:375
#define GL_INT_SAMPLER_1D_EXT
Definition GLDefines:266
#define GL_SAMPLER_2D_MULTISAMPLE
Definition GLDefines:349
#define GL_INT_IMAGE_2D_RECT
Definition GLDefines:373
#define GL_FLOAT_MAT3x2
Definition GLDefines:159
#define GL_INT_SAMPLER_BUFFER_EXT
Definition GLDefines:273
#define GL_FLOAT_MAT2
Definition GLDefines:110
#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT
Definition GLDefines:277
#define GL_UNSIGNED_INT_VEC2_EXT
Definition GLDefines:263
#define GL_FLOAT_MAT2x4
Definition GLDefines:158
#define GL_INT_IMAGE_1D
Definition GLDefines:370
#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY
Definition GLDefines:388
#define GL_SAMPLER_2D_ARRAY_EXT
Definition GLDefines:39
#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
Definition GLDefines:435
#define GL_UNSIGNED_INT_IMAGE_3D
Definition GLDefines:383
#define GL_DOUBLE_MAT3x4
Definition GLDefines:342
#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT
Definition GLDefines:40
#define GL_SAMPLER_3D
Definition GLDefines:142
#define GL_INT_SAMPLER_2D_ARRAY_EXT
Definition GLDefines:272
#define GL_DOUBLE_MAT4
Definition GLDefines:338
#define GL_SAMPLER_2D_SHADOW
Definition GLDefines:147
#define GL_FLOAT_VEC2
Definition GLDefines:100
#define GL_INT_IMAGE_2D
Definition GLDefines:371
#define GL_INT_VEC4
Definition GLDefines:105
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT
Definition GLDefines:279
#define GL_UNSIGNED_INT64_ARB
Definition GLDefines:562
#define GL_DOUBLE_MAT2
Definition GLDefines:336
#define GL_INT_SAMPLER_2D_EXT
Definition GLDefines:267
#define GL_SAMPLER_CUBE
Definition GLDefines:135
#define GL_SAMPLER_1D_ARRAY_EXT
Definition GLDefines:38
#define GL_FLOAT_MAT4
Definition GLDefines:112
#define GL_UNSIGNED_INT_SAMPLER_1D_EXT
Definition GLDefines:274
#define GL_IMAGE_2D_MULTISAMPLE_ARRAY
Definition GLDefines:369
#define GL_SAMPLER_CUBE_SHADOW_EXT
Definition GLDefines:262
#define GL_FLOAT_MAT4x3
Definition GLDefines:162
#define GL_IMAGE_1D
Definition GLDefines:359
#define GL_IMAGE_CUBE_MAP_ARRAY
Definition GLDefines:367
Definition GLExtensions:169
~Matrix2Template()
Definition Uniform:134
Matrix2Template()
Definition Uniform:126
MatrixTemplate< T, 2, 2 > base_class
Definition Uniform:121
void makeIdentity()
Definition Uniform:145
base_class::value_type value_type
Definition Uniform:122
void set(value_type a00, value_type a01, value_type a10, value_type a11)
Definition Uniform:138
Matrix2Template(value_type a00, value_type a01, value_type a10, value_type a11)
Definition Uniform:128
Matrix2Template(const Matrix2Template &mat)
Definition Uniform:127
Matrix2x3Template(value_type a00, value_type a01, value_type a02, value_type a10, value_type a11, value_type a12)
Definition Uniform:163
Matrix2x3Template(const Matrix2x3Template &mat)
Definition Uniform:162
~Matrix2x3Template()
Definition Uniform:169
base_class::value_type value_type
Definition Uniform:157
Matrix2x3Template()
Definition Uniform:161
MatrixTemplate< T, 2, 3 > base_class
Definition Uniform:156
void set(value_type a00, value_type a01, value_type a02, value_type a10, value_type a11, value_type a12)
Definition Uniform:173
base_class::value_type value_type
Definition Uniform:186
Matrix2x4Template(const Matrix2x4Template &mat)
Definition Uniform:191
Matrix2x4Template(value_type a00, value_type a01, value_type a02, value_type a03, value_type a10, value_type a11, value_type a12, value_type a13)
Definition Uniform:192
~Matrix2x4Template()
Definition Uniform:198
void set(value_type a00, value_type a01, value_type a02, value_type a03, value_type a10, value_type a11, value_type a12, value_type a13)
Definition Uniform:202
MatrixTemplate< T, 2, 4 > base_class
Definition Uniform:185
Matrix2x4Template()
Definition Uniform:190
base_class::value_type value_type
Definition Uniform:247
Matrix3Template()
Definition Uniform:250
void makeIdentity()
Definition Uniform:273
void set(value_type a00, value_type a01, value_type a02, value_type a10, value_type a11, value_type a12, value_type a20, value_type a21, value_type a22)
Definition Uniform:264
~Matrix3Template()
Definition Uniform:260
MatrixTemplate< T, 3, 3 > base_class
Definition Uniform:246
Matrix3Template(const Matrix3Template &mat)
Definition Uniform:251
Matrix3Template(value_type a00, value_type a01, value_type a02, value_type a10, value_type a11, value_type a12, value_type a20, value_type a21, value_type a22)
Definition Uniform:252
Matrix3x2Template(value_type a00, value_type a01, value_type a10, value_type a11, value_type a20, value_type a21)
Definition Uniform:220
Matrix3x2Template(const Matrix3x2Template &mat)
Definition Uniform:219
void set(value_type a00, value_type a01, value_type a10, value_type a11, value_type a20, value_type a21)
Definition Uniform:232
MatrixTemplate< T, 3, 2 > base_class
Definition Uniform:214
~Matrix3x2Template()
Definition Uniform:228
Matrix3x2Template()
Definition Uniform:218
base_class::value_type value_type
Definition Uniform:215
Matrix3x4Template(const Matrix3x4Template &mat)
Definition Uniform:290
MatrixTemplate< T, 3, 4 > base_class
Definition Uniform:285
void set(value_type a00, value_type a01, value_type a02, value_type a03, value_type a10, value_type a11, value_type a12, value_type a13, value_type a20, value_type a21, value_type a22, value_type a23)
Definition Uniform:303
~Matrix3x4Template()
Definition Uniform:299
base_class::value_type value_type
Definition Uniform:286
Matrix3x4Template(value_type a00, value_type a01, value_type a02, value_type a03, value_type a10, value_type a11, value_type a12, value_type a13, value_type a20, value_type a21, value_type a22, value_type a23)
Definition Uniform:291
Matrix3x4Template()
Definition Uniform:289
Matrix4x2Template(const Matrix4x2Template &mat)
Definition Uniform:322
void set(value_type a00, value_type a01, value_type a10, value_type a11, value_type a20, value_type a21, value_type a30, value_type a31)
Definition Uniform:337
MatrixTemplate< T, 4, 2 > base_class
Definition Uniform:317
Matrix4x2Template()
Definition Uniform:321
Matrix4x2Template(value_type a00, value_type a01, value_type a10, value_type a11, value_type a20, value_type a21, value_type a30, value_type a31)
Definition Uniform:323
~Matrix4x2Template()
Definition Uniform:333
base_class::value_type value_type
Definition Uniform:318
MatrixTemplate< T, 4, 3 > base_class
Definition Uniform:353
base_class::value_type value_type
Definition Uniform:354
void set(value_type a00, value_type a01, value_type a02, value_type a10, value_type a11, value_type a12, value_type a20, value_type a21, value_type a22, value_type a30, value_type a31, value_type a32)
Definition Uniform:373
Matrix4x3Template(const Matrix4x3Template &mat)
Definition Uniform:358
~Matrix4x3Template()
Definition Uniform:369
Matrix4x3Template(value_type a00, value_type a01, value_type a02, value_type a10, value_type a11, value_type a12, value_type a20, value_type a21, value_type a22, value_type a30, value_type a31, value_type a32)
Definition Uniform:359
Matrix4x3Template()
Definition Uniform:357
value_type * ptr()
Definition Uniform:105
const value_type * ptr() const
Definition Uniform:106
value_type & operator[](int i)
Definition Uniform:108
~MatrixTemplate()
Definition Uniform:85
T value_type
Definition Uniform:80
MatrixTemplate()
Definition Uniform:84
@ col_count
Definition Uniform:76
value_type operator()(int row, int col) const
Definition Uniform:88
@ row_count
Definition Uniform:77
MatrixTemplate & operator=(const MatrixTemplate &rhs)
Definition Uniform:90
void reset()
Definition Uniform:111
@ value_count
Definition Uniform:78
void set(const MatrixTemplate &rhs)
Definition Uniform:97
value_type _mat[row_count][col_count]
Definition Uniform:114
value_type & operator()(int row, int col)
Definition Uniform:87
void set(value_type const *const ptr)
Definition Uniform:99
A concrete array holding elements of type T.
Definition Array:243
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
Matrix3x2Template< float > Matrix3x2
Definition Uniform:389
Matrix2Template< float > Matrix2
Definition Uniform:385
Matrix2x4Template< double > Matrix2x4d
Definition Uniform:399
Matrix2Template< double > Matrix2d
Definition Uniform:397
Matrix3Template< double > Matrix3d
Definition Uniform:402
Matrix2x4Template< float > Matrix2x4
Definition Uniform:387
Matrix4x3Template< double > Matrix4x3d
Definition Uniform:406
Matrix2x3Template< float > Matrix2x3
Definition Uniform:386
Matrix3x2Template< double > Matrix3x2d
Definition Uniform:401
Matrix4x3Template< float > Matrix4x3
Definition Uniform:394
Matrix3x4Template< float > Matrix3x4
Definition Uniform:391
Matrix2x3Template< double > Matrix2x3d
Definition Uniform:398
Matrix4x2Template< double > Matrix4x2d
Definition Uniform:405
Matrix3Template< float > Matrix3
Definition Uniform:390
Matrix3x4Template< double > Matrix3x4d
Definition Uniform:403
Matrix4x2Template< float > Matrix4x2
Definition Uniform:393
#define OSG_EXPORT
Definition osg/Export:39