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 _SB_KERNEL_3I32_H_
00025 #define _SB_KERNEL_3I32_H_
00026
00027 #include <ImageViz/SoImageViz.h>
00028 #include <Inventor/SbVec.h>
00029 #include <Inventor/SbDataType.h>
00030
00045 class SbKernel3i32
00046 {
00047 public:
00051 SbKernel3i32();
00052
00057 SbKernel3i32(size_t numCols, size_t numRows, size_t numSlices);
00058
00063 SbKernel3i32(const SbVec3i32& size);
00064
00068 ~SbKernel3i32();
00069
00074 SbVec3i32 getSize() const;
00075
00079 size_t getNumRows() const;
00080
00084 size_t getNumCols() const;
00085
00089 size_t getNumSlices() const;
00090
00092
00101 void setSize(size_t numCols, size_t numRows, size_t numSlices);
00102 void setSize(const SbVec3i32& dimension);
00104
00111 int32_t getValue(int indexCol, int indexRow, int indexSlice) const;
00112
00119 void setValue(int indexCol, int indexRow, int indexSlice, int32_t value);
00120
00132 int32_t& operator()(int i, int j, int k);
00133
00145 const int32_t& operator()(int i, int j, int k) const ;
00146
00150 friend int operator ==(const SbKernel3i32 &k1, const SbKernel3i32 &k2);
00151
00155 friend int operator !=(const SbKernel3i32 &k1, const SbKernel3i32 &k2)
00156 { return !(k1 == k2); }
00157
00158 private:
00160 std::vector<int32_t> m_kernelsValues;
00161 size_t m_numRows;
00162 size_t m_numCols;
00163 size_t m_numSlices;
00164 };
00165
00166 #endif