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
00113 class SoSFArray2D : public SoSFArray
00114 {
00115
00116
00117 SO_SFIELD_REQUIRED_HEADER(SoSFArray2D);
00118 SO_SFIELD_CONSTRUCTOR_HEADER(SoSFArray2D);
00119
00120 public:
00125 void setValue(const SbVec2s &size, DataType dataType,
00126 const void* data, CopyPolicy copy=COPY);
00127
00132 void setValue(const SbVec2i32 &size, DataType dataType,
00133 const void* data, CopyPolicy copy=COPY);
00134
00140 const void* getValue(SbVec2s &size, DataType &dataType) const ;
00141
00147 const void* getValue(SbVec2i32 &size, DataType &dataType) const ;
00148
00159 void* startEditing(SbVec2s &size, DataType &dataType);
00160
00171 void* startEditing(SbVec2i32 &size, DataType &dataType);
00172
00177 inline SbVec2i32 getSize() const;
00178
00179 private:
00180 using SoSFArray::setValue;
00181 using SoSFArray::getValue;
00182 using SoSFArray::startEditing;
00183
00184 private:
00185 static void initClass();
00186 static void exitClass();
00187 };
00188
00189
00190
00191 SbVec2i32
00192 SoSFArray2D::getSize() const
00193 {
00194 return SbVec2i32(m_size[0], m_size[1]);
00195 }
00196
00197 #endif
00198
00199
00200