mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
nurbs_1s.h
1/*
2 * neutral_nurbs_1s.h
3 *
4 * Created on: 24.10.2013
5 * Author: zwang
6 */
7
8#ifndef NEUTRAL_NURBS_1S_H_
9#define NEUTRAL_NURBS_1S_H_
10
11#include <mbsim/numerics/nurbs/nurbs_curve.h>
12
13namespace MBSim {
14 class ContourFrame;
15}
16
17namespace MBSimFlexibleBody {
18
19 class NeutralNurbs1s : public virtual fmatvec::Atom {
20 public:
21 NeutralNurbs1s(MBSim::Element* parent_, const fmatvec::VecInt &nodes, double nodeOffset_, double uMin_, double uMax_, int degU_, bool openStructure_);
22 ~NeutralNurbs1s() override;
23 virtual void computeCurve(bool update = false);
24 virtual void update(MBSim::ContourFrame *frame) = 0;
25 virtual const fmatvec::Vec getuVec() {
26 return curve.getuVec();
27 }
28 void resetUpToDate();
29 protected:
30 virtual void buildNodelist() = 0;
32 MBSim::Element *parent;
33 fmatvec::VecInt nodes;
34
38 double nodeOffset;
39 fmatvec::MatVx3 Nodelist;
40 double uMin;
41 double uMax;
42 int degU;
43 bool openStructure;
44 bool updCurve;
45 };
46
47} /* namespace MBSimFlexibleBody */
48#endif
Definition: nurbs_1s.h:19
double nodeOffset
offset between "leading" nodeset and this nodeset (e.g. used in cosserat between translational (= lea...
Definition: nurbs_1s.h:38
const fmatvec::VecV getuVec() const