File: Partie2_Interface.tex

package info (click to toggle)
cloudcompare 2.11.3-7.1
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 58,224 kB
  • sloc: cpp: 229,982; ansic: 30,723; makefile: 84; sh: 20
file content (920 lines) | stat: -rw-r--r-- 73,711 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
\chapter{Interface}
\label{cha:Interface}

\section{Fentre principale}
\label{section:mainWindow}

La fentre principale de \emph{CloudCompare} est constitue des lments
suivants :\\


\begin{center}
\includegraphics[width=0.9\textwidth]{images/Partie2_Interface/MainWindow}\\
\end{center}

\par
\textbf{\textcolor{red}{1}} : \index{menus, barre de}Barre de menus de l'application\\
Cette barre permet d'accder  la majorit des fonctions de \emph{CloudCompare} ainsi qu'aux paramtres
de l'application et  divers outils de gestion de l'interfae graphique. En fonction des objets slectionns,
certains des menus ou sous-menus ne sont pas accessibles (par exemple, les menus << Edit >> et << Tools >>
restent inactifs tant qu'aucun objet n'est slectionn et le sous-menu << Scalar fields >> du menu << Edit >>
ne sera accessible que si l'entit slectionne possde au moins un champ scalaire).\\

\par
\textbf{\textcolor{red}{2-5}} : \index{outils, barre de}Barres d'outils\\
Les diffrentes icnes de ces barres permettent d'accder
rapidement aux fonctions principales de \emph{CloudCompare}. Ces fonctions sont gnralement aussi
accessibles via les menus situs au dessus (voir \textbf{\textcolor{red}{1}}) mis  part les deux
outils de modifiation interfactive des entits 3D (segmentation et transformation) et certains
outils de modification de l'affichage 3D (zoom, centre de rotation, points de vue prdfinis, etc.).
\begin{itemize}
\item la barre \textbf{\textcolor{red}{2}} (\emph{Main tools}) contient des icnes des fonctions de traitement
des entits 3D.
\item la barre \textbf{\textcolor{red}{3}} (\emph{Scalar field tools}) contient des icnes de fonctions de
traitement des champs scalaires.
\item la barre \textbf{\textcolor{red}{4}} (\emph{Plugins}) contient les icnes des plugins. La premire partie est
consacre aux plugins de type \emph{OpenGL filters} (shaders) et la seconde aux plugins standards (algorithmes). Cette
barre est remplie dynamiquement en fonction des plugins chargs par le programme au lancement.
\item la barre \textbf{\textcolor{red}{5}} (\emph{Viewing tools}) permet de modifier les paramtres de visualisation 3D.
\\
\end{itemize}
Toutes ces barres sont dplaables (par \emph{glisser-dplacer} ou \emph{drag \& drop} en anglais).
Leur visibilit peut tre modifie via le sous-menu << Display > Toolbars >>.\\

\par
\textbf{\textcolor{red}{6}} : \index{Arbre de navigation|see{navigation}}Arbre de navigation\\
Dans cette zone apparat une reprsentation graphique de la \emph{base de donnes} actuellement en mmoire. Elle permet de visualiser sous forme d'arborescence l'ensemble des entits charges ou cres par l'application (voir section \ref{Arbre-de-navigation}). Il est notamment possible de slectionner une ou plusieurs entits en cliquant sur leur nom dans cet arbre (l'autre manire de slectionner des entits est de cliquer sur leur reprsentation dans la vue 3D associe - voir \textbf{\textcolor{red}{8}}). Lorsque une entit est slectionne, des informations et options sont affiches dans la vue \textbf{\textcolor{red}{7}} (voir ci-dessous).\\

\par
\textbf{\textcolor{red}{7}} : \index{proprits, fentre de}Fentre de proprits\\
Si une seule entit est slectionne, cette vue contient des informations et certaines
options d'affichage notamment (voir section \ref{Fenetre_proprietes}).\\

\par
\textbf{\textcolor{red}{8}}: \index{Vues 3D}Vues 3D\\
Ces vues permettent de visualiser en trois dimensions les entits gomtriques
(nuages, maillages, etc.). \emph{CloudCompare} offre la possibilit de crer plusieures vues
3D  la fois. Ces vues peuvent tre gres via le menu ddi << 3D Views >>. Chaque entit
peut-tre affecte  une vue 3D particulire via ses proprits (voir la liste droulante
\emph{Current Display} des proprits communes en section \ref{subsection:commonProperties}).\\

\par
\textbf{\textcolor{red}{9}} : \index{console}console\\
Cette zone contient l'historique des informations lies  l'excution de \emph{CloudCompare}
(typiquement des informations supplmentaires non estentielles dlivres par les algorithmes).
Elle peut tre affiche ou masqu via la commande \emph{Console} du menu << Display >>
(raccourci clavier : F8).\\

\par
Dans la suite de cette section, nous allons dtailler les fonctionnalits relatives  la manipulation et  la visualisation des diffrentes entits de la base de donnes de \emph{CloudCompare}. L'utilisateur pourra se rfrer directement au chapitre suivant (Chapitre~\ref{cha:Fonctions}) pour obtenir des informations dtailles sur les fonctions et algorithmes applicables  ces entits.\\



\section{Base de donnes}

\subsection{Arbre de navigation\label{Arbre-de-navigation}\index{navigation, fentre de}}

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/DBTree}
\end{center}

\par
Comme nous l'avons vu prcdemment, \emph{CloudCompare} affiche l'ensemble des entits disponibles
(charges ou crees par l'application) dans l'arbre de navigation qui se trouve par dfaut dans la
partie suprieure gauche de la fentre principale.\\

\par
On peut y trouver les lments suivants :\\
\begin{tabular}{>{\raggedright}m{0.05\textwidth}>{\raggedright}m{0.95\textwidth}}
\includegraphics[height=15px]{images/Partie2_Interface/hObjectSymbol}  & Un groupe d'entits.
Cet lment peut correspondre par exemple  un fichier ouvert (auquel cas il contient toutes les entits
charges  partir de ce fichier). Il peut aussi tre cr et peupl manuellement (voir plus bas).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/CloudSymbol}  & Un nuage de points.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/MeshSymbol}  & Un maillage triangulaire simple.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/MeshGroupSymbol}  & Un ensemble de maillages triangulaires partageant
les mmes sommets (qui sont alors contenus dans un seul nuage de points, qu'on retrouve toujours plus bas dans l'arborescence
sous le nom << vertices >>).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/OctreeSymbol} & Une structure de type \textit{octree}.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/SensorSymbol} & Un objet de type capteur laser terrestre.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/ImageSymbol} & Une photo non calibre.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/calibratedImageSymbol} & Une photo calibre.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/labelSymbol} & Une tiquette 2D standard (associe  un ou plusieurs point).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/rectLabelSymbol} & Une tiquette \textit{zone 2D} (associe  un point de vue).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/dbSymbol} & Un tableau de donnes partag par plusieurs entits (des normales par exemple).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/materialSymbol} & Un ensemble de matriaux (gnralement associ  un ou plusieurs maillages).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/viewportSymbol} & Un point de vue 3D (avec les paramtres de visualisation associs).\tabularnewline
\end{tabular}\\

\par
De manire classique, l'\index{arborescence|see{navigation}}arborescence peut tre
dveloppe ou replie en cliquant respectivement sur les boutons \includegraphics{images/Partie2_Interface/Button+}
et \includegraphics{images/Partie2_Interface/Button-} situs  gauche des jonctions de l'arbre.\\
\par
La case  cocher situe  gauche du nom d'un lment permet elle d'activer ou de dsactiver la branche de l'arbre qui en part. La notion de dsactivation est plus forte qu'un simple affichage/masquage de l'entit (toute entit affichable dans une vue 3D possde une proprit gnrique \emph{Visible} qui permet de grer ceci - voir plus loin). La dsactivation d'une entit s'applique  l'entit elle-mme et  toutes les entits qui lui sont rataches dans l'arboresence). Ces entits ne sont pas affiches et ne sont pas non plus concernes par certaines oprations (comme la segmentation graphique interactive, voir section\ref{subsection:graphicalSegmentation}).\\
\par
Remarque : les groupes d'entits sont juste des \emph{conteneurs}. Ils n'aggrgent pas les caractristiques des lments qu'ils contiennent (un groupe de nuage n'est pas considr comme un nuage). Typiquement, un groupe ne peut pas tre utilis comme entre pour les fonctions de \emph{CloudCompare} : il ne sert que de classeur.\\

\subsection{Slectionner des entits\index{slectionner!des entits}}

