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_VEC4I32_
00025 #define _SO_MF_VEC4I32_
00026
00027 #include <Inventor/fields/SoSubField.h>
00028 #include <Inventor/SbLinear.h>
00029
00061 class SoMFVec4i32 : public SoMField {
00062
00063 SO_MFIELD_HEADER(SoMFVec4i32, SbVec4i32, const SbVec4i32 &);
00064
00065 SO_MFIELD_SETVALUESPOINTER_HEADER(int32_t);
00066 SO_MFIELD_SETVALUESPOINTER_HEADER(SbVec4i32);
00067 SO_FIELD_SUPPORT_MEMOBJ();
00068
00069 public:
00070
00071
00072
00073
00086 void setValues(int start, int num, const int32_t xyzw[][4]);
00087 #ifdef _WIN32
00088
00092 void setValues(int start, int num, int32_t xyzw[][4]);
00093 #endif
00094
00100 void set1Value(int index, int32_t x, int32_t y, int32_t z, int32_t w);
00101
00108 void set1Value(int index, const int32_t xyzw[4]);
00109
00115 void setValue(int32_t x, int32_t y, int32_t z, int32_t w);
00116
00122 void setValue(const int32_t xyzw[4]);
00123
00130 void set1Value(int index, const SbVec4f &vec4f);
00131
00138 void set1Value(int index, const SbVec4d &vec4d);
00139
00145 void setValue(const SbVec4f &vec4f);
00146
00152 void setValue(const SbVec4d &vec4d);
00153
00161 void setValues(int start, int num, const SbVec4f *vec4f);
00162
00170 void setValues(int start, int num, const SbVec4d *vec4d);
00171
00172 private:
00173 static void initClass();
00174 static void exitClass();
00175 virtual void writeBinaryValues(SoOutput*, int , int ) const;
00176 virtual SbBool readBinaryValues( SoInput*, int, int );
00177
00178 private:
00179
00180 virtual void writeBinaryValues(SoOutput *out) const;
00181 virtual SbBool readBinaryValues(SoInput *in, int numToRead);
00182
00183 };
00184
00185 #endif
00186
00187
00188