... | ... |
@@ -41,18 +41,20 @@ var deviceClass = { |
41 | 41 |
m.knobs = knobsClass.new(m.node); |
42 | 42 |
m.softkeys = softkeysClass.new(m.node, m.role); |
43 | 43 |
m.display.loadsvg(); |
44 |
- m.display.loadGroup({hide : [ |
|
44 |
+ m.display.loadGroup({ |
|
45 |
+ hide : [ |
|
45 | 46 |
'Failures', |
46 | 47 |
'SoftKeysTexts', |
47 | 48 |
'PFD-Widgets', |
48 |
-# 'MFD-Widgets', |
|
49 | 49 |
'COMM', |
50 | 50 |
'XPDR-TIME', |
51 | 51 |
'NAV', |
52 | 52 |
'FlightInstruments', |
53 | 53 |
'VDI', |
54 | 54 |
'OMI', |
55 |
- ]}); |
|
55 |
+ ], |
|
56 |
+ clip : 'PitchScale', |
|
57 |
+ }); |
|
56 | 58 |
zkv.getNode(m.role ~ 'init').setIntValue(0); |
57 | 59 |
m.setstatus(d + 1); |
58 | 60 |
return m; |
... | ... |
@@ -39,8 +39,10 @@ var displayClass = { |
39 | 39 |
'COMM', |
40 | 40 |
'NAV', |
41 | 41 |
'XPDR-TIME', |
42 |
- 'FlightInstruments' |
|
42 |
+ 'FlightInstruments', |
|
43 |
+ 'Horizon', |
|
43 | 44 |
]}); |
45 |
+ me.updateAi(getprop('/orientation/roll-deg'),getprop('orientation/pitch-deg')); |
|
44 | 46 |
me.progress.removeAllChildren(); |
45 | 47 |
me.progress = nil; |
46 | 48 |
me.showInitProgress = nil; |
... | ... |
@@ -83,8 +85,16 @@ var displayClass = { |
83 | 85 |
me.screenElements[e].hide(); |
84 | 86 |
elsif (t == 'show') |
85 | 87 |
me.screenElements[e].show(); |
86 |
- elsif (t == 'rot' or t == 'trans') |
|
87 |
- me.screenElements[e].createTransform(); |
|
88 |
+ elsif (t == 'rot' or t == 'trans') { |
|
89 |
+ if (! contains(me.screenElements[e], t)) |
|
90 |
+ me.screenElements[e][t] = me.screenElements[e].createTransform(); |
|
91 |
+ } |
|
92 |
+ elsif (t == 'clip') { |
|
93 |
+ if (contains(me.clips, e)) |
|
94 |
+ me.screenElements[e].set("clip", me.clips[e]); |
|
95 |
+ else |
|
96 |
+ print('no defined clip for ' ~ e); |
|
97 |
+ } |
|
88 | 98 |
else |
89 | 99 |
print('unknown method ' ~ t); |
90 | 100 |
}; |
... | ... |
@@ -103,4 +113,19 @@ var displayClass = { |
103 | 113 |
} |
104 | 114 |
} |
105 | 115 |
}, |
116 |
+ |
|
117 |
+ clips : { |
|
118 |
+ PitchScale : "rect(70,664,370,256)", |
|
119 |
+ }, |
|
120 |
+ |
|
121 |
+ updateAi: func(roll,pitch){ |
|
122 |
+ if (pitch > 80) |
|
123 |
+ pitch = 80; |
|
124 |
+ elsif(pitch < -80) |
|
125 |
+ pitch = -80; |
|
126 |
+ me.screenElements.Horizon |
|
127 |
+ .setRotation(-roll * D2R) |
|
128 |
+ .setTranslation(0, pitch * 6.8571428); |
|
129 |
+ settimer(func me.updateAi(getprop('/orientation/roll-deg'),getprop('orientation/pitch-deg')), 0.1); |
|
130 |
+ }, |
|
106 | 131 |
}; |
... | ... |
@@ -20,21 +20,23 @@ |
20 | 20 |
Cet instrument était prévu pour s'approcher du Garmin Primus 1000. Au début il était écrit avec une multitude de petits objets 3D placés sur l'écran avec un |
21 | 21 |
écart suffisament faible pour que le pilote ait l'impression d'un vrai écran 2D. |
22 | 22 |
|
23 |
-Il incluait aussi un moyen de rafraîchir les écrans sans altérer la vitesse d'affichage avec un système de rotation de fonctions qui chacune l'une après l'autre |
|
23 |
+J'avais écrit le ZKV500 qui se rapprochait d'un GPS Garmin 500, donc ZKV1000 semblait tout indiqué :-), ZKV pour Zakharov... |
|
24 |
+ |
|
25 |
+Le ZKV1000 ancien (version XML) incluait aussi un moyen de rafraîchir les écrans sans altérer la vitesse d'affichage avec un système de rotation de fonctions qui chacune l'une après l'autre |
|
24 | 26 |
s'occupait d'un seul ou d'un petit groupe d'élément à des fréquences diverses. Que l'instrument ne freine pas le simulateur était primordial. |
25 | 27 |
|
26 |
-Le zkv1000 ancien incluait aussi une carte qui nécessitait d'être créée au préalable via ImageMagick et un autre outil dont j'ai perdu le nom. Le script aussi a disparu mais en gros il créeait |
|
27 |
-une carte en collant les bordures des cartes adjacentes à celle dans laquelle l'appareil se trouvait. Ça marchait mais le rendu était pas terrible, très peu flexible. |
|
28 |
+Le zkv1000 ancien incluait aussi une carte qui nécessitait d'être créée au préalable via ImageMagick et un autre outil de FG dont j'ai perdu le nom. Le script en Perl créeait |
|
29 |
+une carte en collant les bordures des cartes adjacentes à celle dans laquelle l'appareil se trouvait, avec ImageMagick. Ça marchait mais le rendu était pas terrible, très peu flexible (pas de zoom, pas de génération à la volée). |
|
28 | 30 |
|
29 |
-Abandonné, le zkv1000 a été amélioré un peu par d'autres dont j'ai oublié le nom notamment l'apport du radar de relief, mais la façon de faire n'optimisait pas du tout |
|
31 |
+J'ai abandonné le zkv1000 par les aléeas de la vie, il a été amélioré un peu par d'autres dont j'ai oublié le nom notamment l'apport du radar de relief, mais la façon de faire n'optimisait pas du tout |
|
30 | 32 |
la vitesse d'affichage, et à moins d'avoir une bête de course le radar était inutilisable. |
31 | 33 |
|
32 |
-Il incluait aussi un ensemble de menus, avec navigation par les boutons, et une recherche des balises et aéroports, ainsi qu'un calculateur de trajectoire |
|
34 |
+Le zkv1000 incluait aussi un ensemble de menus intégrés, avec navigation par les boutons, et une recherche des balises et aéroports, ainsi qu'un calculateur de trajectoire |
|
33 | 35 |
simple (balise à balise). |
34 | 36 |
|
35 | 37 |
Regardant de temps à autre ce que devenait FG je découvrais Canvas, le SVG, et les premières réalisations de PFD/MFD avec ce nouveau jouet. |
36 | 38 |
|
37 |
-Trop tentant, il fallait essayer de rendre le zkv1000 Canvas-compliant. Et l'aventure commence! |
|
39 |
+Trop tentant, il fallait essayer de rendre le zkv1000 Canvas-compliant. Et l'aventure (re)commence! |
|
38 | 40 |
|
39 | 41 |
# Objectifs |
40 | 42 |
Il ne sert à rien d'essayer de reproduire à l'identique le Garmin Primus 1000, d'autres y arriveront bien mieux que moi pour créer une copie fidèle. |
... | ... |
@@ -43,40 +45,40 @@ Vous êtes prévenus! |
43 | 45 |
|
44 | 46 |
Dans ce projet je privilégie particulièrement |
45 | 47 |
|
46 |
-1. la modularité pour des éviolutions futures |
|
47 |
-1. l'optimisation, enfin... supposée, mes qualités de dev ne sont probablement assez élevées ;) |
|
48 |
+1. la modularité pour des évolutions futures |
|
49 |
+1. l'optimisation, enfin... supposée, mes qualités de dev' ne sont probablement assez élevées ;) |
|
48 | 50 |
1. une intégration la plus simple possible dans n'importe quel appareil |
49 | 51 |
1. une utilisation qui se veut proche de ce que fait l'instrument de référence, mais en y intégrant les avantages d'être dans un simulateur et pas dans la vie réelle: |
50 | 52 |
* ajout de fonctionnalités spécifiques |
51 |
- * retraits de fonctionnalités peu utiles |
|
53 |
+ * retraits de fonctionnalités peu utiles dans un simulateur |
|
52 | 54 |
|
53 | 55 |
# État acuel |
54 |
-J'ai récupéré sur l'avion Extra500 l'implémentation du Garmin Primus 1000, et notamment les objets 3D, et les SVG. Les objets 3D sont bien plus jolis que ceux du premier zkv1000, et le SVG est très complet. |
|
56 |
+J'ai récupéré l'implémentation du GDU-104X (je ne sais plus où) l'implémentation du Garmin Primus 1000, et notamment les objets 3D, et les SVG. Les objets 3D sont bien plus jolis que ceux du premier zkv1000 (le .ac de l'ancien était tout cassé, pas réussi à réparer), et le SVG comportait déjà beaucoup d'éléments. |
|
55 | 57 |
|
56 | 58 |
## général |
57 |
-![][10%] |
|
58 |
-**INUTILISABLE** |
|
59 |
+![][20%] |
|
60 |
+**de moins en moins INUTILISABLE** |
|
59 | 61 |
|
60 | 62 |
* double-écran ![][30%]: pas d'écran de MFD, uniquement PFD |
61 |
-* ![][ongoing]animations écrans ![][10%]: l'animation de l'affichage n'est pas du tout géré, mais les bases sont là |
|
63 |
+* ![][ongoing]animations écrans ![][20%]: wrapper pour l'affichage des objets (et plus), AI fonctionnel, VS, ALT et IAS, Compas à suivre, |
|
62 | 64 |
* animation modèle 3D ![][90%]: les boutons et molettes fonctionnent (radio, comm, softkey, etc.), il manque les textures pour les botons du MFD |
63 | 65 |
|
64 | 66 |
## dans le détail |
65 | 67 |
* apprentissage: |
66 |
- * Canvas ![][40%] |
|
68 |
+ * Canvas ![][50%] |
|
67 | 69 |
* SVG |
68 |
- * InkScape ![][50%] (enfin pour les besoins du zkv1000) |
|
70 |
+ * InkScape ![][60%] (enfin pour les besoins du zkv1000) |
|
69 | 71 |
* format ![][50%] |
70 | 72 |
* archi de l'image importée ![][70%] (avec modification directe dans Vim) |
71 | 73 |
* XML ![][80%] |
72 |
-* ![][ongoing]structure Nasal ![][50%]: |
|
74 |
+* ![][ongoing]structure Nasal ![][60%]: |
|
73 | 75 |
* en apprendre plus sur les classes (les parents multiples) |
74 |
- * la possibilité de gérer le zkv1000 par la console Nasal |
|
76 |
+ * enfin retrouvée la possibilité de gérer le zkv1000 par la console Nasal et même le nouvel REPL ![][100%] |
|
75 | 77 |
|
76 | 78 |
## feuille de route |
77 | 79 |
1. avoir un PFD utilisable avec les fonctions de base, sans radio-navigation ![][10%] |
78 | 80 |
1. afficher l'EIS ![][0%] |
79 |
-1. afficher les widgets du PFD ![][0%] |
|
81 |
+1. afficher les widgets du PFD ![][10%] |
|
80 | 82 |
1. rendre disponible le MFD ![][0%] |
81 | 83 |
|
82 | 84 |
# documentation |
... | ... |
@@ -39,7 +39,9 @@ |
39 | 39 |
inkscape:window-maximized="1" |
40 | 40 |
inkscape:snap-grids="true" |
41 | 41 |
inkscape:snap-to-guides="true" |
42 |
- inkscape:object-paths="true" /> |
|
42 |
+ inkscape:object-paths="true" |
|
43 |
+ inkscape:measure-start="461.034,2788.5" |
|
44 |
+ inkscape:measure-end="459.63,483.503" /> |
|
43 | 45 |
<defs |
44 | 46 |
id="defs3142"> |
45 | 47 |
<linearGradient |
... | ... |
@@ -136,18 +138,6 @@ |
136 | 138 |
x2="401.00098" |
137 | 139 |
y2="-263.58203" |
138 | 140 |
gradientUnits="userSpaceOnUse" /> |
139 |
- <clipPath |
|
140 |
- clipPathUnits="userSpaceOnUse" |
|
141 |
- id="clipPath5750"> |
|
142 |
- <rect |
|
143 |
- style="fill:none;stroke:none;stroke-width:1.0144949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
|
144 |
- id="rect5752" |
|
145 |
- width="439.49249" |
|
146 |
- height="335.02554" |
|
147 |
- x="239" |
|
148 |
- y="55.236343" |
|
149 |
- inkscape:label="Clip-attitude" /> |
|
150 |
- </clipPath> |
|
151 | 141 |
<clipPath |
152 | 142 |
clipPathUnits="userSpaceOnUse" |
153 | 143 |
id="clipPath6101"> |
... | ... |
@@ -238,12 +228,17 @@ |
238 | 228 |
style="display:inline"> |
239 | 229 |
<g |
240 | 230 |
style="display:inline" |
241 |
- inkscape:label="horizon" |
|
242 |
- id="layer4"> |
|
231 |
+ inkscape:label="Horizon" |
|
232 |
+ id="Horizon" |
|
233 |
+ inkscape:transform-center-x="0.62976698" |
|
234 |
+ inkscape:transform-center-y="-1.0827573"> |
|
243 | 235 |
<g |
244 | 236 |
style="display:inline" |
245 |
- id="Horizon" |
|
246 |
- transform="translate(-14.6369,-1.1372986)"> |
|
237 |
+ id="SkyAndGround" |
|
238 |
+ transform="translate(-14.6369,-1.1372986)" |
|
239 |
+ inkscape:label="SkyAndGround" |
|
240 |
+ inkscape:transform-center-x="1" |
|
241 |
+ inkscape:transform-center-y="-1.25"> |
|
247 | 242 |
<rect |
248 | 243 |
style="fill:#004cff;fill-opacity:1;stroke:none" |
249 | 244 |
id="rect4014" |
... | ... |
@@ -264,68 +259,77 @@ |
264 | 259 |
id="HorizonLine" |
265 | 260 |
d="M -1076.5,284.50001 H 1995.5001" |
266 | 261 |
style="display:inline;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" |
267 |
- inkscape:label="#HorizonLine" /> |
|
262 |
+ inkscape:label="HorizonLine" /> |
|
268 | 263 |
<g |
269 | 264 |
id="PitchScale" |
270 | 265 |
inkscape:transform-center-y="-0.2578125" |
271 | 266 |
transform="translate(0,0.25779785)" |
272 |
- clip-path="url(#clipPath5750)"> |
|
273 |
- <path |
|
274 |
- style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
275 |
- d="m 423.336,557.32 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
276 |
- id="use7417" |
|
277 |
- inkscape:connector-curvature="0" |
|
278 |
- inkscape:tile-x0="423.336" |
|
279 |
- inkscape:tile-y0="491.87502" /> |
|
280 |
- <path |
|
281 |
- inkscape:tile-y0="491.87502" |
|
282 |
- inkscape:tile-x0="423.336" |
|
283 |
- inkscape:connector-curvature="0" |
|
284 |
- id="use7419" |
|
285 |
- d="m 423.336,625.76498 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 L 471.12501,560.32 h -23.25 z" |
|
286 |
- style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
287 |
- <path |
|
288 |
- inkscape:tile-y0="491.87502" |
|
289 |
- inkscape:tile-x0="423.336" |
|
290 |
- inkscape:connector-curvature="0" |
|
291 |
- id="use7421" |
|
292 |
- d="m 423.336,694.20996 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
293 |
- style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
294 |
- <path |
|
295 |
- inkscape:tile-y0="491.87502" |
|
296 |
- inkscape:tile-x0="423.336" |
|
297 |
- inkscape:connector-curvature="0" |
|
298 |
- id="use7423" |
|
299 |
- d="m 423.336,762.65493 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
300 |
- style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
301 |
- <path |
|
302 |
- inkscape:tile-y0="491.87502" |
|
303 |
- inkscape:tile-x0="423.336" |
|
304 |
- inkscape:connector-curvature="0" |
|
305 |
- id="use7425" |
|
306 |
- d="m 423.336,831.09991 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
307 |
- style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
308 |
- <path |
|
309 |
- style="fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
310 |
- d="M 423.33599,-262.0778 H 442.375 l 17.125,51.13265 17.125,-51.13265 h 19.039 l -24.539,65.44498 h -23.25 z" |
|
311 |
- id="use7411" |
|
312 |
- inkscape:connector-curvature="0" |
|
313 |
- inkscape:tile-x0="423.33599" |
|
314 |
- inkscape:tile-y0="-262.0778" /> |
|
315 |
- <path |
|
316 |
- style="fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
317 |
- d="M 423.33599,-193.63282 H 442.375 l 17.125,51.13265 17.125,-51.13265 h 19.039 l -24.539,65.44498 h -23.25 z" |
|
318 |
- id="use7413" |
|
319 |
- inkscape:connector-curvature="0" |
|
320 |
- inkscape:tile-x0="423.33599" |
|
321 |
- inkscape:tile-y0="-262.0778" /> |
|
322 |
- <path |
|
323 |
- style="fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
324 |
- d="M 423.33599,-125.18784 H 442.375 l 17.125,51.13265 17.125,-51.13265 h 19.039 l -24.539,65.44498 h -23.25 z" |
|
325 |
- id="use7415" |
|
326 |
- inkscape:connector-curvature="0" |
|
327 |
- inkscape:tile-x0="423.33599" |
|
328 |
- inkscape:tile-y0="-262.0778" /> |
|
267 |
+ clip-path="none" |
|
268 |
+ style="display:inline"> |
|
269 |
+ <g |
|
270 |
+ id="Chevrons.-30" |
|
271 |
+ inkscape:label="Chevrons.-30"> |
|
272 |
+ <path |
|
273 |
+ inkscape:tile-y0="491.87502" |
|
274 |
+ inkscape:tile-x0="423.336" |
|
275 |
+ inkscape:connector-curvature="0" |
|
276 |
+ id="use7417" |
|
277 |
+ d="m 423.336,557.32 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
278 |
+ style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
279 |
+ <path |
|
280 |
+ style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
281 |
+ d="m 423.336,625.76498 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 L 471.12501,560.32 h -23.25 z" |
|
282 |
+ id="use7419" |
|
283 |
+ inkscape:connector-curvature="0" |
|
284 |
+ inkscape:tile-x0="423.336" |
|
285 |
+ inkscape:tile-y0="491.87502" /> |
|
286 |
+ <path |
|
287 |
+ style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
288 |
+ d="m 423.336,694.20996 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
289 |
+ id="use7421" |
|
290 |
+ inkscape:connector-curvature="0" |
|
291 |
+ inkscape:tile-x0="423.336" |
|
292 |
+ inkscape:tile-y0="491.87502" /> |
|
293 |
+ <path |
|
294 |
+ style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
295 |
+ d="m 423.336,762.65493 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
296 |
+ id="use7423" |
|
297 |
+ inkscape:connector-curvature="0" |
|
298 |
+ inkscape:tile-x0="423.336" |
|
299 |
+ inkscape:tile-y0="491.87502" /> |
|
300 |
+ <path |
|
301 |
+ style="display:inline;fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" |
|
302 |
+ d="m 423.336,831.09991 h 19.03901 l 17.125,-51.13265 17.125,51.13265 h 19.039 l -24.539,-65.44498 h -23.25 z" |
|
303 |
+ id="use7425" |
|
304 |
+ inkscape:connector-curvature="0" |
|
305 |
+ inkscape:tile-x0="423.336" |
|
306 |
+ inkscape:tile-y0="491.87502" /> |
|
307 |
+ </g> |
|
308 |
+ <g |
|
309 |
+ id="Chevrons.50" |
|
310 |
+ inkscape:label="Chevrons.50"> |
|
311 |
+ <path |
|
312 |
+ inkscape:tile-y0="-262.0778" |
|
313 |
+ inkscape:tile-x0="423.33599" |
|
314 |
+ inkscape:connector-curvature="0" |
|
315 |
+ id="use7411" |
|
316 |
+ d="M 423.33599,-262.0778 H 442.375 l 17.125,51.13265 17.125,-51.13265 h 19.039 l -24.539,65.44498 h -23.25 z" |
|
317 |
+ style="fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
318 |
+ <path |
|
319 |
+ inkscape:tile-y0="-262.0778" |
|
320 |
+ inkscape:tile-x0="423.33599" |
|
321 |
+ inkscape:connector-curvature="0" |
|
322 |
+ id="use7413" |
|
323 |
+ d="M 423.33599,-193.63282 H 442.375 l 17.125,51.13265 17.125,-51.13265 h 19.039 l -24.539,65.44498 h -23.25 z" |
|
324 |
+ style="fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
325 |
+ <path |
|
326 |
+ inkscape:tile-y0="-262.0778" |
|
327 |
+ inkscape:tile-x0="423.33599" |
|
328 |
+ inkscape:connector-curvature="0" |
|
329 |
+ id="use7415" |
|
330 |
+ d="M 423.33599,-125.18784 H 442.375 l 17.125,51.13265 17.125,-51.13265 h 19.039 l -24.539,65.44498 h -23.25 z" |
|
331 |
+ style="fill:#ff3200;fill-opacity:1;fill-rule:evenodd;stroke:none" /> |
|
332 |
+ </g> |
|
329 | 333 |
<g |
330 | 334 |
inkscape:tile-y0="213.99985" |
331 | 335 |
inkscape:tile-x0="404.47864" |
... | ... |
@@ -4525,7 +4529,7 @@ |
4525 | 4529 |
sodipodi:role="line">1</tspan><tspan |
4526 | 4530 |
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:120.00000477%;font-family:sans-serif;-inkscape-font-specification:'Sans, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#ffffff;fill-opacity:1" |
4527 | 4531 |
y="294.37515" |
4528 |
- x="233.68744" |
|
4532 |
+ x="224.13666" |
|
4529 | 4533 |
sodipodi:role="line" |
4530 | 4534 |
id="tspan5009">0</tspan></text> |
4531 | 4535 |
<g |
... | ... |
@@ -7532,7 +7536,7 @@ |
7532 | 7536 |
<g |
7533 | 7537 |
id="Failures" |
7534 | 7538 |
inkscape:label="Failures" |
7535 |
- style="display:none"> |
|
7539 |
+ style="display:inline"> |
|
7536 | 7540 |
<g |
7537 | 7541 |
id="NoAttitude" |
7538 | 7542 |
transform="translate(0.00225444,0.25658069)" |