Pour slectionner une entit, deux possibilits s'offrent  l'utilisateur : cliquer avec le bouton gauche de la souris soit sur l'entre correspodante dans l'arbre de navigation, soit sur sa reprsentation dans la vue 3D (ceci est vraie pour certaines entits seulement : nuages, maillages et tiquettes 2D). Dans les deux cas, l'entre correspondante dans l'arbre de navigation apparat surligne et l'entit est entoure d'une \index{bote englobante} bote englobante dans \index{Vue 3D}la vue 3D o apparat l'entit. Lorsqu'un lment est slectionn,
les informations qui s'y rapportent apparaissent dans la fentre de proprits (voir section \ref{Fenetre_proprietes}).\\
\par
Il est possible de slectionner plusieurs entits en ayant recours aux mthodes classiques de \index{slection multiple|see{slectionner}}slection multiple :
\begin{itemize}
\item slection des entits une par une en cliquant dessus (dans l'arbre de navigation ou dans une vue 3D) tout en maintenant la touche CTRL enfonce. Pour d-slectionner un objet tout en conservant ceux qui ont dj t slectionns, il faut cliquer une nouvelle fois dessus tout en maintenant la touche CTRL enfonce.
\item slection d'une srie continue d'entits avec la touche MAJ (dans l'arbre de navigation uniquement) : slectionner la premire entit, presser et maintenir la touche MAJ enfonce tout en slectionnant la dernire entit.
\item toujours dans l'arbre de navigation, on peut enfin survoler les objets  slectionner en maintenant le bouton gauche de la souris enfonc.\\
\end{itemize}

\par
La plupart des fonctions de \emph{CloudCompare} ne s'appliquent qu'aux entits slectionnes.
Les entres des menus correspondantes ne sont d'ailleurs actives que lorsque l'utilisateur a slectionn
le type et le nombre d'entits appropris (par exemple, deux nuages ou un nuage et un maillage pour le
calcul de distances).\\

\subsection{Intractions avances avec l'arbre de navigation}

Il est possible de dplacer les entits dans l'arbre de navigation par \emph{drag \& drop} (pour les regrouper dans un mme << groupe >> par exemple). Les << groupes >> sont cres automatiquement lors du chargement depuis un fichier (auquel cas le groupe prend le nom du fichier) mais ils peuvent aussi tre crs par clic sur un lment de l'arbre de navigation (ou dans une partie vide pour crer le groupe  la racine).\\

Attention : dplacer ainsi les entits change leurs relations hirarchiques (ce qui peut avoir des consquences importantes lors de certaines actions, comme la sauvegarde ou la suppression de l'entit parente). De plus les entits ne peuvent pas tre dplaces n'importe o pour maintenir la cohrence interne de la base de donnes.\\

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/contextMenuRightClick}
\end{center}

\par
Un clic droit sur un lment de l'arbre de navigation fait apparaitre un menu contextuel (dont le contenu dpend de l'entit). On retrouve toujours les entres suivantes :
\begin{itemize}
\item \emph{Toggle} - inverse l'tat d'activation de l'entit
\item \emph{Delete} - supprime l'entit
\item \emph{Add empty group} - rajoute un << groupe >> (sous l'entit)\\
\end{itemize}

\par
Si l'entit est affichable en 3D (nuage, maillage, tiquette 2D, etc.), des options supplmentaires permettent d'inverser l'tat de \emph{visibilit} de l'entit elle-mme et de ses composantes ventuelles (couleurs, normales, champ scalaire, etc.).\\
\par
Enfin, si l'entit possde plusieurs sous-entits dans l'arbre, des options permettant la rorganisation
de ces sous-entits peuvent apparaitre (tri automatique par nom, ou tri par type).\\

\subsection{Entits particulires}

\subsubsection{L'octree}\index{octree}

L'octree est une structure destine  acclrer les traitements sur des donnes spatiales.
Il s'agit d'un dcoupage rcursif et hirarchique de l'espace (en \emph{cubes}).
\emph{CloudCompare} associe les nuages de points avec une telle structure dans de trs nombreux cas pour acclerer ses traitements. C'est un type d'octree particulier qui est particulirement rapide  construire, et optimis pour la recherche de plus proches voisins (\textit{ce n'est par contre pas un octree efficace pour l'affichage de type L.O.D. - level of detail - typiquement}).\\
\par
D'un point de vue gnral, l'octree est dfini par \emph{niveaux de subdivison} :
\begin{itemize}
\item Le premier niveau (niveau 0) est le plus petit cube englobant entirement
le nuage de points (une version \textit{cubifie} de la boite englobante).
\item Au niveau $N+1$, l'octree est construit en subdivisant chacun des cubes du
niveau $N$ en 8 sous-cubes de mme taille (en pratique on ne se souvient que des
sous-cubes contenant au moins un point).\\
\end{itemize}
\par
Il n'est pas inintressant pour l'utilisateur de comprendre le principe de cette structure, puisqu'elle occupe une place centrale dans \emph{CloudCompare}.\\
\par
Plus le niveau d'octree est lev :
\begin{itemize}
\item plus le nombre de cubes  traiter est lev : potentiellement $8^{N}=2^{3N}$
cubes au niveau $N$. Pour un ordre d'ides, et bien que cela soit trs peu probable, on peut donc
avoir jusqu' $2^{21}=2~097~152$ de cubes au niveau 7 de l'octree. Au niveau 10, on a
$2^{30}$ cubes, soit un peu plus d'un milliard ! (l encore, cela est extrmement peu
probable ... d'autant plus qu'il faudrait au moins autant de points). En pratique, beaucoup
de cubes sont vides et ne sont donc pas conservs en mmoire, d'o une structure
gnralement beaucoup plus compacte. Enfin, \emph{CloudCompare} utilise un codage spcial
de l'octree qui fait que sa taille est toujours gale au nombre de points du
nuage, et ne dpend donc pas de la rpartition spatiale de celui-ci. \textbf{C'est aussi pour cette
raison que le niveau maximal d'un octree est fix  10 dans la version actuelle de \emph{CloudCompare}} (ce qui permet de coder la position de chaque point et pour tous les niveaux de l'octree sur 3*10 = 30 bits, ce qui tient dans une valeur entire de 4 octets = 32 bits, soit un codage par point pas trop gourmand en mmoire).
\item plus les cubes sont petits : si $a_{N}$ est la taille d'une arte
du cube au niveau $N$ (donc $a_{0}$ est la taille du cube initial), $a_{N}=\frac{a_{0}}{2^{N}}$.
En effet, par construction, on divise par deux la taille des cubes selon chaque dimension lorsque l'on descend d'un niveau. Par exemple, les cellules de l'octree au niveau 5 d'un octree sont 32 fois plus petites que la cellule initiale englobant tout le nuage (au niveau 0).
\item plus le nombre de points par cube est faible : intuitivement, les cubes tant plus petits, ils contiennent (statistiquement) moins de points.
\item plus l'enveloppe de l'octree (la surface globale qui serait forme par l'ensemble des surfaces externes des cubes) est proche du nuage de points originale.\\
\end{itemize}

\begin{figure}[!htb]
\begin{center}
\includegraphics[width=0.3\textwidth]{images/Partie2_Interface/OctreeLevel1}\hfill{}\includegraphics[width=0.3\textwidth]{images/Partie2_Interface/OctreeLevel3}\hfill{}\includegraphics[width=0.3\textwidth]{images/Partie2_Interface/OctreeLevel6}\\
\caption{\label{fig:octreeLevel}Cellules  diffrents niveaux d'octree : niveau
1 (gauche), 3 (milieu) et 6 (droite).}
\end{center}
\end{figure}

Les 3 captures d'cran de la figure~\ref{fig:octreeLevel} donnent un aperu de la rpartition
et de la taille des cellules d'octree  differents niveaux de subdivision.\\

Beaucoup de traitements sur les nuages de points ont recours  un octree. Lorsque cela est possible, le niveau d'octree optimal pour les calculs  effectuer est dtermin de manire automatique par \emph{CloudCompare}. Toutefois, certains algorithmes peuvent demander  l'utilisateur de spcifier un niveau spcifique  utiliser. Dans ces situations, il s'agit gnralement pour l'utilisateur de trouver un niveau qui aboutisse au meilleur compromis entre le nombre de cubes  traiter (qu'on ne veut gnralement pas trop grand, donc une valeur de niveau pas trop leve) et le nombre moyen de points par cube (qu'on ne veut gnralement le plus petit possible, donc une valeur de niveau ... pas trop faible). Trouver le bon niveau peut parfois ncessiter une certaine exprience.\\


\subsubsection{Etiquettes 2D et annotation graphique\index{etiquettes}\label{etiquettes_2D}}

CloudCompare permet d'annoter\index{annotation} un ensemble d'entits 3D via des tiquettes (\textit{2D labels}) de diffrents types.\\
\par
Remarque : ces tiquettes peuvent tre sauves via le format binaire propre  CloudCompare (BIN).\\

\par
\textbf{Etiquette standard}\label{subsection:standardLabel}\\

\begin{figure}[!htb]
\begin{centering}
\includegraphics[width=0.8\textwidth]{images/Partie2_Interface/standardLabels}
\caption{\label{fig:standardLabels}Etiquettes standards}
\end{centering}
\end{figure}

Le premier type, \emph{2D label}, correspond aux tiquettes (mobiles) rattaches  un ou plusieurs points :
\begin{itemize}
\item un point : l'tiquette continent les coordonnes du point, son indice dans le nuage et les valeurs de ses diffrents champs (couleur, normale, champ scalaire affich)
\item deux points (segment) : l'tiquette contient les coordonnes de chaque point et leur indice respectif dans le(s) nuage(s) ainsi que la distance entre les deux points
\item trois points (triangle) : l'tiquette contient les coordonnes de chaque point et leur indice respectif dans le(s) nuage(s), l'aire du triangle ainsi dfini, la normale au triangle, et enfin l'angle au niveau du premier point (\textsl{l'ordre de slection des points est donc important})\\
\end{itemize}

\par
La reprsentation graphique des tiquettes standards peut tre module en fonction des besoins : leur titre peut tre affich en 3D  ct du ou des points auxquelles elles sont associes, tandis que leur reprsentation 2D peut tre soit affiche totalement, soit affiche de manire condense soit encore cache. La reprsentation 2D a de plus une transparence rglable (via les paramtres d'affichage gnraux de CloudCompare - voir section\ref{subsection:displaySettings}). A l'instar des nuages de points ou les maillages, les tiquettes standards peuvent tre slectionnes  l'cran (slection multiple ou individuelle).\\
\par
Les tiquettes rattaches  un unique point peuvent tre cres trs facilement (\textit{ la vole}) par un simple clic sur le point en maintenant la touche SHIFT enfonce. Autrement, tous les autres type d'tiquettes peuvent tre cres avec l'outil 'Point Picking' (Cf. section \ref{subsection:pointPicking}).\\

\par
\textbf{Etiquette \emph{zone 2D}}\label{subsection:zoneLabel}\\

\begin{figure}[!htb]
\begin{centering}
\includegraphics[width=0.5\textwidth]{images/Partie2_Interface/zoneLabels}
\caption{\label{fig:standardLabels}Etiquettes \emph{zone 2D}}
\end{centering}
\end{figure}

\par
Le second type d'tiquette, \emph{2D area label}, correspond aux tiquettes fixes rattaches  un point de vue. Ce sont des zones rectangulaires (dfinies par l'utilisateur  l'cran) associes  un commentaire textuel.\\

\par
Etant donn que ce qui apparat dans la zone dlimite par l'tiquette dpend du point de vue (orientation de la camra, etc.), l'tiquette n'apparait que lorsque la camra est dans la mme position (et avec les mmes paramtres) que lorsqu'elle a t cre (seuls certains paramtres peuvent tre compenss automatiquement, comme le zoom ou le panning en mode orthographique). Pour simplifier la tche de l'utilisateur, les tiquettes \emph{zone 2D} sont donc capables de rtablir ces paramtres dans la vue 3D associe (un bouton \emph{Apply} se trouve dans les proprits de l'tiquette - voir section \ref{subsection:zoneLabelProp}).


\section{Affichage des entits}

\subsection{Vues 3D\label{Contexte-graphique}\index{Vue 3D}}

\subsubsection{Prsentation}

Les vues 3D (voir figure~\ref{fig:Context3D}) sont les sous-fentres dans lesquelles sont affiches les entits.
Elles possdent un fond (qui peut-tre un dgrad de couleur ou une couleur unique - voir les paramtres d'affichage
gnraux en section \ref{subsection:displaySettings}), par dessus lequel sont affiches les entits 3D (nuages, maillages,
etc.) et encore par dessus, des lments d'interface ou des entits 2D (tiquettes, chelle de couleur, etc.).\\

Voici les lments standards qui composent une vue 3D :
\begin{itemize}
\item \textbf{\textcolor{red}{1}} : les entits 3D, ventuellement encadres par leur boite englobante\footnote{Aussi appelle \textit{bounding-box}. Il s'agit du plus petit paralllpipde rectangle align avec les axes principaux (X,Y,Z) et qui contienne l'intgralit des entits slectionnes} si elles sont slectionnes).
\item \textbf{\textcolor{red}{2}} : l'\index{echelle@chelle!de distances}chelle fournit une rfrence pour
l'estimation des dimensions. Sa longueur est exprime dans l'unit \textit{impliticte} courante (i.e. l'unit implicite des coordonnes de la ou des entits affiches, telles qu'elles ont t charges depuis leur fichier d'origine - \emph{CloudCompare} n'utilise pas d'unit explicite).
\item \textbf{\textcolor{red}{3}} : le \index{tridre d'orientation}tridre d'orientation reprsente l'orientation
courante des trois axes principaux : X (rouge), Y (vert) et Z (bleu).
\item \textbf{\textcolor{red}{4}} : nom du \index{champ scalaire}champ scalaire actif et sa
\index{rampe de couleurs}\index{echelle@chelle!de couleurs|see{rampe de couleurs}}rampe de couleurs associe.
\item \textbf{\textcolor{red}{5}} : informations temporaires concernant l'affichage ou l'action en cours. Il peut s'agir de la dimension courante de la vue 3D (en pixels - aprs un redimensionnement de la fentre), du type de projection utilis, etc.
\item \textbf{\textcolor{red}{6}} : \index{tiquette 2D}tiquette 2D standard (ici associe  un point 3D d'un nuage). Ces tiquettes s'affichent toujours par dessus les objets 3D (leur transparence est rglable). Pour plus d'information, Cf. section\ref{etiquettes_2D}.
\item \textbf{\textcolor{red}{7}} : \index{Annotation}tiquette \textit{zone 2D}. Ces tiquettes particulires
permettent d'annoter une zone prcise de l'cran et sont donc lies  un point de vue (qu'elles sont capable de rtablir sur demande) et non  une entit.\\
\end{itemize}

\begin{figure}[!htb]
\begin{centering}
\includegraphics[width=0.8\textwidth]{images/Partie2_Interface/View3D}
\caption{\label{fig:Context3D}Elments standards d'une vue 3D}
\end{centering}
\end{figure}

Seuls l'chelle et le tridre d'orientation sont visibles en permanence.
Les autres informations dpendent de l'tat courant de l'application.\\

\subsubsection{Interagir avec une vue 3D\label{subsection:Interactivit}}

Vous pouvez intragir avec une vue 3D en utilisant la\index{souris} souris (figure \ref{fig:mouseButtons}) :\\

\begin{figure}[!htb]
\begin{centering}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/Souris}
\caption{\label{fig:mouseButtons}Commandes via la souris (L : [SELECTION/ROTATION], M : [ZOOM], R : [PAN])}
\end{centering}
\end{figure}


\begin{itemize}
\item \textbf{\textcolor{red}{L}} - clic gauche court : [SELECTION] cliquez sur un objet
dans la vue 3D pour le slectionner.
\item \textbf{\textcolor{red}{L}} - clic gauche maintenu : [ROTATION] maintenez le bouton gauche
de la souris enfonc et dplacez la souris pour effectuer une rotation
du point de vue autour du \textit{pivot} courant (cf. sections
\ref{subsection:centeredPerspective} et \ref{subsection:viewerPerspective} ou encore
les paramtres camras en section \ref{subsection:cameraSettings} ou enfin l'outil de
picking du centre de rotation en section \ref{Options-affichage}).
\item \textbf{\textcolor{red}{M}} - roulement : [ZOOM] faites rouler la molette
vers l'avant (ou vers \og le haut \fg{}) pour effectuer un \index{zoom}zoom positif
dans la vue 3D et inversement, faites rouler la molette vers l'arrire (ou \og le
bas \fg{}) pour effectuer un zoom ngatif.
\item \textbf{\textcolor{red}{R}} - clic droit court : sur les tiquettes 2D, un clic droit court
permet de la condenser ou inversement de rtablir son extension maximale.
\item \textbf{\textcolor{red}{R}} - clic droit maintenu : [PANNING] maintenez le bouton droit
de la souris enfonc et dplacez la souris pour effectuer une translation du point de vue
dans le plan cran.\\
\end{itemize}

Par dfaut, la visualisation se fait selon une projection orthographique (sans perspective) et le
centre de rotation est positionn sur le centre de la boite englobant toutes les entits affiches
dans la vue 3D. Lors du changement de point de vue (rotation, translation), les gros
nuages de points ou les gros maillages sont temporairement sous chantillonns de manire  permettre
le rendu interactif des mouvements (ce comportement est paramtrable - voir section\ref{subsection:displaySettings}).\\

\subsubsection{Utiliser plusieurs vues 3D\label{Environnement-multi-contextes}}

Dans CloudCompare, un nombre quelconque de vues 3D peut tre cr, et chaque entit peut tre
assigne sparmment  une vue 3D particulire.\\

Pour crer une nouvelle vue 3D, cliquez sur la commande
\emph{New} dans le menu << 3D views >>, ou utilisez le raccourci clavier
CTRL+F3. Une nouvelle fentre apparat alors (par dfaut elle sera maximise).\\

\par
Pour partager l'espace d'affichage entre les diffrentes vues 3D,
diffrents choix s'offrent  l'utilisateur :
\begin{itemize}
\item \emph{Tile} (partitionnement) : chaque fentre occupe une portion
"quivalente de l'espace disponible, les fentres ne se chevauchent pas.
\item \emph{Cascade}  : chaque fentre occupe la mme portion d'espace
prdfinie, elles sont dcales de manire rgulire en se chevauchant.
\item redimensionnement manuel : de manire classique chaque vue 3D
peut-tre dplace et redimensionne, en s'aidant notamment des boutons \includegraphics{images/Partie2_Interface/ReduceContext}(minimiser
la vue) et \includegraphics{images/Partie2_Interface/MinimizeContext}(rduire
la vue) disponibles en haut  droite de chaque fentre.\\
\end{itemize}

\par
Il est aussi possible de naviguer entre les diffrentes vues via les commandes
\emph{Next} et \emph{Previous} du menu << 3D views >>, ou en accdant directement
 la vue dsire en cliquant sur son nom dans ce mme menu.\\

\par
Pour fermer une vue 3D, utilisez l'entre \emph{Close} du menu << 3D views >> (aprs
avoir activ cette fentre en cliquant dessus) ou plus simplement utilisez le bouton \includegraphics{images/Partie2_Interface/CloseContext} de la fentre.\\

\par
Enfin, pour changer la \index{afficher!des objets}vue 3D dans laquelle une entit
apparat, slectionnez cette entit puis modifiez la valeur courante de la liste
droulante \emph{Current Display} dans la fentre de proprits.

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/ChangeContext}
\par
\end{center}

