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
00063 class SoMFVec4ub : public SoMField {
00064
00065 SO_MFIELD_HEADER(SoMFVec4ub, SbVec4ub, const SbVec4ub &);
00066
00067 SO_MFIELD_SETVALUESPOINTER_HEADER(unsigned char);
00068 SO_MFIELD_SETVALUESPOINTER_HEADER(SbVec4ub);
00069
00070 SO_FIELD_SUPPORT_MEMOBJ();
00071
00072 public:
00073
00074
00075
00076
00089 void setValues(int start, int num, const unsigned char xyzw[][4]);
00090
00097 void set1Value(int index, unsigned char x, unsigned char y, unsigned char z, unsigned char w);
00098
00105 void set1Value(int index, const unsigned char xyzw[4]);
00106
00112 void setValue(unsigned char x, unsigned char y, unsigned char z, unsigned char w);
00113
00119 void setValue(const unsigned char xyzw[4]);
00120
00127 void set1Value(int index, const SbVec4f &vec4f);
00128
00134 void setValue(const SbVec4f &vec4f);
00135
00143 void setValues(int start, int num, const SbVec4f *vec4f);
00144
00145 private:
00146 static void initClass();
00147 static void exitClass();
00148 virtual void writeBinaryValues(SoOutput*, int , int ) const;
00149 virtual SbBool readBinaryValues( SoInput*, int, int );
00150
00151 private:
00152 virtual void writeBinaryValues(SoOutput *out) const;
00153 virtual SbBool readBinaryValues(SoInput *in, int numToRead);
00154
00155 };
00156
00157 #endif
00158
00159
00160