20#ifndef _OPENMBV_DYNAMICATTRIBUTES_H_
21#define _OPENMBV_DYNAMICATTRIBUTES_H_
23#include <openmbvcppinterface/body.h>
26#include "hdf5serie/vectorserie.h"
59 PathData(std::string path_,
bool skip_) : path(std::move(path_)), skip(skip_) {}
63 using PathDataList = std::vector<PathData>;
69 PathDataList objectEnable;
70 PathDataList bodyDrawMethod;
71 PathDataList dynamicColoredBodyTransparency;
73 void createHDF5File()
override;
74 void openHDF5File()
override;
77 void updateDataSize();
82 std::vector<Float>
getRow(
int i)
override {
return data?data->
getRow(i):std::vector<Float>(dataSize); }
84 int getDataSize() {
return dataSize; }
89 const PathDataList getObjectEnable()
const {
return objectEnable; }
97 const PathDataList getBodyDrawMethod()
const {
return bodyDrawMethod; }
105 const PathDataList getDynamicColoredBodyTransparency()
const {
return dynamicColoredBodyTransparency; }
111 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent)
override;
116 if(data==
nullptr)
throw std::runtime_error(
"can not append data to an environment object");
117 if(
static_cast<int>(row.size())!=dataSize)
throw std::runtime_error(
"the dimension does not match");
void getRow(int row, size_t size, T data[])
void append(const T data[], size_t size)
Control attributes of other objects dynamically.
Definition: dynamicattributes.h:54
void append(const T &row)
Definition: dynamicattributes.h:115
void setObjectEnable(const PathDataList &p)
Definition: dynamicattributes.cc:33
std::vector< Float > getRow(int i) override
Definition: dynamicattributes.h:82
void setBodyDrawMethod(const PathDataList &p)
Definition: dynamicattributes.cc:43
void addDynamicColoredBodyTransparency(const std::string &p, bool skip=false)
Definition: dynamicattributes.cc:58
void addBodyDrawMethod(const std::string &p, bool skip=false)
Definition: dynamicattributes.cc:48
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: dynamicattributes.cc:95
void setDynamicColoredBodyTransparency(const PathDataList &p)
Definition: dynamicattributes.cc:53
int getRows() override
Definition: dynamicattributes.h:81
void addObjectEnable(const std::string &p, bool skip=false)
Definition: dynamicattributes.cc:38
Definition: objectfactory.h:38
Definition: dynamicattributes.h:58