46 #ifndef OME_XML_MODEL_PIXELS_H
47 #define OME_XML_MODEL_PIXELS_H
57 #include <ome/common/xml/dom/Document.h>
58 #include <ome/common/xml/dom/Element.h>
59 #include <ome/common/xml/dom/Node.h>
60 #include <ome/common/xml/dom/NodeList.h>
62 #include <ome/xml/model/MetadataOnly.h>
63 #include <ome/xml/model/detail/OMEModelObject.h>
64 #include <ome/xml/model/enums/DimensionOrder.h>
65 #include <ome/xml/model/enums/PixelType.h>
66 #include <ome/xml/model/primitives/PositiveFloat.h>
67 #include <ome/xml/model/primitives/PositiveInteger.h>
97 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
physicalSizeY;
99 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
physicalSizeX;
101 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
physicalSizeZ;
111 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
significantBits;
121 std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >
channels;
123 std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >
binDataBlocks;
129 std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >
planes;
164 static ome::compat::shared_ptr< Pixels>
189 link (ome::compat::shared_ptr<Reference>& reference,
190 ome::compat::shared_ptr< ome::xml::model::OMEModelObject>&
object);
237 ome::compat::shared_ptr<double>
245 const ome::compat::shared_ptr<double>
261 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
269 const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
278 setPhysicalSizeY (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>& physicalSizeY);
285 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
293 const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
302 setPhysicalSizeX (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>& physicalSizeX);
309 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
317 const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>
326 setPhysicalSizeZ (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveFloat>& physicalSizeZ);
381 ome::compat::shared_ptr<bool>
389 const ome::compat::shared_ptr<bool>
398 setBigEndian (ome::compat::shared_ptr<bool>& bigEndian);
405 ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
413 const ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>
422 setSignificantBits (ome::compat::shared_ptr<ome::xml::model::primitives::PositiveInteger>& significantBits);
478 setID (
const std::string&
id);
485 ome::compat::shared_ptr<bool>
493 const ome::compat::shared_ptr<bool>
509 std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >::size_type
518 std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >&
527 const std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >&
537 ome::compat::shared_ptr<ome::xml::model::Channel>&
538 getChannel (std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >::size_type index);
547 const ome::compat::shared_ptr<ome::xml::model::Channel>&
548 getChannel (std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >::size_type index)
const;
558 setChannel (std::vector<ome::compat::shared_ptr<ome::xml::model::Channel> >::size_type index,
559 ome::compat::shared_ptr<ome::xml::model::Channel>& channel);
570 addChannel (ome::compat::shared_ptr<ome::xml::model::Channel>& channel);
582 removeChannel (ome::compat::shared_ptr<ome::xml::model::Channel>& channel);
589 std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >::size_type
598 std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >&
607 const std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >&
617 ome::compat::shared_ptr<ome::xml::model::BinData>&
618 getBinData (std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >::size_type index);
627 const ome::compat::shared_ptr<ome::xml::model::BinData>&
628 getBinData (std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >::size_type index)
const;
638 setBinData (std::vector<ome::compat::shared_ptr<ome::xml::model::BinData> >::size_type index,
639 ome::compat::shared_ptr<ome::xml::model::BinData>& binData);
650 addBinData (ome::compat::shared_ptr<ome::xml::model::BinData>& binData);
662 removeBinData (ome::compat::shared_ptr<ome::xml::model::BinData>& binData);
669 std::vector<ome::compat::shared_ptr<ome::xml::model::TiffData> >::size_type
678 std::vector<ome::compat::shared_ptr<ome::xml::model::TiffData> >&
687 const std::vector<ome::compat::shared_ptr<ome::xml::model::TiffData> >&
697 ome::compat::shared_ptr<ome::xml::model::TiffData>&
698 getTiffData (std::vector<ome::compat::shared_ptr<ome::xml::model::TiffData> >::size_type index);
707 const ome::compat::shared_ptr<ome::xml::model::TiffData>&
708 getTiffData (std::vector<ome::compat::shared_ptr<ome::xml::model::TiffData> >::size_type index)
const;
718 setTiffData (std::vector<ome::compat::shared_ptr<ome::xml::model::TiffData> >::size_type index,
719 ome::compat::shared_ptr<ome::xml::model::TiffData>& tiffData);
730 addTiffData (ome::compat::shared_ptr<ome::xml::model::TiffData>& tiffData);
742 removeTiffData (ome::compat::shared_ptr<ome::xml::model::TiffData>& tiffData);
749 ome::compat::shared_ptr<ome::xml::model::MetadataOnly>
757 const ome::compat::shared_ptr<ome::xml::model::MetadataOnly>
766 setMetadataOnly (ome::compat::shared_ptr<ome::xml::model::MetadataOnly>& metadataOnly);
773 std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >::size_type
782 std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >&
791 const std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >&
801 ome::compat::shared_ptr<ome::xml::model::Plane>&
802 getPlane (std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >::size_type index);
811 const ome::compat::shared_ptr<ome::xml::model::Plane>&
812 getPlane (std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >::size_type index)
const;
822 setPlane (std::vector<ome::compat::shared_ptr<ome::xml::model::Plane> >::size_type index,
823 ome::compat::shared_ptr<ome::xml::model::Plane>& plane);
834 addPlane (ome::compat::shared_ptr<ome::xml::model::Plane>& plane);
846 removePlane (ome::compat::shared_ptr<ome::xml::model::Plane>& plane);
871 const ome::compat::weak_ptr<ome::xml::model::Annotation>&
884 const ome::compat::weak_ptr<ome::xml::model::Annotation>&
886 const ome::compat::shared_ptr<ome::xml::model::Annotation>& annotation);
899 linkAnnotation (
const ome::compat::shared_ptr<ome::xml::model::Annotation>& annotation);
917 unlinkAnnotation (
const ome::compat::shared_ptr<ome::xml::model::Annotation>& annotation);
941 #endif // OME_XML_MODEL_PIXELS_H
OME model interface (abstract top-level container)
Definition: OMEModel.h:62
const std::string & getID() const
Get the ID property.
Definition: Pixels.cpp:766
void addBinData(ome::compat::shared_ptr< ome::xml::model::BinData > &binData)
Add BinData.
Definition: Pixels.cpp:898
std::vector< ome::compat::shared_ptr< ome::xml::model::Plane > > planes
Plane property (occurs more than once)
Definition: Pixels.h:129
std::vector< ome::compat::shared_ptr< ome::xml::model::Channel > >::size_type sizeOfChannelList() const
Get size of linked Channel list.
Definition: Pixels.cpp:801
OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type::size_type sizeOfLinkedAnnotationList() const
Get size of linked Annotation list.
Definition: Pixels.cpp:1054
void setMetadataOnly(ome::compat::shared_ptr< ome::xml::model::MetadataOnly > &metadataOnly)
Set the MetadataOnly property.
Definition: Pixels.cpp:989
void setTimeIncrement(ome::compat::shared_ptr< double > &timeIncrement)
Set the TimeIncrement property.
Definition: Pixels.cpp:577
bool linkAnnotation(const ome::compat::shared_ptr< ome::xml::model::Annotation > &annotation)
Link Annotation.
Definition: Pixels.cpp:1082
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > physicalSizeZ
PhysicalSizeZ property.
Definition: Pixels.h:101
const ome::xml::model::primitives::PositiveInteger & getSizeX() const
Get the SizeX property.
Definition: Pixels.cpp:647
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > getSignificantBits()
Get the SignificantBits property.
Definition: Pixels.cpp:710
ome::xml::model::primitives::PositiveInteger sizeC
SizeC property.
Definition: Pixels.h:113
ome::xml::model::primitives::PositiveInteger sizeY
SizeY property.
Definition: Pixels.h:105
const ome::xml::model::primitives::PositiveInteger & getSizeC() const
Get the SizeC property.
Definition: Pixels.cpp:731
void setBinData(std::vector< ome::compat::shared_ptr< ome::xml::model::BinData > >::size_type index, ome::compat::shared_ptr< ome::xml::model::BinData > &binData)
Set BinData.
Definition: Pixels.cpp:889
bool validElementName(const std::string &name) const
Check if a given element name is valid for processing by this model object.
Definition: Pixels.cpp:267
void addTiffData(ome::compat::shared_ptr< ome::xml::model::TiffData > &tiffData)
Add TiffData.
Definition: Pixels.cpp:956
bool link(ome::compat::shared_ptr< Reference > &reference, ome::compat::shared_ptr< ome::xml::model::OMEModelObject > &object)
Link a given OME model object to this model object.
Definition: Pixels.cpp:497
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > getPhysicalSizeZ()
Get the PhysicalSizeZ property.
Definition: Pixels.cpp:626
Pixels()
Default constructor.
Definition: Pixels.cpp:187
virtual ~Pixels()
Destructor.
Definition: Pixels.cpp:246
void setType(const ome::xml::model::enums::PixelType &type)
Set the Type property.
Definition: Pixels.cpp:759
ome::compat::shared_ptr< bool > bigEndian
BigEndian property.
Definition: Pixels.h:109
OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type getLinkedAnnotationList() const
Get the linked Annotation list.
Definition: Pixels.cpp:1060
void setPlane(std::vector< ome::compat::shared_ptr< ome::xml::model::Plane > >::size_type index, ome::compat::shared_ptr< ome::xml::model::Plane > &plane)
Set Plane.
Definition: Pixels.cpp:1026
void removeBinData(ome::compat::shared_ptr< ome::xml::model::BinData > &binData)
Remove BinData.
Definition: Pixels.cpp:906
ome::xml::model::primitives::PositiveInteger sizeT
SizeT property.
Definition: Pixels.h:91
std::vector< ome::compat::shared_ptr< ome::xml::model::Plane > >::size_type sizeOfPlaneList() const
Get size of linked Plane list.
Definition: Pixels.cpp:996
void removeTiffData(ome::compat::shared_ptr< ome::xml::model::TiffData > &tiffData)
Remove TiffData.
Definition: Pixels.cpp:964
void setPhysicalSizeX(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > &physicalSizeX)
Set the PhysicalSizeX property.
Definition: Pixels.cpp:619
DOM Document wrapper.
Definition: Document.h:82
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > getPhysicalSizeY()
Get the PhysicalSizeY property.
Definition: Pixels.cpp:584
DOM Element wrapper.
Definition: Element.h:66
OME model object (concrete implementation).
Definition: OMEModelObject.h:64
std::vector< ome::compat::shared_ptr< ome::xml::model::Plane > > & getPlaneList()
Get the Plane list.
Definition: Pixels.cpp:1002
boost::multi_index_container< Ptr< T >, boost::multi_index::indexed_by< boost::multi_index::random_access<>, boost::multi_index::ordered_unique< boost::multi_index::identity< Ptr< T > >, ome::compat::owner_less< Ptr< T > > > > > type
Multi-index container type.
Definition: OMEModelObject.h:94
void setSizeZ(const ome::xml::model::primitives::PositiveInteger &sizeZ)
Set the SizeZ property.
Definition: Pixels.cpp:682
void addChannel(ome::compat::shared_ptr< ome::xml::model::Channel > &channel)
Add Channel.
Definition: Pixels.cpp:840
void setPhysicalSizeY(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > &physicalSizeY)
Set the PhysicalSizeY property.
Definition: Pixels.cpp:598
ome::compat::shared_ptr< ome::xml::model::MetadataOnly > metadataOnly
MetadataOnly property.
Definition: Pixels.h:127
const std::string & getXMLNamespace() const
Get the XML namespace for this model object.
Definition: Pixels.cpp:1387
void setSizeY(const ome::xml::model::primitives::PositiveInteger &sizeY)
Set the SizeY property.
Definition: Pixels.cpp:668
ome::xml::model::enums::PixelType & getType()
Get the Type property.
Definition: Pixels.cpp:745
std::vector< ome::compat::shared_ptr< ome::xml::model::TiffData > > & getTiffDataList()
Get the TiffData list.
Definition: Pixels.cpp:923
void setTiffData(std::vector< ome::compat::shared_ptr< ome::xml::model::TiffData > >::size_type index, ome::compat::shared_ptr< ome::xml::model::TiffData > &tiffData)
Set TiffData.
Definition: Pixels.cpp:947
ome::compat::shared_ptr< ome::xml::model::TiffData > & getTiffData(std::vector< ome::compat::shared_ptr< ome::xml::model::TiffData > >::size_type index)
Get TiffData.
Definition: Pixels.cpp:935
const ome::compat::weak_ptr< ome::xml::model::Annotation > & setLinkedAnnotation(OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type::size_type index, const ome::compat::shared_ptr< ome::xml::model::Annotation > &annotation)
Set linked Annotation.
Definition: Pixels.cpp:1072
ome::xml::model::enums::DimensionOrder dimensionOrder
DimensionOrder property.
Definition: Pixels.h:93
DimensionOrder enumeration.
Definition: DimensionOrder.h:70
bool unlinkAnnotation(const ome::compat::shared_ptr< ome::xml::model::Annotation > &annotation)
Unlink Annotation.
Definition: Pixels.cpp:1096
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > getPhysicalSizeX()
Get the PhysicalSizeX property.
Definition: Pixels.cpp:605
ome::compat::shared_ptr< bool > interleaved
Interleaved property.
Definition: Pixels.h:119
Multi-index container for efficient ordered insertion and deletion of model object references...
Definition: OMEModelObject.h:85
void setDimensionOrder(const ome::xml::model::enums::DimensionOrder &dimensionOrder)
Set the DimensionOrder property.
Definition: Pixels.cpp:556
std::vector< ome::compat::shared_ptr< ome::xml::model::TiffData > >::size_type sizeOfTiffDataList() const
Get size of linked TiffData list.
Definition: Pixels.cpp:917
Open Microscopy Environment C++ implementation.
Definition: CoreMetadata.cpp:40
ome::xml::model::primitives::PositiveInteger sizeX
SizeX property.
Definition: Pixels.h:103
std::vector< ome::compat::shared_ptr< ome::xml::model::TiffData > > tiffDataBlocks
TiffData property (occurs more than once)
Definition: Pixels.h:125
ome::compat::shared_ptr< double > getTimeIncrement()
Get the TimeIncrement property.
Definition: Pixels.cpp:563
OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type annotationLinks
AnnotationRef reference (occurs more than once)
Definition: Pixels.h:131
void setSignificantBits(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > &significantBits)
Set the SignificantBits property.
Definition: Pixels.cpp:724
ome::compat::shared_ptr< ome::xml::model::MetadataOnly > getMetadataOnly()
Get the MetadataOnly property.
Definition: Pixels.cpp:975
Pixels model object.
Definition: Pixels.h:87
std::vector< ome::compat::shared_ptr< ome::xml::model::BinData > > binDataBlocks
BinData property (occurs more than once)
Definition: Pixels.h:123
virtual void update(const common::xml::dom::Element &element, ome::xml::model::OMEModel &model)
Update the object hierarchy recursively from an XML DOM tree.
Definition: Pixels.cpp:276
const ome::xml::model::primitives::PositiveInteger & getSizeY() const
Get the SizeY property.
Definition: Pixels.cpp:661
ome::xml::model::primitives::PositiveInteger sizeZ
SizeZ property.
Definition: Pixels.h:107
void addPlane(ome::compat::shared_ptr< ome::xml::model::Plane > &plane)
Add Plane.
Definition: Pixels.cpp:1035
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > physicalSizeX
PhysicalSizeX property.
Definition: Pixels.h:99
ome::compat::shared_ptr< bool > getInterleaved()
Get the Interleaved property.
Definition: Pixels.cpp:780
const ome::xml::model::primitives::PositiveInteger & getSizeT() const
Get the SizeT property.
Definition: Pixels.cpp:528
void setID(const std::string &id)
Set the ID property.
Definition: Pixels.cpp:773
static ome::compat::shared_ptr< Pixels > create(const common::xml::dom::Element &element, ome::xml::model::OMEModel &model)
Create a Pixels model object from DOM element.
Definition: Pixels.cpp:251
PixelType enumeration.
Definition: PixelType.h:70
ome::compat::shared_ptr< ome::xml::model::Channel > & getChannel(std::vector< ome::compat::shared_ptr< ome::xml::model::Channel > >::size_type index)
Get Channel.
Definition: Pixels.cpp:819
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > physicalSizeY
PhysicalSizeY property.
Definition: Pixels.h:97
std::vector< ome::compat::shared_ptr< ome::xml::model::BinData > > & getBinDataList()
Get the BinData list.
Definition: Pixels.cpp:865
void setSizeC(const ome::xml::model::primitives::PositiveInteger &sizeC)
Set the SizeC property.
Definition: Pixels.cpp:738
ome::compat::shared_ptr< ome::xml::model::Plane > & getPlane(std::vector< ome::compat::shared_ptr< ome::xml::model::Plane > >::size_type index)
Get Plane.
Definition: Pixels.cpp:1014
const ome::xml::model::primitives::PositiveInteger & getSizeZ() const
Get the SizeZ property.
Definition: Pixels.cpp:675
void setSizeT(const ome::xml::model::primitives::PositiveInteger &sizeT)
Set the SizeT property.
Definition: Pixels.cpp:535
void removeChannel(ome::compat::shared_ptr< ome::xml::model::Channel > &channel)
Remove Channel.
Definition: Pixels.cpp:848
const std::string & elementName() const
Get the element name of this model object.
Definition: Pixels.cpp:260
void setChannel(std::vector< ome::compat::shared_ptr< ome::xml::model::Channel > >::size_type index, ome::compat::shared_ptr< ome::xml::model::Channel > &channel)
Set Channel.
Definition: Pixels.cpp:831
ome::compat::shared_ptr< bool > getBigEndian()
Get the BigEndian property.
Definition: Pixels.cpp:689
virtual common::xml::dom::Element asXMLElementInternal(common::xml::dom::Document &document, common::xml::dom::Element &element) const
Transform the object hierarchy rooted at this element to XML.
Definition: Pixels.cpp:1121
ome::compat::shared_ptr< double > timeIncrement
TimeIncrement property.
Definition: Pixels.h:95
ome::xml::model::enums::PixelType type
Type property.
Definition: Pixels.h:115
std::string id
ID property.
Definition: Pixels.h:117
void setPhysicalSizeZ(ome::compat::shared_ptr< ome::xml::model::primitives::PositiveFloat > &physicalSizeZ)
Set the PhysicalSizeZ property.
Definition: Pixels.cpp:640
ome::xml::model::enums::DimensionOrder & getDimensionOrder()
Get the DimensionOrder property.
Definition: Pixels.cpp:542
ome::compat::shared_ptr< ome::xml::model::BinData > & getBinData(std::vector< ome::compat::shared_ptr< ome::xml::model::BinData > >::size_type index)
Get BinData.
Definition: Pixels.cpp:877
std::vector< ome::compat::shared_ptr< ome::xml::model::Channel > > & getChannelList()
Get the Channel list.
Definition: Pixels.cpp:807
virtual common::xml::dom::Element asXMLElement(common::xml::dom::Document &document) const
Transform the object hierarchy rooted at this element to XML.
Definition: Pixels.cpp:1114
std::vector< ome::compat::shared_ptr< ome::xml::model::BinData > >::size_type sizeOfBinDataList() const
Get size of linked BinData list.
Definition: Pixels.cpp:859
A numeric type constrained to a subrange (or subranges) of its range limits.
Definition: ConstrainedNumeric.h:119
ome::compat::shared_ptr< ome::xml::model::primitives::PositiveInteger > significantBits
SignificantBits property.
Definition: Pixels.h:111
void removePlane(ome::compat::shared_ptr< ome::xml::model::Plane > &plane)
Remove Plane.
Definition: Pixels.cpp:1043
void setInterleaved(ome::compat::shared_ptr< bool > &interleaved)
Set the Interleaved property.
Definition: Pixels.cpp:794
Xerces-C modern C++ wrapper.
Definition: Base.h:53
const ome::compat::weak_ptr< ome::xml::model::Annotation > & getLinkedAnnotation(OMEModelObject::indexed_container< ome::xml::model::Annotation, ome::compat::weak_ptr >::type::size_type index) const
Get linked Annotation.
Definition: Pixels.cpp:1066
void setSizeX(const ome::xml::model::primitives::PositiveInteger &sizeX)
Set the SizeX property.
Definition: Pixels.cpp:654
std::vector< ome::compat::shared_ptr< ome::xml::model::Channel > > channels
Channel property (occurs more than once)
Definition: Pixels.h:121
void setBigEndian(ome::compat::shared_ptr< bool > &bigEndian)
Set the BigEndian property.
Definition: Pixels.cpp:703