![]() |
kspaceFirstOrder3D-OMP 1.0
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
|
00001 00033 #ifndef BASEFLOATMATRIXDATA_H 00034 #define BASEFLOATMATRIXDATA_H 00035 00036 #include <MatrixClasses/BaseMatrix.h> 00037 00038 #include <Utils/DimensionSizes.h> 00039 00040 00041 00042 using namespace std; 00043 00044 00050 class TBaseFloatMatrix : public TBaseMatrix{ 00051 public: 00052 00054 TBaseFloatMatrix() : TBaseMatrix(), pTotalElementCount(0), pTotalAllocatedElementCount(0), 00055 pDimensionSizes(), pDataRowSize(0), p2DDataSliceSize (0), pMatrixData (NULL) 00056 {}; 00057 00058 00060 virtual TDimensionSizes GetDimensionSizes() const { 00061 return pDimensionSizes; 00062 } 00063 00065 virtual size_t GetTotalElementCount() const { 00066 return pTotalElementCount; 00067 }; 00068 00070 virtual size_t GetTotalAllocatedElementCount() const { 00071 return pTotalAllocatedElementCount; 00072 }; 00073 00074 00076 virtual ~TBaseFloatMatrix() {}; 00077 00078 00079 00081 virtual void CopyData(TBaseFloatMatrix & src); 00082 00083 00085 virtual void ZeroMatrix(); 00086 00088 virtual void ScalarDividedBy(const float scalar); 00089 00090 00092 virtual float* GetRawData() { 00093 return pMatrixData ; 00094 } 00095 00096 00097 protected: 00098 00100 size_t pTotalElementCount; 00102 size_t pTotalAllocatedElementCount; 00103 00105 struct TDimensionSizes pDimensionSizes; 00106 00108 size_t pDataRowSize; 00110 size_t p2DDataSliceSize; 00111 00113 float* pMatrixData; 00114 00115 00117 virtual void AllocateMemory(); 00118 00120 virtual void FreeMemory(); 00121 00122 00124 TBaseFloatMatrix(const TBaseFloatMatrix& src); 00126 TBaseFloatMatrix & operator =(const TBaseFloatMatrix& src); 00127 00128 00129 private: 00130 00131 };// end of class TBaseFloatMatrix 00132 //----------------------------------------------------------------------------- 00133 00134 #endif /* TBASEMATRIXDATA_H */ 00135