Remarque : il est possible de n'afficher une entit dans aucune vue 3D en choisissant
\emph{None} comme \textit{contexte} de destination.\\


\subsubsection{Camera link\label{subsection:cameraLink}}

Les vues 3D sont indpendantes les unes des autres, et les changements de point de vue dans une vue 3D particulire n'ont a priori aucune rpercussion sur les autres vues 3D. Toutefois, il est possible de synchroniser les mouvements de camra pour qu'ils soient appliqus  toutes les \index{Vues 3D} vues 3D en mme temps. Pour ce faire il suffit de cocher l'option
\emph{Camera link} situe juste sous l'arbre de navigation.

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/CameraLink}\\

\par\end{center}


\subsection{Options d'affichage\label{Options-affichage}}

\subsubsection{Barre d'outils \textit{Viewing Tools}}

Un certain nombre d'icnes et d'outils permettent  l'utilisateur de contrler l'affichage courant.
La majeure partie d'entre eux sont accessibles via la \index{outils, barre de}barre d'outils \emph{Viewing tools} :
\begin{center}
\begin{tabular}{>{\centering}m{0.05\textwidth}>{\raggedright}m{0.95\textwidth}}
\multicolumn{2}{c}{\includegraphics[height=21px]{images/Partie2_Interface/ViewToolBar}}\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/cc_settings} & Changer les paramtres \index{eclairage@clairage}d'affichage gnraux (couleurs, matriaux, taille de la police, prcision numrique des valeurs affiches, etc. - voir section\ref{subsection:displaySettings}).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/Camera} & Changer les paramtres de camra de la fentre 3D courante (orientation et centre de rotation, etc. - voir section\ref{subsection:cameraSettings}).\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/ZoomGlobal} & \index{zoom}Zoomer et recentrer la \index{point de vue}camra pour rendre visibles toutes les entits affiches dans la vue 3D courante.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/cc_pickCenter} & Slection du centre de rotation par picking d'un point  l'cran.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/ZoomCenter} & Zoomer et recentrer la camra sur la ou les entits slectionnes. Aucun effet si aucun objet n'est slectionn.\tabularnewline
\includegraphics[height=15px]{images/Partie2_Interface/ChangeView} & Les 6 derniers boutons permettent de basculer entre diffrents points de vue prdfinis (dans l'ordre o les boutons apparaissent : haut, avant, gauche,
arrire, droit, bas). Ces points de vue sont dfinis par rapport au \index{tridre d'orientation}tridre d'orientation. \tabularnewline
\end{tabular}\\
\end{center}

\subsubsection{Menu \textit{Display}}

D'autres fonctionnalits relatives  l'affichage sont accessibles via le menu \emph{Display} :
\begin{itemize}
\item \emph{Full screen} : basculer la fentre principale entre l'affichage standard et l'affichage \index{plein cran}plein
cran (raccourci clavier: F11).
\item \emph{Refresh} : forcer l'actualisation de l'affichage (raccourci clavier : F5).
\item \emph{Test frame rate} : lancer un test d'estimation du \index{rafrachissement, taux de}taux de rafrachissement
(exprim en 'f.p.s' = \textit{frame per second} ou images par seconde en franais) pour la vue 3D courante. En thorie, plus il y a de triangles ou de points  afficher, plus le taux de rafrachissement devrait tre faible. Il est admis qu'en de d'une vingtaine d'images par seconde, l'humain peroit l'affichage comme tant saccad (au del de 24 f.p.s, l'affichage est peru comme tant fluide).
\item \emph{Toggle centered perspective} : basculer entre la projection par dfaut (parallle orthographique) et la projection perspective avec le centre de rotation de la camra plac par dfaut sur le centre de la boite englobant toutes les entits affiches (raccourci clavier : F3).
\item \emph{Toggle viewer based perspective} : basculer entre la projection par dfaut (parallle orthographique) et la projection perspective avec le centre de rotation de la camra plac par dfaut en son centre optique (l'oeil virtuel de l'utilisateur) (raccourci clavier : F4).
\item \emph{Light > Toggle sun light} : activer ou \index{eclairage@clairage}dsactiver
la lumire globale (raccourci clavier : F6).
\item \emph{Light > Toggle custom light }: activer ou dsactiver
la lumire personnalise (raccourci clavier : F7). Cette source de lumire peut tre dplae en maintenant la touche CTRL
enfonce tout en faisant un \emph{pan} avec la souris  l'cran - voir section\ref{subsection:Interactivit}).\\
\end{itemize}

\par
Remarque : les effets d'ombrage permis par les normales d'un nuage ou d'un maillage ne sont visibles que si au moins une source lumineuse est active.\\

\subsubsection{Taille des points 3D\label{pointSizeModification}}

La taille des points affichs dans une vue 3D est modifiable via des \textit{interacteurs} qui apparaissent
directement en surimpression de la vue lorsque la souris survole son coin haut-gauche.

\begin{center}
\includegraphics[width=0.3\textwidth]{images/Partie2_Interface/PointSizeDlg}
\par\end{center}

Pour modifier la \index{taille des points}taille d'affichage des points, il suffit de cliquer sur '-' ou '+'. Un point de rfrence  la taille courante apparat entre les deux interacteurs.\\



\section{Fentre de proprits}\index{proprits, fentre de}\label{Fenetre_proprietes}

La fentre de proprits contient toutes les informations sur l'entit slectionne, ainsi que des options modifiables par l'utilisateur (visiblit de certains composants, etc.).

\subsection{Proprits communes des entits affichables}\label{subsection:commonProperties}

Certains champs sont communs  (presque) toutes les entits affichables. On les retrouve dans la section \emph{CC Object} :
\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/CommonProperties}
\par\end{center}
\begin{itemize}
\item \emph{Name} : \index{renommer}nom de l'entit. Il peut tre modifi en cliquant sur l'entre correspondant  l'entit dans l'arbre de navigation (voir \ref{Arbre-de-navigation}) ou encore en utilisant le raccourci clavier F2.
\item \emph{Unique ID} : toutes les entits CloudCompare sont reprsentes en interne par un identifiant unique.
\item \emph{Children} : le nombre de sous-lments (ou \textit{enfants}) rattachs  cette entit. Dans la capture ci-dessus par exemple, l'objet slectionn est un groupe de maillages regroupant 758 sous-maillages, un nuage de points et un tableau de normales compresses, soit 760 sous-entits au total).
\item \emph{Visible} : spcifie si l'entit doit tre affiche dans la vue 3D associe ou non. La proprit 'Visible' n'est pas hrditaire (contrairement  l'tat d'activation de l'entit, qui correspond  la case  cocher prsente au niveau de l'arbre de navigation et qui concerne toutes les entits prsentes dans le reste de la branche). Si l'entit est slectionne, la boite englobante reste visible mme si la proprit \emph{Visible} est dsactive.
\item \emph{Colors} (optionnelle) : si l'entit slectionne possde des couleurs, une case  cocher \emph{Colors} apparait ici. Elle permet de spcifier si ces couleurs doivent tre utilises lors de l'affichage de l'entit ou non. Remarque : la proprit \emph{Scalar field} (voir ci-dessous) est toujours prioritaire par rapport  \emph{Colors}.
\item \emph{Normals} (optionnelle) : si l'entit slectionne possde des normales, une case  cocher \emph{Normals}  apparait ici. Elle permet de spcifier si ces normales doivent tre utilises lors de l'affichage de l'entit ou non. Les normales\index{normales}\index{eclairage@clairage} permettent d'obtenir un rendu visuel semi-raliste des objets en faisant varier la teinte des points ou facettes associess en fonction de la position de l'clairage. Si les normales sont dsactives, la surface de l'objet est affiche dans une couleur uniforme (effet \og silhouette \fg{}, avec une perte de la perception des profondeurs). \textit{Le plugin \emph{qEDL} (voir section\ref{qEDL}) est une excellente alternative aux normales. Il simule en temps rel un clairage encore plus raliste, sans information autre que la position des points ou des objets.}
\item \emph{Scalar field} (optionnelle) : si l'entit slectionne possde un ou plusieurs champs scalaires, une case  cocher \emph{Scalar field}  apparait ici. Elle permet de spcifier si le champ scalaire couramment affich (voir la liste droulante \emph{Current} dans la section \emph{Scalar field} des proprits) doit tre utilis lors de l'affichage de l'entit ou non. Si un champ scalaire courant est dfini dans la liste droulante \emph{Current}, alors ce champ scalaire sera toujours affich en priorit par rapport aux ventuelles couleurs de l'entit.
\item \emph{Current display} : cette liste droulante permet de choisir la vue 3D dans laquelle l'objet sera affich
(cf. section \ref{Environnement-multi-contextes}).
\item \emph{Box dimensions} : les dimensions de la boite englobante de l'entit.
\item \emph{Box center} : le centre de la boite englobante de l'entit.\\
\end{itemize}
\par


