Contrôles TMD

Le fichier facultatif « controls.tmd » ajoute des points de clic 3D au cockpit virtuel sous la forme d'un cylindre, d'une boîte, d'une sphère ou d'anneaux. Chacun des points de clic peut se voir attribuer différents messages qui permettent à l'utilisateur d'interagir avec le cockpit en utilisant les boutons gauche et droit de la souris ainsi que la molette de la souris ou en faisant glisser la souris avec le bouton gauche de la souris enfoncé ou en pointant dessus. avec des contrôleurs VR, en le retournant ou en saisissant et en déplaçant le contrôleur manuel VR.

Un message envoyé à partir de « controls.tmd » se voit attribuer une valeur et un qualificatif qui permettent soit l'affectation directe d'une valeur, soit une étape (incrémentation/décrémentation), soit un basculement. Les messages sont reçus par les objets 'input\_control', 'input\_default', 'input\_discrete', 'input\_binary', 'input\_switch', 'input\_knob',… dans la section dynamique du fichier principal du fichier TMD de l'avion .

La définition d’un point de clic est plutôt simple. Après avoir décidé de la forme la mieux adaptée, la position est ajustée dans l'attribut R0, l'orientation est définie par la matrice B0, puis la taille est ajustée. Pour le glissement des mains et de la souris VR, il est important de définir également un axe de « Direction ». Si un autre avion utilise déjà une fonction similaire, il est préférable de copier le nom du message depuis son fichier « controls.tmd ». Mais vous pouvez également utiliser vos propres noms personnalisés pour les messages si vous le souhaitez, notez simplement que certaines affectations de touches par défaut peuvent alors ne pas fonctionner.

L'expérience montre qu'il est recommandé de trier les points de clic dans le fichier « controls.tmd », de la même manière qu'un pilote scannerait le cockpit. Par exemple, la plupart des panneaux supérieurs des avions de ligne comportent des colonnes qui sont parcourues une par une, de haut en bas, en commençant par la colonne de gauche. Trier les points de clic de la même manière permettra de retrouver plus facilement un point de clic plus tard.

#### Exemple

```
<[fichier][][]
     <[gestionnaire de modèles][][]
         <[pointer_list_tmcontrol][ControlObjects][]

             // pilote automatique
             <[control_box][AutopilotKeyFD][33]
                 <[string8][Type][ bouton ]>
                 <[vector3_float64][R0][ 12.6453291050949 0.2585 -0.13 ]>
                 <[matrix3_float64][B0][ 0.241921895599668 0.0 0.970295726275997 0.0 1.0 0.0 0.970295726275997 0.0 -0.241921895599668 ]>
                 <[vector3_float64][Direction][ 0.965926 0.0 -0.258819 ]>
                 <[control_message][OnPush][]
                     <[string8][Message][Autopilot.FlightDirector0]>
                     <[string8][Qualificateurs][toggle]>
                     <[float64][Valeur][1.0]>
                 >
                 <[vector3_float64][Dimensions][0.011 0.013 0.004]>
             >
             <[control_cylinder][SelectedAirspeed][24]
                 <[string8][Type][ bouton ]>
                 <[vector3_float64][R0][ 12.6392172575 0.0885 -0.1016476485]>
                 <[matrix3_float64][B0][ 0,965926 0,0 -0,258819 0,0 1,0 0,0 0,258819 0,0 0,965926 ]>
                 <[vector3_float64][Direction][ 0.965926 0.0 -0.258819 ]>
                 <[float64][StepAngle][0.1]>
                 <[float64][StepDistance][0.02]>
                 <[control_message][OnPush][]
                     <[string8][Message][Autopilot.ManagedSpeed]>
                     <[string8][Qualifiers][event]>
                     <[float64][Valeur][1.0]>
                 >
                 <[control_message][OnPull][]
                     <[string8][Message][Autopilot.Speed]>
                     <[string8][Qualifiers][event]>
                     <[float64][Valeur][1.0]>
                 >
                 <[control_message][OnRotate][]
                     <[string8][Message][Autopilot.SelectedSpeed]>
                     <[string8][Qualifiers][step]>
                     <[float64][Valeur][1.0]>
                 >
                 <[float64][Rayon][0.008]>
                 <[float64][Longueur][0.026]>
             >

             // levier
             <[control_cylinder][GearLeverKnob][31]
                 <[string8][Type][ levier à bascule ]>
                 <[vector3_float64][R0][ 12.81048 -0.1424327 -0.4347819 ]>
                 <[matrix3_float64][B0][ 0.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 ]>
                 <[vector3_float64][Direction][ 0.25882 0.0 0.965926 ]>
                 <[control_message][OnStep][]
                     <[string8][Message][Controls.Gear]>
                     <[string8][Qualifiers][step]>
                     <[float64][Valeur][-1.0]>
                 >
                 <[float64][Rayon][0.012]>
                 <[float64][Longueur][0.012]>
             >
             <[control_box][GearLeverBase][31]
                 <[string8][Type][ base à levier ]>
                 <[vector3_float64][R0][ 12.83026 -0.1420449 -0.4704933 ]>
                 <[matrix3_float64][B0][ 0,25882 0,0 0,965926 0,0 1,0 0,0 -0,965926 0,0 0,25882 ]>
                 <[vector3_float64][Direction][ 0.25882 0.0 0.965926 ]>
                 <[control_message][OnStep][]
                     <[string8][Message][Controls.Gear]>
                     <[string8][Qualifiers][step]>
                     <[float64][Valeur][-1.0]>
                 >
                 <[vector3_float64][Dimensions][0.05 0.012 0.003]>
             >

         >
     >
 >

```