20#ifndef _OPENMBV_DYNAMICNURBSSURFACE_H
21#define _OPENMBV_DYNAMICNURBSSURFACE_H
23#include <openmbvcppinterface/dynamiccoloredbody.h>
25#include <hdf5serie/vectorserie.h>
33 std::vector<std::vector<double> > cp;
35 std::vector<double> uKnot, vKnot;
39 xercesc::DOMElement *writeXMLFile(xercesc::DOMNode *parent)
override;
42 void openHDF5File()
override;
47 int getNumberOfUControlPoints() {
return numU; }
48 int getNumberOfVControlPoints() {
return numV; }
49 const std::vector<double>& getUKnotVector() {
return uKnot; }
50 const std::vector<double>& getVKnotVector() {
return vKnot; }
55 void setNumberOfUControlPoints(
int numU_) { numU = numU_; }
56 void setNumberOfVControlPoints(
int numV_) { numV = numV_; }
57 void setUKnotVector(
const std::vector<double>& uKnot_) { uKnot = uKnot_; }
58 void setVKnotVector(
const std::vector<double>& vKnot_) { vKnot = vKnot_; }
63 if(data==
nullptr)
throw std::runtime_error(
"can not append data to an environment object");
68 std::vector<double>
getRow(
int i)
override {
return data?data->
getRow(i):std::vector<double>(1+4*numU*numV); }
void getRow(int row, size_t size, T data[])
void append(const T data[], size_t size)
Definition: dynamiccoloredbody.h:28
Definition: dynamicnurbssurface.h:30
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: dynamicnurbssurface.cc:69
void createHDF5File() override
Definition: dynamicnurbssurface.cc:42
std::vector< double > getRow(int i) override
Definition: dynamicnurbssurface.h:68
void append(const T &row)
Definition: dynamicnurbssurface.h:62
int getRows() override
Definition: dynamicnurbssurface.h:67
void setControlPoints(const std::vector< std::vector< double > > &cp_)
Definition: dynamicnurbssurface.h:54
const std::vector< std::vector< double > > & getControlPoints()
Definition: dynamicnurbssurface.h:46
Definition: objectfactory.h:38