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_SF_ARRAY_2D_
00025 #define _SO_SF_ARRAY_2D_
00026
00027 #include <Inventor/fields/SoSubField.h>
00028 #include <Inventor/fields/SoSFImage.h>
00029 #include <Inventor/fields/SoSFArray.h>
00030
00031 class SoMemoryObject;
00032
00114 class SoSFArray2D : public SoSFArray
00115 {
00116
00117
00118 SO_SFIELD_REQUIRED_HEADER(SoSFArray2D);
00119 SO_SFIELD_CONSTRUCTOR_HEADER(SoSFArray2D);
00120
00121 public:
00126 void setValue(const SbVec2s &size, DataType dataType,
00127 const void* data, CopyPolicy copy=COPY);
00128
00133 void setValue(const SbVec2i32 &size, DataType dataType,
00134 const void* data, CopyPolicy copy=COPY);
00135
00141 const void* getValue(SbVec2s &size, DataType &dataType) const ;
00142
00148 const void* getValue(SbVec2i32 &size, DataType &dataType) const ;
00149
00160 void* startEditing(SbVec2s &size, DataType &dataType);
00161
00172 void* startEditing(SbVec2i32 &size, DataType &dataType);
00173
00178 inline SbVec2i32 getSize() const;
00179
00180 private:
00181 using SoSFArray::setValue;
00182 using SoSFArray::getValue;
00183 using SoSFArray::startEditing;
00184
00185 private:
00186 static void initClass();
00187 static void exitClass();
00188 };
00189
00190
00191
00192 SbVec2i32
00193 SoSFArray2D::getSize() const
00194 {
00195 return SbVec2i32(m_size[0], m_size[1]);
00196 }
00197
00198 #endif
00199
00200
00201