20#ifndef _OPENMBV_COILSPRING_H_
21#define _OPENMBV_COILSPRING_H_
23#include <openmbvcppinterface/dynamiccoloredbody.h>
24#include <hdf5serie/vectorserie.h>
46 void createHDF5File()
override;
47 void openHDF5File()
override;
49 double springRadius{1};
50 double crossSectionRadius{-1};
51 double scaleFactor{1};
52 double numberOfCoils{3};
53 double nominalLength{-1};
60 void append(
const T& row) {
61 if(data==
nullptr)
throw std::runtime_error(
"can not append data to an environement object");
62 if(row.size()!=8)
throw std::runtime_error(
"the dimension does not match");
63 if(!std::isnan(dynamicColor))
65 std::vector<double> tmprow(8);
66 std::copy(&row[0], &row[8], tmprow.begin());
67 tmprow[7]=dynamicColor;
75 std::vector<double>
getRow(
int i)
override {
return data?data->
getRow(i):std::vector<double>(8); }
77 void setSpringRadius(
double radius) { springRadius=radius; }
78 double getSpringRadius() {
return springRadius; }
86 double getCrossSectionRadius() {
return crossSectionRadius; }
88 void setScaleFactor(
double scale) { scaleFactor=scale; }
89 double getScaleFactor() {
return scaleFactor; }
91 void setNumberOfCoils(
double nr) { numberOfCoils=nr; }
92 double getNumberOfCoils() {
return numberOfCoils; }
103 double getNominalLength() {
return nominalLength; }
116 Type getType() {
return type; }
121 xercesc::DOMElement *writeXMLFile(xercesc::DOMNode *parent)
override;
void getRow(int row, size_t size, T data[])
void append(const T data[], size_t size)
Definition: coilspring.h:37
int getRows() override
Definition: coilspring.h:74
void setCrossSectionRadius(double radius)
Definition: coilspring.h:85
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: coilspring.cc:81
void setNominalLength(double l)
Definition: coilspring.h:102
void setType(Type t)
Definition: coilspring.h:115
std::vector< double > getRow(int i) override
Definition: coilspring.h:75
Definition: dynamiccoloredbody.h:28
Definition: objectfactory.h:38