\subsection{Proprits propres aux nuages de points}\label{subsection:pointCloudProperties}

La section \emph{Cloud} est rserve aux nuages de points. Elle contient les champs suivants :
\begin{itemize}
\item \emph{Points} : le nombre de points du nuage.
\item \emph{Global shift}\index{centrage automatique au chargement} : la translation qui a t ventuellement applique au chargement du nuage par CloudCompare (gnralement pour rammener ses coordonnes  des valeurs compatibles avec un stockage en flottant sur 32 bits). C'est typiquement le cas des nuages exprims dans des systmes de coordonnes  l'chelle d'un pays (UTM, etc.), avec des valeurs dpassant les millions. Dans ce cas, CloudCompare propose  l'utilisateur de recentrer automatiquement l'entit. Cette translation est conserve tout au long de la vie de l'entit puis elle sera ventuellement r-applique aux points lors la sauvegarde de l'entit (si le format le permet).
\\
\end{itemize}

\begin{center}
\includegraphics[width=0.5\textwidth]{images/Partie2_Interface/PointCloudProperties}
\end{center}

\subsection{Proprits propres aux maillages ou groupes de maillages}\label{propMaillages}

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/MeshProperties}\\
\end{center}

\index{maillage}
Les entits maillages ou groups de maillages deux types d'entits partagent les mmes proprits :
\begin{itemize}
\item \emph{Faces} : le nombre de facettes composant le maillage. Dans le cas d'un groupe de maillages, ce nombre correspond au nombre total de facettes de tous les sous-maillages rattachs  ce groupe.
\item \emph{Wireframe} : \index{fil de fer, rendu}\index{WireFrame|see{fil de fer}}permet
d'activer le rendu en \og fil de fer \fg{} du maillage (seules les arrtes des triangles sont affiches et non l'intrieur - voir figure \ref{fig:MeshWireframeRendering}).\\
\end{itemize}

