mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
nurbs_2s.h
1/*
2 * neutral_nurbs_2s.h
3 *
4 * Created on: 03.12.2013
5 * Author: zwang
6 */
7
8#ifndef NEUTRAL_NURBS_2S_H_
9#define NEUTRAL_NURBS_2S_H_
10
11#include <mbsim/numerics/nurbs/nurbs_surface.h>
12
13namespace MBSim {
14 class ContourFrame;
15}
16
17namespace MBSimFlexibleBody {
18
20 public:
21 NeutralNurbs2s(MBSim::Element* parent_, const fmatvec::MatVI & nodes, double nodeOffset_, int degU_, int degV_, bool openStructure_);
22 virtual ~NeutralNurbs2s();
23 void setuk(const fmatvec::Vec &uk_) { uk <<= uk_; }
24 void setvl(const fmatvec::Vec &vl_) { vl <<= vl_; }
25 virtual void computeCurve(bool update = false);
26 virtual void update(MBSim::ContourFrame *frame) = 0;
27// virtual const fmatvec::Vec getuVec() {
28// return surface.getuVec();
29// }
30 void resetUpToDate();
31 protected:
32 virtual void buildNodelist() = 0;
33 MBSim::NurbsSurface surface;
34 MBSim::Element *parent;
35 fmatvec::MatVI nodes;
36 double nodeOffset;
37 int numOfNodesU;
38 int numOfNodesV;
39 fmatvec::GeneralMatrix<fmatvec::Vec3> Nodelist;
40 fmatvec::Vec uk, vl;
41 int degU;
42 int degV;
43 bool openStructure;
44 bool updSurface;
45 };
46
47} /* namespace MBSimFlexibleBody */
48#endif
Definition: nurbs_2s.h:19