12 this->_own_data
= true;
15 Matrix(size_t xdim
, size_t ydim
)
19 this->data
= new T
[xdim
* ydim
];
20 this->_own_data
= true;
23 Matrix(Matrix
const & m
)
27 _own_data
= m
._own_data
;
29 this->data
= new T
[this->xdim
* this->ydim
];
30 ::memcpy(this->data
, m
.data
, sizeof(*m
.data
) * this->xdim
* this->ydim
);
36 Matrix
& operator= (Matrix
const & m
)
40 this->_own_data
= m
._own_data
;
42 this->data
= new T
[this->xdim
* this->ydim
];
43 ::memcpy(this->data
, m
.data
, sizeof(*m
.data
) * this->xdim
* this->ydim
);
62 void resize(size_t xdim
, size_t ydim
)
66 || ydim
!= this->ydim
){
69 this->data
= new T
[xdim
* ydim
];
78 if(this->xdim
&& this->ydim
&& this->data
)
79 ::memset(this->data
, 0, sizeof(T
) * this->xdim
* this->ydim
);
82 void attach_to_buffer(T
*data
, size_t xdim
, size_t ydim
)
84 if(_own_data
&& this->data
)
89 this->_own_data
= false;
92 void attach_to_const_buffer(const T
* data
, size_t xdim
, size_t ydim
)
94 if(_own_data
&& this->data
)
98 this->data
= const_cast<T
*>(data
);
99 this->_own_data
= false;
102 void set_data_from_buffer(T
const *data
, size_t xdim
, size_t ydim
)
104 ::memcpy(this->data
, data
, xdim
* ydim
* sizeof(T
));