J'ai oublié de vous dire s'il etait possible d'utiliser tclite pour créer les petits programmes pour orbiter?
TClite est un compilateur mais je ne le connais pas. Mon instinct me pousse à dire non. Si tu veux, un
compilateur qu'aucun autre créateur d'addon n'utilise ici, sera plus un handicap qu'autre chose je pense.
Le SDK n'aime d'alleurs pas forcément tous les compilateurs...
Pour animer une surface de controle, c'est dans le sdk. En gros, tu va définir une animation dans ton code et lier cette
animation à un CreateControlSurface(AIRCTRL_TYPE type, double area, double dCl, VECTOR3 &ref, int axis =
AIRCTRL_AXIS_AUTO, UINT anim = (UINT)-1);
Pour les membres de AIRCTRL_TYPE, tu les trouveras listés dans
API_reference.pdf ainsi que ceux de
AIRCTRL_AXIS.
N'hésites pas une seule seconde, ouvres le code source du deltaglider (deltaglider.cpp qui se trouve dans
orbitersdk/sample/deltaglider/ ) et regardes comment c'est fait. Toutes les surfaces de contrôle y sont
fonctionnelles.
Par exemple:
deans le clbkSetClassCaps tu va trouver:
CreateControlSurface (AIRCTRL_RUDDER,0.8, 1.5, _V( 0,0,-7.2), AIRCTRL_AXIS_YPOS,
anim_rudder);
lié donc à cette animation:
// ***** Rudder animation *****
static UINT RRudderGrp[2] = {GRP_RRudder1,GRP_RRudder2};
static MGROUP_ROTATE RRudder (0, RRudderGrp, 2,
_V( 8.668,0.958,-6.204), _V( 0.143,0.975,-0.172), (float)(-60*RAD));
static UINT LRudderGrp[2] = {GRP_LRudder1,GRP_LRudder2};
static MGROUP_ROTATE LRudder (0, LRudderGrp, 2,
_V(-8.668,0.958,-6.204), _V(-0.143,0.975,-0.172), (float)(-60*RAD));
anim_rudder = CreateAnimation (0.5);
AddAnimationComponent (anim_rudder, 0, 1, &RRudder);
AddAnimationComponent (anim_rudder, 0, 1, &LRudder);
Notes que l'animation est par défaut initialisé à 0.5 et non 0, la surface est ainsi centrée à sa position neutre
