20#ifndef _OPENMBV_IVSCREENANNOTATION_H_
21#define _OPENMBV_IVSCREENANNOTATION_H_
24#include <hdf5serie/vectorserie.h>
63 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent)
override;
64 void setScale1To1(
bool scale1To1_);
77 std::vector<double> getScale1To1At();
78 void setIvFileName(std::string ivFileName_) { ivContent=
""; ivFileName=std::move(ivFileName_); }
79 std::string getIvFileName() {
return ivFileName; }
80 void setIvContent(std::string ivContent_) { ivFileName=
""; ivContent=std::move(ivContent_); }
81 const std::string& getIvContent() {
return ivContent; }
82 void setColumnLabels(
const std::vector<std::string> &columnLabels_);
83 const std::vector<std::string>& getColumnLabels()
const;
85 void createHDF5File()
override;
86 void openHDF5File()
override;
89 void append(
const T& row) {
90 if(data==
nullptr)
throw std::runtime_error(
"IvScreenAnnotation: Cannot append data to an environment object");
91 if(row.size()!=
static_cast<int>(columnLabels.size()))
throw std::runtime_error(
"IvScreenAnnotation: The dimension does not match (append: "+
92 std::to_string(row.size())+
", columns: "+std::to_string(columnLabels.size())+
")");
93 data->
append(&row(0), row.size());
97 std::vector<double>
getRow(
int i)
override {
return data ? data->
getRow(i) : std::vector<double>(columnLabels.size()); }
102 std::vector<double> scale1To1Center;
103 std::string ivFileName;
104 std::string ivContent;
105 std::vector<std::string> columnLabels;
void getRow(int row, size_t size, T data[])
void append(const T data[], size_t size)
Definition: ivscreenannotation.h:59
std::vector< double > getRow(int i) override
Definition: ivscreenannotation.h:97
void setScale1To1At(const std::vector< double > &scale1To1Center_)
Definition: ivscreenannotation.cc:91
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: ivscreenannotation.cc:51
int getRows() override
Definition: ivscreenannotation.h:96
Definition: objectfactory.h:38