20#ifndef _OPENMBV_ARROW_H_ 
   21#define _OPENMBV_ARROW_H_ 
   23#include <openmbvcppinterface/dynamiccoloredbody.h> 
   24#include <hdf5serie/vectorserie.h> 
   56      void createHDF5File() 
override;
 
   57      void openHDF5File() 
override;
 
   59      double headDiameter{0.5};
 
   60      double headLength{0.75};
 
   61      double diameter{0.25};
 
   62      double scaleLength{1};
 
   64      ReferencePoint referencePoint{toPoint};
 
   70      void setPath(
bool p) { pathStr=(p)?
"true":
"false"; }
 
   72      bool getPath() { 
return pathStr==
"true"?
true:
false; }
 
   77        if(data==
nullptr) 
throw std::runtime_error(
"can not append data to an environment object");
 
   78        if(row.size()!=8) 
throw std::runtime_error(
"the dimension does not match");
 
   79        if(!std::isnan(dynamicColor))
 
   81          std::vector<double> tmprow(8);
 
   82          std::copy(&row[0], &row[8], tmprow.begin());
 
   83          tmprow[7]=dynamicColor;
 
   91      std::vector<double> 
getRow(
int i)
 override { 
return data?data->
getRow(i):std::vector<double>(8); }
 
   95        headDiameter=diameter;
 
  101        headDiameter=diameter;
 
  104      double getHeadDiameter() { 
return headDiameter; }
 
  111      double getHeadLength() { 
return headLength; }
 
  118      double getDiameter() { 
return diameter; }
 
  133      Type getType() { 
return type; }
 
  142        referencePoint=referencePoint_;
 
  145      ReferencePoint getReferencePoint() { 
return referencePoint; }
 
  152      double getScaleLength() { 
return scaleLength; }
 
  157      xercesc::DOMElement *writeXMLFile(xercesc::DOMNode *parent) 
override;
 
void getRow(int row, size_t size, T data[])
 
void append(const T data[], size_t size)
 
void setType(Type type_)
Definition: arrow.h:129
 
void setHeadDiameter(double diameter)
Definition: arrow.h:100
 
void setHeadLength(double length)
Definition: arrow.h:107
 
void setDiameter(double diameter_)
Definition: arrow.h:114
 
int getRows() override
Definition: arrow.h:90
 
std::vector< double > getRow(int i) override
Definition: arrow.h:91
 
void setPath(bool p)
Definition: arrow.h:70
 
void append(const T &row)
Definition: arrow.h:76
 
void setArrowHead(double diameter, double length)
Definition: arrow.h:94
 
void setScaleLength(double scale)
Definition: arrow.h:148
 
void setReferencePoint(ReferencePoint referencePoint_)
Definition: arrow.h:141
 
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: arrow.cc:94
 
Definition: dynamiccoloredbody.h:28
 
Definition: objectfactory.h:38