38 #ifndef OME_BIOFORMATS_PIXELBUFFER_H
39 #define OME_BIOFORMATS_PIXELBUFFER_H
48 #define BOOST_DISABLE_ASSERTS 1
49 #include <boost/multi_array.hpp>
51 #include <ome/bioformats/PixelProperties.h>
59 #include <ome/xml/model/enums/DimensionOrder.h>
114 typedef boost::multi_array_types::index
index;
117 typedef ome::compat::array<boost::multi_array_types::index,
124 typedef boost::detail::multi_array::extent_gen<dimensions>
range_type;
136 pixeltype(pixeltype),
137 endiantype(endiantype)
179 static storage_order_type
191 static storage_order_type
253 typedef boost::multi_array<value_type, dimensions>
array_type;
263 multiarray(
ome::compat::shared_ptr<array_type>(new array_type(
boost::extents[1][1][1][1][1][1][1][1][1],
278 template<
class ExtentList>
285 multiarray(
ome::compat::shared_ptr<array_type>(new array_type(extents, storage)))
302 template<
class ExtentList>
305 const ExtentList& extents,
310 multiarray(
ome::compat::shared_ptr<array_ref_type>(new array_ref_type(pixeldata, extents, storage)))
330 multiarray(
ome::compat::shared_ptr<array_type>(new array_type(range, storage)))
354 multiarray(
ome::compat::shared_ptr<array_ref_type>(new array_ref_type(pixeldata, range, storage)))
390 const array_ref_type&
404 return array().data();
418 return array().data();
434 bool is_valid =
true;
440 catch (
const std::runtime_error&)
458 return (boost::get<ome::compat::shared_ptr<array_type> >(&
multiarray) != 0);
467 return array().num_elements();
476 return array().num_dimensions();
489 return array().shape();
499 const boost::multi_array_types::index *
502 return array().strides();
513 const boost::multi_array_types::index *
516 return array().index_bases();
532 return array().origin();
543 return array().storage_order();
601 return array() == rhs;
625 return array() != rhs;
649 return array() < rhs;
673 return array() <= rhs;
697 return array() > rhs;
721 return array() >= rhs;
732 template <
typename InputIterator>
737 array().assign(begin, end);
753 return array()(indices);
769 return array()(indices);
782 template<
class charT,
class traits>
784 read(std::basic_istream<charT,traits>& stream)
786 stream.read(reinterpret_cast<char *>(
data()),
787 static_cast<std::streamsize>(
num_elements() *
sizeof(value_type)));
800 template<
class charT,
class traits>
802 write(std::basic_ostream<charT,traits>& stream)
const
804 stream.write(reinterpret_cast<const char *>(
data()),
805 static_cast<std::streamsize>(
num_elements() *
sizeof(value_type)));
824 boost::variant<ome::compat::shared_ptr<array_type>,
841 template <
typename U>
846 throw std::runtime_error(
"Null array type");
861 template <
typename U>
866 throw std::runtime_error(
"Null array type");
874 typename PixelBuffer<T>::array_ref_type&
878 return boost::apply_visitor(v, multiarray);
886 return boost::apply_visitor(v, multiarray);
902 template<
typename T,
class charT,
class traits>
903 inline std::basic_istream<charT,traits>&
904 operator>> (std::basic_istream<charT,traits>& is,
918 template<
typename T,
class charT,
class traits>
919 inline std::basic_ostream<charT,traits>&
920 operator<< (std::basic_ostream<charT,traits>& os,
921 const ::ome::bioformats::PixelBuffer<T>& buf)
929 #endif // OME_BIOFORMATS_PIXELBUFFER_H
uint8
Definition: PixelType.h:82
Memory type substitution.
DimensionOrder enumeration.
Definition: DimensionOrder.h:69
Variant type limit workaround.
Open Microscopy Environment C++ implementation.
Definition: CoreMetadata.cpp:40
PixelType enumeration.
Definition: PixelType.h:69
Xerces-C modern C++ wrapper.
Definition: Base.h:53