\begin{figure}[!htb]
\begin{center}
\includegraphics[width=0.6\textwidth]{images/Partie2_Interface/MeshWireframeRendering.png}
\caption{\label{fig:MeshWireframeRendering}Exemple de rendu en \textit{fil de fer} d'un maillage}
\end{center}
\end{figure}


\subsection{Proprits communes aux nuages et maillages}


\subsubsection{Champs scalaires (Scalar fields)\label{Champs-scalaires}\index{champ scalaire}}

Certains traitements effectus sur les nuages de points permettent d'associer  chaque point une valeur numrique (un \textit{scalaire}). L'ensemble de ces valeurs scalaires constitue une structure appele \emph{Champ Scalaire}
(ou \emph{Scalar field}). Les champs scalaires sont toujours rattachs  un nuage de points. Nanmoins, pour une meilleure ergonomie, les maillages dont les sommets portent des champs scalaires se comportent comme s'ils portaient eux-mme ces champs scalaires (ils sont d'ailleurs aussi capables de les utiliser lors de leur affichage 3D). Les proprits propres  ces champs scalaires apparaissent donc de la mme manire au niveau d'un nuage de point qu'au niveau d'un maillage dont les sommets portent un champ scalaire.\\

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/SFProperties}\\
\end{center}

Il est possible de rattacher plusieurs champs scalaires  un mme nuage, mais un seul peut tre actif (i.e. \textit{affich})  un instant donn. Le nombre de champs scalaires associs  une entit correspond d'ailleurs  la premire entre (\emph{Number}) de la section \emph{Scalar Field}.
\par
En dessous se trouve une liste droulante (\emph{Current}) permettant de spcifier le champ scalaire actif. Chaque champ scalaire  un nom unique. Celui-ci peut-tre modifi par l'utilisateur via la commande << Edit > Scalar fields > Rename >> (Cf. section\ref{subsection:sfRename}).
\par
Ensuite vient l'entre \emph{Color ramp} permettant de choisir la rampe de couleur\index{rampe!de couleurs} utilise pour l'affichage du champ scalaire sous forme de fausses couleurs (voir la section suivante pour plus de dtails). Elle est suivie de l'entre \emph{Color ramp steps} qui permet de spcifier le nombre de couleurs diffrentes utilises pour l'affichage en fausses couleurs. Par exemple, utiliser un nombre trs faible de couleurs sur une entit dense permet d'obtenir un effet \textit{lignes de niveau}.
\par
Enfin, la dernire entre de la section \emph{Scalar Field} est la case  cocher \emph{Postive} qui permet de spcifier si le champ scalaire doit tre considr comme strictement positif (auquel cas toutes les valeurs ngatives sont considres comme tant des valeurs invalides, de type \emph{NaN} = \textit{not a number}). Sinon, CloudCompare considre toutes les valeurs comme tant valides. Cette proprit influe directement sur la manire dont la correspondance \textit{valeur scalaire - couleur} est calcule (voir ci-dessous).

\subsubsection{Rampe de couleurs (SF Scale)\label{Rampe-de-couleurs}\index{Rampe de couleur}}

La section \emph{SF Scale} est consacre  l'affichage du champ scalaire actif en fausses couleurs. Elle est en pratique toujours prsente si un champ scalaire est activ (i.e. slectionn dans la liste droulante \emph{Current} - voir ci-dessus).\\

Diffrentes \index{rampes de couleurs} rampes de couleurs (ou encore \textit{chelles de couleurs}) sont disponibles. Chacune correspond  un dgrad de couleurs, la premire couleur tant associe  la valeur minimale \emph{de saturation} du champ scalaire et la dernire couleur  la valeur maximale \emph{de saturation}. Les couleurs intermdiaires sont associes aux valeur scalaires quivalentes de manire linaire.\\
\par
Remarque : dans le cas d'un champ scalaire non strictement positif, il est possible de spcifier une chelle de couleur avec saturation \emph{absolue}, auquel cas l'chelle de couleur courante est coupe en deux et est utilise de manire symtrique pour les valeurs ngatives ou positives (voir plus bas).

\begin{center}
\begin{tabular}{>{\raggedright}p{0.15\textwidth}>{\centering}p{0.8\textwidth}}
 & valeur minimale\hfill{}valeur maximale\tabularnewline
Bleu  rouge : & \includegraphics[angle=270,width=0.7\textwidth]{images/Partie2_Interface/ScalarRampBlueRed}\tabularnewline
Niveaux de gris : & \includegraphics[angle=270,width=0.7\textwidth]{images/Partie2_Interface/ScalarRampGrey}\tabularnewline
Rouge  jaune : & \includegraphics[angle=270,width=0.7\textwidth]{images/Partie2_Interface/ScalarRampYellowRed}\tabularnewline
Rouge  blanc : & \includegraphics[angle=270,width=0.7\textwidth]{images/Partie2_Interface/ScalarRampRedWhite}\tabularnewline
\end{tabular}
\par
\end{center}

