10 float _last_torque[3];
15 // Position of this surface in local coords
16 void setPosition(float* p);
17 void getPosition(float* out);
18 void setCompiled() {_compiled=1;}
19 float getDt() {return _dt;}
20 void setPositionForceAttac(float* p);
21 void getPositionForceAttac(float* out);
22 void setNormal(float* p);
23 void getNormal(float* out);
24 void setCollective(float pos);
25 void setCyclic(float pos);
26 void getLastTorque(float *t)
27 {for (int i=0;i<3;i++) t[i]=_last_torque[i];}
28 void getAccelTorque(float relaccel,float *t);
29 void setSpeed(float* p);
30 void setDirectionofZentipetalforce(float* p);
31 void setDirectionofRotorPart(float* p);
32 void setZentipetalForce(float f);
33 void setMaxpitch(float f);
34 void setMinpitch(float f);
35 void setMaxcyclic(float f);
36 void setMincyclic(float f);
37 void setDelta3(float f);
38 void setDynamic(float f);
39 void setTranslift(float f);
41 void setZentForce(float f);
42 void setRelLenHinge(float f);
43 void setRelamp(float f);
44 void setDiameter(float f);
45 float getAlpha(int i);
46 float getrealAlpha(void);
47 char* getAlphaoutput(int i);
48 void setAlphaoutput(char *text,int i);
49 void inititeration(float dt,float *rot);
50 float getWeight(void);
51 void setWeight(float value);
52 void calcForce(float* v, float rho, float* forceOut, float* torqueOut,
53 float* torque_scalar);
54 float calculateAlpha(float* v, float rho, float incidence, float cyc,
55 float alphaalt, float *torque,float *returnlift=0);
56 void setlastnextrp(Rotorpart*lastrp,Rotorpart*nextrp,
57 Rotorpart *oppositerp);
58 void setTorque(float torque_max_force,float torque_no_force);
59 void setOmega(float value);
60 void setOmegaN(float value);
61 void setDdtOmega(float value);
64 void setAlphamin(float f);
65 void setAlphamax(float f);
66 void setAlpha0(float f);
67 void setAlpha0factor(float f);
68 void setLen(float value);
69 void setParameter(char *parametername, float value);
70 void setRotor(Rotor *rotor);
71 void setTorqueOfInertia(float toi);
74 void strncpy(char *dest,const char *src,int maxlen);
75 Rotorpart *_lastrp,*_nextrp,*_oppositerp;
78 float _pos[3]; // position in local coords
79 float _posforceattac[3]; // position in local coords
80 float _normal[3]; //direcetion of the rotation axis
81 float _torque_max_force;
82 float _torque_no_force;
84 float _direction_of_movement[3];
85 float _directionofzentipetalforce[3];
86 float _directionofrotorpart[3];
87 float _zentipetalforce;
101 float _alphamin,_alphamax,_alpha0,_alpha0factor;
104 float _omega,_omegan,_ddt_omega;
108 float _twist; //outer incidence = inner inner incidence + _twist
109 int _number_of_segments;
110 float _rel_len_where_incidence_is_measured;
111 float _rel_len_blade_start;
112 float _rel_len_blade_measured;
114 float _torque_of_inertia;
116 // total torque of rotor (scalar) for calculating new rotor rpm
117 char _alphaoutputbuf[2][256];
121 }; // namespace yasim
122 #endif // _ROTORPART_HPP