20#ifndef _OPENMBV_SPINEEXTRUSION_H_
21#define _OPENMBV_SPINEEXTRUSION_H_
23#include <openmbvcppinterface/dynamiccoloredbody.h>
24#include <openmbvcppinterface/polygonpoint.h>
27#include <hdf5serie/vectorserie.h>
86 void setContour(
const std::shared_ptr<std::vector<std::shared_ptr<PolygonPoint> > > &contour_) {
contour = contour_; }
88 std::shared_ptr<std::vector<std::shared_ptr<PolygonPoint> > > getContour() {
return contour; }
101 if(initRot.size()!=3)
throw std::runtime_error(
"the dimension does not match");
106 std::vector<double> initRot;
107 initRot.push_back(a);
108 initRot.push_back(b);
109 initRot.push_back(g);
113 void setStateOffSet(
const std::vector<double>& stateOff)
118 std::vector<double> getStateOffSet() {
return stateOffSet; }
120 enum CrossSectionOrienation { orthogonalWithTwist, cardanWrtWorld, cardanWrtWorldShader };
121 void setCrossSectionOrientation(CrossSectionOrienation o) { csOri = o; }
122 CrossSectionOrienation getCrossSectionOrientation();
124 void setCounterClockWise(
bool f) { ccw = f; }
125 bool getCounterClockWise() {
return ccw; }
131 bool getUpdateNormals() {
return updateNormals; }
139 if(
data==
nullptr)
throw std::runtime_error(
"can not append data to an environment object");
150 xercesc::DOMElement*
writeXMLFile(xercesc::DOMNode *parent)
override;
159 std::shared_ptr<std::vector<std::shared_ptr<PolygonPoint> > >
contour;
167 CrossSectionOrienation csOri { orthogonalWithTwist };
171 bool updateNormals {
true };
181 void openHDF5File()
override;
void getRow(int row, size_t size, T data[])
void append(const T data[], size_t size)
Definition: dynamiccoloredbody.h:28
Definition: objectfactory.h:38
Class for all bodies extruded along a curve.
Definition: spineextrusion.h:69
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: spineextrusion.cc:105
std::shared_ptr< std::vector< std::shared_ptr< PolygonPoint > > > contour
Definition: spineextrusion.h:159
void createHDF5File() override
Definition: spineextrusion.cc:63
double scaleFactor
Definition: spineextrusion.h:165
void setInitialRotation(const std::vector< double > &initRot)
Definition: spineextrusion.h:100
void setContour(const std::shared_ptr< std::vector< std::shared_ptr< PolygonPoint > > > &contour_)
Definition: spineextrusion.h:86
H5::VectorSerie< Float > * data
Definition: spineextrusion.h:162
void setScaleFactor(const double scale)
Definition: spineextrusion.h:91
void setUpdateNormals(bool f)
Definition: spineextrusion.h:130
int getNumberOfSpinePoints()
Definition: spineextrusion.h:80
std::vector< double > getInitialRotation()
Definition: spineextrusion.h:134
std::vector< double > initialRotation
Definition: spineextrusion.h:174
std::vector< Float > getRow(int i) override
Definition: spineextrusion.h:144
int getRows() override
Definition: spineextrusion.h:143
void setNumberOfSpinePoints(const int num)
Definition: spineextrusion.h:74
xercesc::DOMElement * writeXMLFile(xercesc::DOMNode *parent) override
Definition: spineextrusion.cc:40
void append(const T &row)
Definition: spineextrusion.h:138
int numberOfSpinePoints
Definition: spineextrusion.h:156
std::vector< double > stateOffSet
Definition: spineextrusion.h:177