16 #ifndef SURGSIM_DATASTRUCTURES_IMAGE_INL_H
17 #define SURGSIM_DATASTRUCTURES_IMAGE_INL_H
22 namespace DataStructures
33 m_data(new T[width * height * channels])
39 Image<T>::Image(
size_t width,
size_t height,
size_t channels,
const T*
const data) :
40 m_data(new T[width * height * channels])
43 std::copy(data, data + width * height * channels,
m_data.get());
48 Image<T>::Image(
size_t width,
size_t height,
size_t channels,
const D*
const data) :
49 m_data(new T[width * height * channels])
52 Eigen::Map<const Eigen::Matrix<D, Eigen::Dynamic, 1>> theirData(data, width * height * channels);
53 Eigen::Map<typename ImageBase<T>::VectorType, Eigen::Unaligned> myData(
m_data.get(), width * height * channels);
54 myData = theirData.template cast<T>();
62 m_data = std::unique_ptr<T[]>(
new T[size]);
63 std::copy(other.
m_data.get(), other.
m_data.get() + size, m_data.get());
70 *
this = std::move(other);
80 if (newDataSize != oldDataSize)
82 m_data.reset(
new T[newDataSize]);
85 std::copy(other.
m_data.get(), other.
m_data.get() + newDataSize, m_data.get());
95 m_data = std::move(other.m_data);
98 other.setSize(0, 0, 0);
123 #endif //SURGSIM_DATASTRUCTURES_IMAGE_INL_H