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
);
48 void resize(size_t xdim
, size_t ydim
)
52 || ydim
!= this->ydim
){
55 this->data
= new T
[xdim
* ydim
];
64 if(this->xdim
&& this->ydim
&& this->data
)
65 ::memset(this->data
, 0, sizeof(T
) * this->xdim
* this->ydim
);
68 void attach_to_buffer(T
*data
, size_t xdim
, size_t ydim
)
70 if(_own_data
&& this->data
)
75 this->_own_data
= false;
78 void attach_to_const_buffer(const T
* data
, size_t xdim
, size_t ydim
)
80 if(_own_data
&& this->data
)
84 this->data
= const_cast<T
*>(data
);
85 this->_own_data
= false;
88 void set_data_from_buffer(T
const *data
, size_t xdim
, size_t ydim
)
90 ::memcpy(this->data
, data
, xdim
* ydim
* sizeof(T
));