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
00044 class SbKernel3i32
00045 {
00046 public:
00050 SbKernel3i32();
00051
00056 SbKernel3i32(size_t numCols, size_t numRows, size_t numSlices);
00057
00062 SbKernel3i32(const SbVec3i32& size);
00063
00067 ~SbKernel3i32();
00068
00073 SbVec3i32 getSize() const;
00074
00078 size_t getNumRows() const;
00079
00083 size_t getNumCols() const;
00084
00088 size_t getNumSlices() const;
00089
00091
00100 void setSize(size_t numCols, size_t numRows, size_t numSlices);
00101 void setSize(const SbVec3i32& dimension);
00103
00110 int32_t getValue(int indexCol, int indexRow, int indexSlice) const;
00111
00118 void setValue(int indexCol, int indexRow, int indexSlice, int32_t value);
00119
00131 int32_t& operator()(int i, int j, int k);
00132
00144 const int32_t& operator()(int i, int j, int k) const ;
00145
00149 friend int operator ==(const SbKernel3i32 &k1, const SbKernel3i32 &k2);
00150
00154 friend int operator !=(const SbKernel3i32 &k1, const SbKernel3i32 &k2)
00155 { return !(k1 == k2); }
00156
00157 private:
00159 std::vector<int32_t> m_kernelsValues;
00160 size_t m_numRows;
00161 size_t m_numCols;
00162 size_t m_numSlices;
00163 };
00164
00165 #endif