41 #ifndef __OPENFLUID_CORE_MATRIX_HPP__ 42 #define __OPENFLUID_CORE_MATRIX_HPP__ 66 bool allocate(
unsigned long ColsNbr,
unsigned long RowsNbr);
86 Matrix(
unsigned long ColsNbr,
unsigned long RowsNbr);
91 Matrix(
unsigned long ColsNbr,
unsigned long RowsNbr, T InitValue);
104 {
return m_ColsNbr; };
110 inline unsigned long getRowsNbr()
const {
return m_RowsNbr; };
117 {
return (m_ColsNbr * m_RowsNbr); };
122 inline unsigned long size()
const 123 {
return (m_ColsNbr * m_RowsNbr); };
130 {
return static_cast<T*
>(m_Data); };
135 void setData(T* Data,
unsigned long ColsNbr,
unsigned long RowsNbr);
140 T getElement(
unsigned long ColIndex,
unsigned long RowIndex)
const;
145 inline T
at(
unsigned long ColIndex,
unsigned long RowIndex)
const 146 {
return getElement(ColIndex,RowIndex); };
151 inline T
get(
unsigned long ColIndex,
unsigned long RowIndex)
const 152 {
return getElement(ColIndex,RowIndex); };
158 void setElement(
unsigned long ColIndex,
unsigned long RowIndex, T Element);
163 inline void set(
unsigned long ColIndex,
unsigned long RowIndex, T Element)
164 { setElement(ColIndex,RowIndex,Element); };
174 void fill(
const T& Val);
190 m_ColsNbr(0),m_RowsNbr(0)
264 if (ColsNbr > 0 && RowsNbr > 0)
266 m_Data =
new T[ColsNbr*RowsNbr];
291 std::copy(Data, Data + (ColsNbr*RowsNbr),
m_Data);
331 if (
this == &A)
return *
this;
353 m_Data[i*m_ColsNbr+j] = Val;
unsigned long getColsNbr() const
Definition: Matrix.hpp:103
void fill(const T &Val)
Definition: Matrix.hpp:349
Definition: Matrix.hpp:56
unsigned long getSize() const
Definition: Matrix.hpp:116
bool allocate(unsigned long ColsNbr, unsigned long RowsNbr)
Definition: Matrix.hpp:262
void clear()
Definition: Matrix.hpp:362
T * data() const
Definition: Matrix.hpp:129
unsigned long size() const
Definition: Matrix.hpp:122
unsigned long m_ColsNbr
Definition: Matrix.hpp:62
unsigned long getRowsNbr() const
Definition: Matrix.hpp:110
void setData(T *Data, unsigned long ColsNbr, unsigned long RowsNbr)
Definition: Matrix.hpp:284
Matrix()
Definition: Matrix.hpp:189
T * m_Data
Definition: Matrix.hpp:60
Definition: FrameworkException.hpp:50
Definition: ApplicationException.hpp:47
#define OPENFLUID_API
Definition: dllexport.hpp:87
virtual ~Matrix()
Definition: Matrix.hpp:96
unsigned long m_RowsNbr
Definition: Matrix.hpp:64
void setElement(unsigned long ColIndex, unsigned long RowIndex, T Element)
Definition: Matrix.hpp:314
T getElement(unsigned long ColIndex, unsigned long RowIndex) const
Definition: Matrix.hpp:300
Matrix< T > & operator=(const Matrix &A)
Definition: Matrix.hpp:328
T at(unsigned long ColIndex, unsigned long RowIndex) const
Definition: Matrix.hpp:145
void init()
Definition: Matrix.hpp:249