20#ifndef _OPENMBV_COILSPRING_H_
21#define _OPENMBV_COILSPRING_H_
23#include <openmbvcppinterface/dynamiccoloredbody.h>
24#include <hdf5serie/vectorserie.h>
47 void createHDF5File()
override;
48 void openHDF5File()
override;
50 double springRadius{1};
51 double crossSectionRadius{-1};
52 double scaleFactor{1};
53 double numberOfCoils{3};
54 double nominalLength{-1};
56 bool updateNormals {
true };
62 void append(
const T& row) {
63 if(data==
nullptr)
throw std::runtime_error(
"can not append data to an environement object");
64 if(row.size()!=8)
throw std::runtime_error(
"the dimension does not match");
65 if(!std::isnan(dynamicColor))
67 std::vector<Float> tmprow(8);
68 std::copy(&row[0], &row[8], tmprow.begin());
69 tmprow[7]=dynamicColor;
77 std::vector<Float>
getRow(
int i)
override {
return data?data->
getRow(i):std::vector<Float>(8); }
79 void setSpringRadius(
double radius) { springRadius=radius; }
80 double getSpringRadius() {
return springRadius; }
88 double getCrossSectionRadius() {
return crossSectionRadius; }
90 void setScaleFactor(
double scale) { scaleFactor=scale; }
91 double getScaleFactor() {
return scaleFactor; }
93 void setNumberOfCoils(
double nr) { numberOfCoils=nr; }
94 double getNumberOfCoils() {
return numberOfCoils; }
105 double getNominalLength() {
return nominalLength; }
126 bool getUpdateNormals() {
return updateNormals; }
131 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
void setUpdateNormals(bool f)
Definition: coilspring.h:125
std::vector< Float > getRow(int i) override
Definition: coilspring.h:77
int getRows() override
Definition: coilspring.h:76
void setCrossSectionRadius(double radius)
Definition: coilspring.h:87
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: coilspring.cc:83
void setNominalLength(double l)
Definition: coilspring.h:104
void setType(Type t)
Definition: coilspring.h:119
Definition: dynamiccoloredbody.h:28
Definition: objectfactory.h:38