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
13 namespace MBSim {
14 class ContourFrame;
15 }
16
17 namespace MBSimFlexibleBody {
18
19 class NeutralNurbs2s {
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
MBSim::Element
MBSim::NurbsSurface
MBSim::ContourFrame
MBSimFlexibleBody::NeutralNurbs2s
Definition: nurbs_2s.h:19
fmatvec::GeneralMatrix< fmatvec::Vec3 >