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_VEC4US_
00025 #define _SO_MF_VEC4US_
00026
00027 #include <Inventor/fields/SoSubField.h>
00028 #include <Inventor/SbLinear.h>
00029
00031
00032
00033
00035
00064 class SoMFVec4us : public SoMField {
00065
00066 SO_MFIELD_HEADER(SoMFVec4us, SbVec4us, const SbVec4us &);
00067
00068 SO_MFIELD_SETVALUESPOINTER_HEADER(unsigned short);
00069 SO_MFIELD_SETVALUESPOINTER_HEADER(SbVec4us);
00070
00071 SO_FIELD_SUPPORT_MEMOBJ();
00072
00073 public:
00074
00075
00076
00077
00090 void setValues(int start, int num, const unsigned short xyzw[][4]);
00091
00098 void set1Value(int index, unsigned short x, unsigned short y, unsigned short z, unsigned short w);
00099
00106 void set1Value(int index, const unsigned short xyzw[4]);
00107
00113 void setValue(unsigned short x, unsigned short y, unsigned short z, unsigned short w);
00114
00120 void setValue(const unsigned short xyzw[4]);
00121
00128 void set1Value(int index, const SbVec4f &vec4f);
00129
00135 void setValue(const SbVec4f &vec4f);
00136
00144 void setValues(int start, int num, const SbVec4f *vec4f);
00145
00146 private:
00147 static void initClass();
00148 static void exitClass();
00149 virtual void writeBinaryValues(SoOutput*, int , int ) const;
00150 virtual SbBool readBinaryValues(SoInput*, int, int );
00151
00152 private:
00153 virtual void writeBinaryValues(SoOutput *out) const;
00154 virtual SbBool readBinaryValues(SoInput *in, int numToRead);
00155
00156 };
00157
00158 #endif
00159
00160
00161