00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SO_MF_VEC4UB_
00025 #define _SO_MF_VEC4UB_
00026
00027 #include <Inventor/fields/SoSubField.h>
00028 #include <Inventor/SbLinear.h>
00029
00031
00032
00033
00035
00065 class SoMFVec4ub : public SoMField {
00066
00067 SO_MFIELD_HEADER(SoMFVec4ub, SbVec4ub, const SbVec4ub &);
00068
00069 SO_MFIELD_SETVALUESPOINTER_HEADER(unsigned char);
00070 SO_MFIELD_SETVALUESPOINTER_HEADER(SbVec4ub);
00071
00072 SO_FIELD_SUPPORT_MEMOBJ();
00073
00074 public:
00075
00076
00077
00078
00091 void setValues(int start, int num, const unsigned char xyzw[][4]);
00092
00099 void set1Value(int index, unsigned char x, unsigned char y, unsigned char z, unsigned char w);
00100
00107 void set1Value(int index, const unsigned char xyzw[4]);
00108
00114 void setValue(unsigned char x, unsigned char y, unsigned char z, unsigned char w);
00115
00121 void setValue(const unsigned char xyzw[4]);
00122
00129 void set1Value(int index, const SbVec4f &vec4f);
00130
00136 void setValue(const SbVec4f &vec4f);
00137
00145 void setValues(int start, int num, const SbVec4f *vec4f);
00146
00147 private:
00148 static void initClass();
00149 static void exitClass();
00150 virtual void writeBinaryValues(SoOutput*, int , int ) const;
00151 virtual SbBool readBinaryValues( SoInput*, int, int );
00152
00153 private:
00154 virtual void writeBinaryValues(SoOutput *out) const;
00155 virtual SbBool readBinaryValues(SoInput *in, int numToRead);
00156
00157 };
00158
00159 #endif
00160
00161
00162