\emph{CloudCompare} permet  l'utilisateur de paramtrer finement \index{plage!de saturation}\index{plage!d'affichage} la manire dont les valeurs du champ scalaire courant sont affiches en fausses couleurs (et ce de manire dynamique). Quatre valeurs cls sont modifiables interactivement :
\begin{center}
\includegraphics[width=1\textwidth]{images/Partie2_Interface/SFViewerCursors}
\par\end{center}
\begin{itemize}
\item \textbf{\textcolor{red}{1}} : \index{min!displayed value|see{plage d'affichage}}
Valeur minimale affiche (\textsl{min displayed value}). Toutes les valeurs scalaires infrieures sont ignores (et sont alors considres comme tant de type \emph{NaN} - voir plus bas).
\item \textbf{\textcolor{red}{2}} : \index{min!saturation value|see{plage de saturation}}
Valeur minimale de saturation (\textit{min saturation value}). Tous les valeurs infrieures (et donc comprises entre \textit{min displayed} et \textit{min saturation}) sont affiches avec la (mme) couleur, \og la
plus faible \fg{} de la rampe (ici en bleu).
\item \textbf{\textcolor{red}{3}} : \index{max!saturation value|see{plage de saturation}}
Valeur maximale de saturation (\textit{max saturation value}). Tous les valeurs suprieures (et donc comprises entre \textit{max saturation} et \textit{max displayed}) sont affiches avec la (mme) couleur, \og la
plus forte \fg{} de la rampe (ici en rouge).
\item \textbf{\textcolor{red}{4}} : \index{max!displayed value|see{plage d'affichage}}
Valeur maximale affiche (\textit{max displayed value}). Toutes les valeurs scalaires suprieures sont ignores (et sont alors considres comme tant de type \emph{NaN} - voir plus bas).\\
\end{itemize}
\par
La manire dont sont traites les \index{NaN|see{valeurs ignores}}\index{valeurs ignores}valeurs de type \emph{NaN} (valeurs invalides ou volontairement ignores par l'utilisateur via le rglagle des valeurs \textit{min displayed} \textbf{\textcolor{red}{(1)}} et \textit{max displayed}) \textbf{\textcolor{red}{(4)}} se rgle via la case  cocher \emph{Nan in grey}. Si celle-ci est coche, les points associs  ces valeurs scalaires sont affichs avec une couleur grise par dfault. Sinon ces points ne sont pas affichs.\\

Les quatre valeurs cls prsentes prcdemment permettent donc de dfinir plusieurs plages :
\begin{itemize}
\item les valeurs affichables, pour lesquelles les points sont effectivement affichs en fausses couleurs. Le comportement en dehors de cette plage dpend de la proprit \emph{Nan in grey}.
\item la plage de saturation, en dehors de laquelle la variation des couleurs est dsactive. La borne infrieure de cet intervalle est associe  la premire couleur de l'chelle, la borne suprieure  la dernire
couleur, et le reste des couleurs est rparti linairement entre ces bornes.\\
\end{itemize}

\par
\emph{CloudCompare} vrifie en permanence la cohrence des valeurs saisies : on ne peut pas avoir \textbf{\textcolor{red}{(1)}}~$>$~\textbf{\textcolor{red}{(4)}} ni \textbf{\textcolor{red}{(2)}}~$>$~\textbf{\textcolor{red}{(3)}}. Toute modification valide d'une de ces valeurs est immdiatement rpercute sur l'affichage, de manire interactive.Par dfaut les valeurs de saturation ne peuvent donc pas sortir des bornes 'min displayed value' \textbf{\textcolor{red}{(1)}} et 'max displayed value' \textbf{\textcolor{red}{(4)}}, et ces bornes sont imposes par les donnes elles-mme (\emph{CloudCompare} calcule automatiquement ces bornes  partir des valeurs effectives du champ scalaire). Or, il arrive que pour des raisons esthtiques ou pratiques l'utilisateur veuille voir apparaitre des bornes diffrentes (en particulier au niveau de la reprsentation graphique de l'chelle de couleur dans la vue 3D), ou une saturation qui commence par exemple  partir de 0 dans tous les cas de figure. Il existe donc la proprit \emph{release boundaries} qui permet une fois active de modifier manuellement les bornes 'min displayed' et 'max displayed' (il suffit pour cela de modifier manuellement les valeurs textuelles correspondantes en les remplaants par les nouvelles bornes dsires).\\
\par
D'autres options sont disponibles :
\begin{itemize}
\item l'option \emph{log scale} permet d'afficher les fausses couleurs (et les valeurs textuelles correspondantes  l'cran) selon une chelle logarithmique.
\item comme voqu plus haut, dans le cas d'un champ scalaire non strictement positif, une option \emph{absolute saturation} apparait. Si l'utlisateur la coche, alors les valeurs 'min staturation' \textbf{\textcolor{red}{(2)}} et 'max saturation' \textbf{\textcolor{red}{(3)}} changent de sens : elles deviennent forcment positives et concernent  la fois les valeurs ngatives et les valeurs positives (par symtrie). La variation automatique des couleurs ne se passera donc qu'entre -'max saturation' et -'min stauration' et entre +'min stauration' et +'max stauration'. Les couleurs stagneront en dessous de -'max saturation' (couleur \textit{minimale} de la rampe - \textbf{bleu} typiquement), entre  -'min stauration' et +'min stauration' (couleur \textit{centrale} de la rampe - \textbf{vert} typiquement) et enfin au dessus de +'max saturation' (couleur \textit{maximale} de la rampe - \textbf{rouge} typiquement).\\
\end{itemize}

\par
Enfin, la rampe de couleurs avec les valeurs numriques remarquables associes (min, max, valeurs de saturation, etc.) peut tre affiche  ct des entits dans la mme vue 3D (cf. figure de la section \ref{Contexte-graphique}). Il faut cocher la case \emph{display scale} en fin de section \emph{SF scale}. Une seule rampe de couleur peut-tre affiche  la fois. De plus, si l'entit associe est cache ou dsactive, la rampe de couleur ne sera pas affiche.
\par


\subsection{Proprit de l'octree\index{octree, proprits}\label{subsection:octreeProp}}

L'octree est indissociable du nuage de points auquel il est rattach. Il s'agit d'une structure abstraite, disponible dans l'interface de \emph{CloudCompare} et affichable uniquement  titre informatif (elle peut aussi tre supprime pour librer de la mmoire si besoin). L'affichage de la structure propos par \emph{CloudCompare} ne permet de visualiser qu'un niveau  la fois. Vous pouvez changer le \index{octree}niveau d'affichage de l'octree en incrmentant/dcrmentant le champ \emph{Display level} de la section \emph{Octree}.

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/OctreeDisplayLevel}\\
\par
\end{center}

Les niveaux qui peuvent tre affichs vont de 1  10. Le niveau 0 ne peut tre slectionn (il n'est dailleurs en pratique jamais utilis, pas mme pour les calculs, puisque l'octree au niveau 0 correspond ni plus ni moins au nuage dans son intgralit, contenu dans une unique cellule).\\
\par
Il se peut que l'affichage ralentisse considrablement au del d'un certain niveau de subdivision (en fonction des capacits de l'ordinateur sur lequel le programme s'excute),  cause du nombre consquent d'lments  afficher.\\
\par
L'octree peut tre visualis sous diffrentes formes :
\begin{itemize}
\item Fil de fer (Wire) : \index{fil de fer, rendu}seules les arrtes des cubes sont reprsentes (attention : lourd).
\item Points : chaque cube est reprsent par le centre de gravit des points qui y sont inclus.
\item Surfacique (Plain cubes) : la surface des cubes est affiche intgralement (attention : trs lourd).\\
\end{itemize}
Le mode d'affichage courant de l'octree est controll par la liste droulante \emph{Display type}.

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/OctreeDisplayType}\\
\par
\end{center}

\subsection{Poprits des tiquettes standards\index{etiquette standard, proprits}\label{subsection:stdLabelProp}}

Les tiquettes 2D \textit{standards} sont des tiquettes graphiques qui s'affichent en surimpression de la vue 3D et qui peuvent tre associes  un ou plusieurs points (voir section \ref{subsection:standardLabel}).\\

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/StandardLabelProperties}\\
\end{center}

Outre les options standards des objets affichables dans les vues 3D (voir section \ref{subsection:commonProperties}), ces tiquettes possdent plusieurs champs regroups dans la section \emph{Label} :
\begin{itemize}
\item \emph{Body} - le corps de l'tiquette (gnr automatiquement). Pour information (et pour export, via copier-coller, si ncessaire).
\item \emph{Show 2D label} - permet de cacher la partie 2D de l'tiquette
\item \emph{Show 3D legend(s)} - permet de cacher la rappel du nom de l'tiquette  ct du ou des points associs en 3D
\end{itemize}

\subsection{Poprits des tiquettes zone 2D\index{etiquette zone, proprits}\label{subsection:zoneLabelProp}}

Les tiquettes \textit{zone 2D} sont des tiquettes graphiques qui s'affichent en surimpression de la vue 3D et qui sont associe  un point de vue (voir section \ref{subsection:zoneLabel}).\\

\begin{center}
\includegraphics[width=0.4\textwidth]{images/Partie2_Interface/ZoneLabelProperties}\\
\end{center}

Les tiquettes \textit{zones 2D}, outre leur nom (qui apparat en dessous du rectangle correspondant  l'tiquette - ce nom est d'ailleurs modifiable comme pour toute entit) n'ont qu'un bouton \emph{Apply} dans leurs proprits. Celui-ci provoque l'application des paramtres de camra associs  l'tiquette dans la vue 3D (et donc cela force l'apparition de l'tiquette, qui ne se dessine  l'cran que si les paramtres de camra courants concident avec ceux de la camra lors de la cration de l'tiquette).

\subsection{Poprits des points de vues\index{point de vue, proprits}\label{subsection:viewportProp}}

Il est possible  tout moment de sauver le point de vue courant (avec tous les paramtres de visualisation associs, comme la taille des points, etc.) via la commande << Display > Save viewport as object >> ou le raccourci clavier Ctrl+V. L'objet correspondant \textit{Viewport} se comporte exactement comme une tiquette zone (mis  part qu'il n'a pas de reprsentation associe).\\

\subsection{Poprits des images\index{image}\label{subsection:imageProp}}

Des images (calibres ou non) peuvent tre associes aux entits 3D. Dans le cas des images calibres (i.e. pour lesquelles on dispose de toutes les informations de calibrage intrinsques et extrinsques par rapport aux donnes) il est possible de les afficher en surimpression de la vue 3D.\\
\par
Ces images peuvent tre importes via les formats E57, ICM ou encore via l'import de fichiers Bundler (OUT).\\

\begin{figure}[!htb]
\begin{center}
\includegraphics[width=0.9\textwidth]{images/Partie2_Interface/CalibratedImageGlobal}
\caption{\label{fig:CalibratedImageFig}Vue d'une image calibre en surimpression d'un nuage}
\end{center}
\end{figure}

\par
Les images ont toutes en commun la section \emph{Image} :
\begin{itemize}
\item \emph{Width} - largeur de l'image (en pixels)
\item \emph{Height} - hauteur de l'image (en pixels)
\item \emph{Alpha} - curseur permettant de rgler la transparence (entre 0 et 100\%)
\end{itemize}

\par
La section \emph{Calibrated Image} est par contre reserve aux images calibres :
\begin{itemize}
\item \emph{Apply viewport} - change les paramtres de la vue 3D associe  l'image pour concider avec ceux de l'appareil
\item \emph{f.o.v.} - \textit{field of view} ou ouverture angulaire (en degrs)
\item \emph{Optical center} - centre optique
\item \emph{Orientation} - direction de vise
\item \emph{Angle} - Angle de rotation autour de l'axe de vise (en degrs)\\
\end{itemize}

\subsection{Poprits des capteurs laser (terrestres)\index{capteur, proprits}\label{subsection:sensorProp}}

Les objets capteurs terrestres (\textit{Ground Based Lidar sensor}) ont une reprsentation \textit{in situ} symbolique (un cube sur un trpied). Ils ont aussi une section propre dans la fentre de proprits (section \emph{GBL sensor}) :
\begin{itemize}
\item \emph{dPhi} - le pas angulaire selon l'axe de rotation principal (en radians)
\item \emph{dTheta} - le pas angulaire selon l'axe de rotation secondaire (en radians)
\item \emph{Uncertainty} - l'incertitude en profondeur (utilise lors de la comparaison de nuages de points)
\item \emph{Display scale} - chelle relative de la reprsentation symbolique
\end{itemize}

\begin{figure}[!htb]
\begin{center}
\includegraphics[width=0.8\textwidth]{images/Partie2_Interface/gblSensorProperties}\\
\caption{\label{fig:gblSensorPropertiesFig}Reprsentation symbolique d'un capteur laser terrestre}
\end{center}
\end{figure}


\section{Modification interactive des entits}

\subsection{Segmentation manuelle}\index{segmentation manuelle}
\label{subsection:graphicalSegmentation}

L'outil \textit{segmentation manuelle} (ou \textit{segmentation graphique interactive}) est accesible via l'icne \includegraphics[height=15px]{images/Partie2_Interface/BtnSegment.png} de la barre d'outils suprieure (\textit{Main toolbar}). Il permet de "dcouper" manuellement  l'cran la ou les entits slectionnes.
\\
\par
Cet outil permet en effet de dfinir un contour  l'cran (voir figure~\ref{fig:graphicalSegmentationExample}), puis de choisir si l'ont veut "garder" les points ou les triangles prsents  l'intrieur ou  l'extrieur de
ce contour. Le processus est rptable  volont, et les points/triangles rejets sont cachs au fur et  mesure.
Si l'utilisateur valide sa segmentation, les entits slectionnes sont chacune divises en deux : une partie correspondant aux points/triangles slectionns et l'autre avec les points/triangles restants.\\
\par
Note : dans le cas des maillages, les triangles prsents sur la frontire du contour ne sont pas \textit{dcoups}  proprement parler (on ne garde que les triangles dont les 3 sommets sont totalement inclus dans la frontire, et les autres triangles sont considrs comme tant \textit{ l'extrieur}).\\
\par
Deux types de contours sont disponibles :
\begin{itemize}
\item contour de type 'polyligne' : l'utilisateur peut dfinir les sommets successifs d'une polyligne par clics gauches successifs  l'cran. Une fois le premier clic effectu, CloudCompare fait apparaitre en temps rel la forme de la polyligne en suivant le pointeur de la souris comme si celui-ci correspondait  un nouveau sommet. Un clic droit permet de figer le contour (ncessaire pour effectuer une segmentation - voir ci-dessous). Enfin, tout clic gauche intervenant aprs que le contour ait t fig rinitialise celui-ci.
\item contour de type 'rectangle' : ce mode permet de dfinir des contours rectangulaires  l'cran. Un simple clic droit permet de dfinir le premier coin du contour puis un second le coin oppos. Il n'est pas ncessaire de maintenir le bouton enfon entre les deux clics.\\
\end{itemize}

\begin{figure}[!htb]
\begin{centering}
\includegraphics[width=0.8\textwidth]{images/Partie2_Interface/graphicalSegmentation.jpg}
\caption{\label{fig:graphicalSegmentationExample}Outil de segmentation manuelle}
\end{centering}
\end{figure}

\par
En pratique, l'outil s'active dans la vue 3D courante (d'ailleurs seules les entits affiches dans cette vue sont pris en compte par CloudCompare). L'interface principale de CloudCompare est \textit{gele} (la plupart des icnes et menus ne sont plus accessibles, mis  part les options d'affichage). Celle-ci est rtablie quand l'utilisateur quitte l'outil (dernire icne  droite en forme de croix rouge).\\
Une barre d'icnes apparat dans le coin haut-droit de la vue 3D :
\begin{itemize}
\item la premire icne permet de mettre en pause la segmentation (ce qui permet de rcuprer le comportement normal de la souris et de faire tourner les entits 3D entre deux phases de contourage/dcoupe par exemple). Attention, si la segmentation est mise en pause, le contour actuellement dessin disparat. Et si une segmentation est valide (voir plus bas), le processus est automatiquement mis en pause.
\item l'icne suivante permet de choisir le mode de slection (polyligne - par dfaut - ou rectangulaire). En mode 'polyligne' il est toujours possible de dfinir un contour rectangulaire en maintenant la touche CTRL et le bouton gauche de la souris enfoncs.
\item l'icne suivante permet d'appliquer la segmentation selon le contour courant et en gardant affichs les points \emph{ l'intrieur} du contour. Les autres points sont alors cachs et la segmentation est mise en pause. Le contour doit tre ferm.
\item l'icne suivante permet d'appliquer la segmentation inverse (en gardant affichs les points \emph{ l'extrieur} du contour).
\item l'icne suivante correspond  une rinitialisation complte de la slection (tous les points redeviennent
visibles).
\item l'avant dernire icne permet de valider la segmentation globale et de quitter (les entits slectionnes seront chacune scindes en deux).
\item enfin la dernire icne permet d'annuler la segmentation et de quitter (aucune opration ne sera effectue).\\
\end{itemize}

\subsection{Rotation/translation manuelle}\index{translation manuelle}\index{rotation manuelle}
\label{subsection:graphicalTransformation}

L'outil \textit{transformation manuelle} (ou \textit{transformation graphique interactive}) est accessible via l'icne \includegraphics[height=15px]{images/Partie2_Interface/BtnMove.png}. Il permet d'appliquer une rotation et/ou une translation manuelle aux entits slectionnes.\\
\par
A l'instar de l'outil de segmentation interactive (voir ci-dessus), l'outil s'active dans la vue 3D courante (et seules les entits affiches dans cette vue sont pris en compte par CloudCompare). L'interface principale de CloudCompare est aussi \textit{gele}. Trois icnes apparaissent en haut  droite de la vue 3D :
\begin{center}
\includegraphics[width=0.15\textwidth]{images/Partie2_Interface/BtnTranslateRotate}\\
\end{center}
\begin{itemize}
\item la premire permet de rinitialiser la transformation appliques aux entits slectionnes.
\item la seconde permet de valider la transformation et de quitter.
\item la dernire permet d'annuler la transformation et de quitter.\\
\end{itemize}

\par
La transformation se fait interactivement avec la souris, en utilisant les mmes conventions que pour la
transformation du point de vue (Cf. section~\ref{subsection:Interactivit}) : le bouton gauche permet de tourner les entits (par rapport au centre de gravit des boites englobantes de toutes les units slectionnes)
et le bouton droit permet de translater les entits dans le plan de l'cran. Dans ce mode, seules les entits slectionnes bougeront, les autres restant fixes. \\
\par
Note: si le processus est valid par l'utilisateur, la transformation effectivement applique est affiche dans la console (sous forme textuelle). \textit{Cette information peut-tre rcupre par copier-coller.}



\section{Barres de progression}\index{progression, barre de}

Certains traitements ou oprations de \emph{CloudCompare} ncessitent un temps de traitement relativement long,
pouvant aller de quelques secondes  quelques minutes selon les capacits de l'ordinateur sur lequel l'application s'excute, ainsi que le paramtrage de la fonction et la complexit inhrente au traitement effectu. La barre de progression est une fentre apparaissant durant les calculs non immdiats, donnant un aperu de l'tat d'avancement du traitement.\\

\begin{center}
\includegraphics[width=0.2\textwidth]{images/Partie2_Interface/ProgressBar}\\
\end{center}

Parmi les commandes affichant une barre de progression, certaines laissent la possibilit d'arrter\index{arrter un calcul} le calcul en cours d'excution, via un bouton \emph{Cancel} (l'arrt du processus n'est pas forcment immdiat, le systme ne prenant en compte l'appui sur le bouton que lorsqu'il est suffisamment "disponible"). Lorsque ce bouton n'est pas visible, le traitement ne peut tre interrompu avant la fin.

\section{Barres d'outils\index{outils, barre de}}

Vous trouverez ci dessous la liste des boutons disponibles dans les
diverses barres d'outils de \emph{CloudCompare}.

\begin{center}
\begin{longtable}{|>{\centering}m{0.07\textwidth}|>{\raggedright}m{0.4\textwidth}|>{\raggedright}m{0.5\textwidth}|}
\hline
\textbf{Bouton} & \textbf{Commande} & \textbf{Description}\tabularnewline
\hline
\endhead
\hline
\textbf{Bouton} & \textbf{Commande} & \textbf{Description}\tabularnewline
\hline
\endfirsthead
\hline
\hline
\multicolumn{3}{|c|}{Barre d'outils \emph{Main tools}}\tabularnewline
\multicolumn{3}{|c|}{\includegraphics[height=21px]{images/Partie2_Interface/MainToolBar}}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnOpen} & \index{ouvrir des objets}Open & cf. section \ref{subsection:openFile} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnSave} & Save & cf. section \ref{subsection:saveFile} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/pointPickingBtn} & Point picking & cf. section \ref{subsection:pointPicking}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/pointListPickingBtn} & Point list picking & cf. section \ref{subsection:pointListPicking}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnClone} & Clone & cf. section \ref{subsection:clone}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnFuse} & Fuse & cf. section \ref{subsection:fuse}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnDelete} & Delete & Supprimer les objets slectionns\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnRegister} & Register & cf. section \ref{subsection:register} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnAlign} & Align & cf. section\ref{subsection:align} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnSubsample} & Subsample & cf. section \ref{subsection:subsample}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnSamplePts} & Sample points & cf. section \ref{subsection:samplePoints} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnCCDist} & Cloud/Cloud distance & cf. section \ref{subsection:cloud2cloudDist} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnCMDist} & Cloud/Mesh distance & cf. section \ref{subsection:cloud2meshDist} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnStatTest} & Statistical test & cf. section \ref{subsection:statisticalTest} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnLabel} & Label connected components & cf. section \ref{subsection:labelConnectedComponents} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnSegment} & Segment & cf. section \ref{subsection:graphicalSegmentation} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnMove} & Translate/Rotate & cf. section \ref{subsection:graphicalTransformation} \tabularnewline
\hline
\hline
\multicolumn{3}{|c|}{Barre d'outils \emph{Scalar Field Tools}}\tabularnewline
\multicolumn{3}{|c|}{\includegraphics[height=21px]{images/Partie2_Interface/SFToolBar}}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnHisto} & Show histogram & Afficher l'histogramme\index{histogramme} du champ scalaire courant\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnComputeStat} & Compute statistical parameters & cf. section \ref{subsection:computeStatParams} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnFilterValue} & Filter by value & cf. section \ref{subsection:scalarFieldFilterByValue} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnGradient} & Gradient & cf. section \ref{subsection:scalarFieldGradient} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnGaussianFilter} & Gaussian filter & cf. section \ref{subsection:scalarFieldGaussianFilter} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnSFRemove} & Delete current scalar field & Supprimer le champ scalaire actif du nuage slectionn\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/BtnDiff} & Difference & cf. section \ref{subsection:scalarFieldDiff}\tabularnewline
\hline
\hline
\multicolumn{3}{|c|}{Barre d'outils \emph{Plugins}}\tabularnewline
\multicolumn{3}{|c|}{\includegraphics[height=21px]{images/Partie2_Interface/PluginToolBar}}\tabularnewline
\multicolumn{3}{|c|}{\textit{peut contenir des lments diffrents que ceux lists ici (en fonction des plugins disponibles)}}\tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qEDL} & Eye Dome Lighting (shader) & cf. section \ref{subsection:qHPR} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qSSAO} & Screen Space Ambient Occlusion (shader) & cf. section \ref{subsection:qSSAO} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qHPR} & Hidden Points Removal & cf. section \ref{subsection:qHPR} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qKinect} & Kinect Cloud Capture & cf. section \ref{subsection:qKinect} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qPCL} & PCL bridge & cf. section \ref{subsection:qPCL} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qPCV} & ShadeVis Ambient Occlusion & cf. section \ref{subsection:qPCV} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qPoissonRecon} & Poisson Surface Reconstruction & cf. section \ref{subsection:qPoissonRecon} \tabularnewline
\hline
\includegraphics[height=15px]{images/Partie2_Interface/cc_qRANSAC_SD} & Ransac Shape Detection & cf. section \ref{subsection:qRansacSD} \tabularnewline
\hline
\hline
\multicolumn{3}{|c|}{Barre d'outils \emph{Viewing Tools}}\tabularnewline
\multicolumn{3}{|c|}{\includegraphics[height=21px]{images/Partie2_Interface/ViewToolBar}}\tabularnewline
\multicolumn{3}{|c|}{\textit{cette barre d'outils est prsente en dtail en section \ref{Options-affichage}}}\tabularnewline
\hline
\end{longtable}
\par\end{center}

Les barres d'outils peuvent tre affiches ou caches via le sous-menu << Display > Toolbars >>.

\section{Raccourcis clavier\index{raccourcis clavier}}

Voici les raccourcis clavier disponibles dans \emph{CloudCompare} :
\begin{center}
\begin{longtable}{|>{\raggedright}p{0.1\textwidth}|>{\raggedright}p{0.15\textwidth}|>{\raggedright}p{0.45\textwidth}|>{\raggedright}p{0.15\textwidth}|}
\hline
\textbf{Touche(s)} & \textbf{Commande} & \textbf{Action} & \textbf{Remarque}\tabularnewline
\hline
\endhead
\hline
\textbf{Touche(s)} & \textbf{Commande} & \textbf{Action} & \textbf{Remarque}\tabularnewline
\hline
\endfirsthead
\hline
F1 & Help & \index{aide}affiche l'aide de \emph{CloudCompare} & \tabularnewline
\hline
F2 & Rename & \index{renommer}renomme l'entit slectionne & l'entit doit tre slectionne dans l'arbre de navigation\tabularnewline
\hline
F3 & Toggle centered perspective & \index{point de vue}active / dsactive la projection prespective avec centre de rotation au niveau des entits & cf. section \ref{Options-affichage}\tabularnewline
\hline
CTRL~+~F3 & New 3D View & ouvrir une nouvelle vue 3D & \tabularnewline
\hline
F4 & Toggle viewer based perspective & \index{point de vue}active / dsactive la projection prespective avec centre de rotation confondu avec l'oeil de l'utilisateur & cf. section \ref{Options-affichage}\tabularnewline
\hline
CTRL~+~F4 & \index{Vue 3D}Close 3D View & fermer la vue 3D courante & \tabularnewline
\hline
F5 & Refresh & rafrachir l'affichage & \tabularnewline
\hline
F6 & Toogle sun light & \index{eclairage@clairage}active / dsactive la source lumineuse globale & cf. section \ref{Options-affichage}\tabularnewline
\hline
F7 & Toggle custom light & active / dsactive la source lumineuse secondaire & cf. section \ref{Options-affichage}\tabularnewline
\hline
F8 & Toggle console& \index{console}affiche / cache la console & \tabularnewline
\hline
F11 & Full screen & \index{plein cran}active / dsactive l'affichage en plein cran & \tabularnewline
\hline
CTRL~+~O & Open & \index{ouvrir un fichier}pour ouvrir un fichier & cf. section \ref{subsection:openFile} \tabularnewline
\hline
CTRL~+~S & Open & \index{sauver un fichier}pour sauver les entits slectionnes  & cf. section \ref{subsection:saveFile} \tabularnewline
\hline
ALT~+~C & Set Unique Color & pour appliquer une couleur unique aux entits slectionnes  & cf. section \ref{subsection:setUniqueColor} \tabularnewline
\hline
CTRL~+~V & Save Viewport & \index{sauver un point de vue}cr un objet \emph{Point de vue} correspondant au point de vue actuel (vue 3D active)  & cf. section \ref{subsection:viewportProp} \tabularnewline
\hline
V & Toggle entity visibility & inverse l'tat d'affichage des entits slectionnes & cf. section \ref{subsection:commonProperties} \tabularnewline
\hline
N & Toggle normals visibility & inverse l'tat d'affichage des normales des entits slectionnes & cf. section \ref{subsection:commonProperties} \tabularnewline
\hline
C & Toggle normals visibility & inverse l'tat d'affichage des couleurs des entits slectionnes & cf. section \ref{subsection:commonProperties} \tabularnewline
\hline
S & Toggle normals visibility & inverse l'tat d'affichage du champ scalaire (courant) des entits slectionnes & cf. section \ref{subsection:commonProperties} \tabularnewline
\hline
Del/Suppr & Delete & \index{supprimer}supprime les entits slectionnes & \tabularnewline
\hline
SHIFT~+~left clic & Create 2D Label & \index{etiquette, crer}cr une tiquette 2D standard associe au point dsign par le clic gauche (dans la vue 3D) & cf. section \ref{subsection:standardLabel} \tabularnewline
\hline
\end{longtable}
\par\end{center}