Salome HOME
Edit description of selection
[modules/gui.git] / doc / salome / gui / input / occ_3d_viewer.rst
1 .. _occ_3d_viewer_page: 
2
3 *************
4 OCC 3D Viewer
5 *************
6
7 Operations
8 ##########
9
10 The functionalities of OCC viewer are available via its Viewer
11 Toolbar. Buttons marked with small downward triangles have extended
12 functionality which can be accessed by locking on them with left mouse
13 button.
14
15 .. image:: ../images/occviewer_toolbar.png
16         :align: center
17
18 ____
19
20 .. image:: ../../../../src/OCCViewer/resources/occ_view_camera_dump.png
21         :align: center
22
23 **Dump View** - exports an object from the viewer in bmp, png, jpeg or another image format.
24
25 ____
26
27 .. image:: ../../../../src/OCCViewer/resources/occ_view_style_switch.png
28         :align: center
29
30 **Interaction style switch** - allows to switch between standard
31 and "keyboard free" interaction styles. "Keyboard free" style allows
32 to process all view transformations without using keyboard (only by
33 mouse). By default, rotation in this mode is performed by left mouse
34 button, panning - by middle mouse button, zooming - by right mouse 
35 button. Selection in view by pressing "s" key works in both
36 styles.
37
38 ____
39
40 .. image:: ../../../../src/OCCViewer/resources/occ_view_zooming_style_switch.png
41         :align: center
42
43 **Zooming style switch** - allows to switch between standard
44 (zooming at the center of the view) and advanced (zooming at the
45 current cursor position) zooming styles.
46
47 ____
48
49 .. image:: ../../../../src/OCCViewer/resources/occ_view_triedre.png
50         :align: center
51
52 **Show/Hide Trihedron** - shows or hides coordinate axes.
53
54 ____
55
56 .. image:: ../../../../src/OCCViewer/resources/occ_view_preselection.png
57         :align: center
58
59 **Enable/Disable preselection** - enables or disables preselection (highlighting) in the view.
60
61 ____
62
63 .. image:: ../../../../src/OCCViewer/resources/occ_view_selection.png
64         :align: center
65
66 **Enable/Disable selection** - enables or disables selection in the view.
67
68 ____
69
70 .. image:: ../../../../src/OCCViewer/resources/occ_view_rect_style.png
71         :align: center
72
73 **Selection by rectangle** - enables selection by rectangle (see for details :ref:`viewer_selection` chapter).
74
75 ____
76
77 .. image:: ../../../../src/OCCViewer/resources/occ_view_polygon_style.png
78         :align: center
79
80 **Selection by polygon** - enables selection by polygon (see for details :ref:`viewer_selection` chapter).
81
82 ____
83
84 .. image:: ../../../../src/OCCViewer/resources/occ_view_circle_style.png
85         :align: center
86
87 **Selection by circle** - enables selection by circle (see for details :ref:`viewer_selection` chapter).
88
89 ____
90
91 .. image:: ../../../../src/OCCViewer/resources/occ_view_fitall.png
92         :align: center
93
94 **Fit all** - represents all displayed objects in the
95 visible area.
96
97 ____
98
99 .. image:: ../../../../src/OCCViewer/resources/occ_view_fitarea.png
100         :align: center
101
102 **Fit area** - resizes the view to place in the visible area only
103 the contents of a frame drawn with pressed left mouse button.
104
105 ____
106
107 .. image:: ../../../../src/OCCViewer/resources/occ_view_fitselection.png
108         :align: center
109
110 **Fit selection** - fits view contents to the current selection.
111
112 ____
113
114 .. image:: ../../../../src/OCCViewer/resources/occ_view_zoom.png
115         :align: center
116
117 **Zoom** - allows to zoom in and out.
118
119 ____
120
121 .. image:: ../../../../src/OCCViewer/resources/occ_view_pan.png
122         :align: center
123
124 **Panning** - if the represented objects are greater that the
125 visible area and you don't wish to use **Fit all** functionality,
126 click on this button and you'll be able to drag the scene to see its
127 remote parts.
128
129 ____
130
131 .. image:: ../../../../src/OCCViewer/resources/occ_view_glpan.png
132         :align: center
133
134 **Global panning** - allows to select a point to be the center of a scene
135 representing all displayed objects in the visible area.
136
137 ____
138
139 .. image:: ../../../../src/OCCViewer/resources/occ_view_rotation_point.png
140         :align: center
141
142 **Change rotation point** - allows to choose the point around
143 which the rotation is performed.
144
145 .. image:: ../images/set_rotation_point_dialog1.png
146         :align: center
147
148 By default the rotation point is located in the Center of the bounding
149 box of represented objects.
150
151 .. image:: ../images/set_rotation_point_dialog2.png
152         :align: center
153
154 Unchecking **Use Bounding Box Center** check-box allows you to
155 change rotation point:
156
157 - **Set to Origin** button sets the rotation point to origin of coordinates: (0, 0, 0).
158 - **Gravity Center of Selected Object** button allows using the gravity center of the object selected in the viewer as the center of the rotation point. When you click this button, you should first choose the type of selectable object: Point, Edge, Face or Solid and only then proceed with selection in the viewer.
159 - Also you can define the coordinates of the rotation point manually.
160
161 ____
162
163 .. image:: ../../../../src/OCCViewer/resources/occ_view_rotate.png
164         :align: center
165
166 **Rotation** - allows to rotate the scene using the mouse.
167
168 ____
169
170 .. image:: ../../../../src/OCCViewer/resources/occ_view_front.png
171         :align: center
172
173 .. image:: ../../../../src/OCCViewer/resources/occ_view_back.png
174         :align: center
175
176 .. image:: ../../../../src/OCCViewer/resources/occ_view_top.png
177         :align: center
178
179 .. image:: ../../../../src/OCCViewer/resources/occ_view_bottom.png
180         :align: center
181
182 .. image:: ../../../../src/OCCViewer/resources/occ_view_left.png
183         :align: center
184
185 .. image:: ../../../../src/OCCViewer/resources/occ_view_right.png
186         :align: center
187
188 These buttons orientate the scene strictly about coordinate axes:
189 **Front**, **Back**, **Top**, **Bottom**, **Left** or **Right** side.
190
191 ____
192
193 .. image:: ../../../../src/OCCViewer/resources/occ_view_anticlockwise.png
194         :align: center
195
196 **Rotate counterclockwise** - rotates view 90 @htmlonly ° @endhtmlonly counterclockwise.
197
198 ____
199
200 .. image:: ../../../../src/OCCViewer/resources/occ_view_clockwise.png
201         :align: center
202
203 **Rotate clockwise** - rotates view 90 @htmlonly ° @endhtmlonly clockwise.
204
205 ____
206
207 .. image:: ../../../../src/OCCViewer/resources/occ_view_orthographic.png
208         :align: center
209
210 **Ortographic projection** - default OCC viewer projection mode.
211
212 ____
213
214 .. image:: ../../../../src/OCCViewer/resources/occ_view_perspective.png
215         :align: center
216
217 **Perspective projection** - perspective OCC viewer projection mode.
218
219 ____
220
221 .. image:: ../../../../src/OCCViewer/resources/occ_view_stereo.png
222         :align: center
223
224 **Stereo projection** - stereoscopic rendering of the view.
225 .. note:: Activation of this mode also switches the view to perpective projection in case if the orthographic one has been active.
226 .. note:: By default, quad-buffered stereo is activated, if it is supported by the graphic card. If no stereo capabilities are available, an error message is shown.
227 .. note:: The stereoscopic view settings can be defined in :ref:`occ_preferences` preferences.
228
229 ____
230
231 .. image:: ../../../../src/OCCViewer/resources/occ_view_reset.png
232         :align: center
233
234 **Reset** - restores the default position (isometric) of objects in
235 the scene.
236
237 ____
238
239 .. image:: ../../../../src/OCCViewer/resources/occ_view_shoot.png
240         :align: center
241
242 **Memorize view** - saves the current position of objects in the
243 scene.
244
245 ____
246
247 .. image:: ../../../../src/OCCViewer/resources/occ_view_presets.png
248         :align: center
249
250 **Restore view** - restores the saved position of objects in the
251 scene.
252
253 ____
254
255 .. image:: ../../../../src/OCCViewer/resources/occ_view_clone.png
256         :align: center
257
258 **Clone view** - opens a new duplicate scene.
259
260 ____
261
262 .. _clipping_planes:
263
264 Clipping Planes
265 ###############
266
267 **Clipping** allows creating cross-section views (clipping planes)
268 of your mesh.
269
270 To create a clipping plane, click on the **New** button in the dialog and choose how it will be defined by **Absolute** or **Relative** coordinates.
271
272 **Absolute Coordinates**
273
274 .. image:: ../images/Clipping_Absolute.png
275         :align: center
276
277 - **Base point** - allows defining the coordinates of the base point for the clipping plane.
278
279   - **Reset** - returns the base point to coordinate origin.
280
281 - **Direction** - allows defining the orientation of the clipping plane.
282
283         - **Invert** - allows selecting, which part of the object will be removed and which will remain after clipping.
284
285     
286 **Relative mode**  
287
288 .. image:: ../images/Clipping_Relative.png
289         :align: center
290
291 - **Orientation** ( ||X-Y, ||X-Z or ||Y-Z).
292
293 - **Distance** between the opposite extremities of the boundary box of represented objects, if it is set to 0.5 the boundary box is split in two halves.
294
295 - **Rotation** (in angle degrees) **around X** (Y to Z) and **around Y** (X to Z) (depending on the chosen Orientation)
296
297 The other parameters are available in both modes : 
298
299 - **Active** checkbox is used to apply/erase current plane and it's affect to/from view.
300 - **Delete** removes the active clipping plane and discards it's view changes.
301 - **Disable all** deactivates all created clipping planes and clears **Auto Apply** checkbox.
302 - **Preview** check-box shows the clipping plane in the **3D Viewer**.
303 - **Auto Apply** check-box allows you to see the result of clipping in the **3D Viewer** immediately. Be careful, it is not a preview 2and Close button could not cancel the applied modifications.
304
305 It is also possible to interact with the clipping plane directly in 3D 
306 view using the mouse. 
307
308 ____
309
310 .. image:: ../../../../src/OCCViewer/resources/occ_view_scaling.png
311         :align: center
312
313 **Scaling** - represents objects deformed (stretched or stuffed)
314 along the axes of coordinates.
315
316 ____
317
318 .. image:: ../../../../src/OCCViewer/resources/occ_view_graduated_axes.png
319         :align: center
320
321 **Graduated axes** - allows to define axes parameters and graduate
322 them.
323
324 .. image:: ../images/graduatedaxes2.png
325         :align: center
326
327 - **Axis name** - if checked the axis name is displayed in the viewer.
328
329   - **Name** - allows to redefine the axis name.
330
331   - **Font** - allows to define the font color of the axis name.
332
333 - **Labels** - if checked the labels are displayed in the viewer.
334
335   - **Number** - allows to define the number of labels.
336
337   - **Offset** - allows to define the distance between axis and labels.
338
339   - **Font** - allows to define the font color of labels names.
340
341 - **Tick marks** - if checked the tick marks are displayed in the viewer.
342
343   - **Length** - allows to define the length of tick marks.
344
345 - **Is visible** - if checked the graduated axes are displayed in the viewer.
346
347 ____
348
349 .. image:: ../../../../src/OCCViewer/resources/occ_view_ambient.png
350         :align: center
351
352 **Toggle ambient light** - toggle "keep only ambient light" flag
353 on/off.
354
355 ____
356
357 .. image:: ../../../../src/OCCViewer/resources/occ_view_minimized.png
358         :align: center
359
360 |
361
362 .. image:: ../../../../src/OCCViewer/resources/occ_view_maximized.png
363         :align: center
364
365 **Minimize/Maximize** - these buttons allow switching the current
366 view area to the minimized / maximized state.
367
368 ____
369
370 .. image:: ../../../../src/OCCViewer/resources/occ_view_return_3d_view.png
371         :align: center
372
373 **Return to 3D** - this button switches from 2D view projection back to the 3D view mode.
374
375 ____
376
377 .. image:: ../images/occ_view_sync.png
378         :align: center
379
380 **Synchronize view** - allows to synchronize 3d view
381 parameters. This button has two states - checked and
382 unchecked. Clicking on this button opens a drop-down menu listing the
383 compatible 3d views. As soon as the user selects any view from the
384 list, the parameters (view point, position, zoom coefficient, etc.) of
385 the current view are synchronized with the selected view (static
386 synchronization).
387
388 In addition, when this button is in the "checked" state, the dynamic
389 synchronization of the views is performed, i.e. any zoom, pan, rotate
390 or other view operation done in one view is automatically applied to
391 the other view.
392
393 ____
394
395 .. image:: ../../../../src/OCCViewer/resources/occ_view_ray_tracing.png
396         :align: center
397
398 .. _ray_tracing:
399
400 Ray tracing
401 ===========
402
403 **Ray tracing** - allows to switch between rendering methods in run-time 
404 in the current OCCT 3D view. It can be used to produce images with photorealistic quality.
405
406 .. image:: ../images/doc_ray_tracing.png
407         :align: center
408
409 - **Ray tracing** - specifies rendering mode: OpenGL rasterization (by default) or GPU ray-tracing.
410
411   - **Depth** - defines maximum ray-tracing depth.
412   
413   - **Specular reflections** - enables/disables specular reflections.
414   
415   - **Adaptive anti-aliasing** - enables/disables adaptive anti-aliasing.
416     
417   - **Shadows rendering** - enables/disables shadows rendering.
418   
419   - **Transparent shadow** - enables/disables light propagation through transparent media.
420   
421 ____
422
423 .. image:: ../../../../src/OCCViewer/resources/occ_view_env_texture.png
424         :align: center
425
426 .. _env_texture:
427
428 Environment texture
429 ###################
430
431 **Environment texture** - allows to set parameters for environment texture.
432 This is a special mode of texture mapping when specular reflection of environment texture 
433 is simulated by OpenGL using a special texture coordinates generation algorithm (a sphere map).
434
435 .. image:: ../images/doc_env_texture.png
436         :align: center
437
438 - **Environment texture** - enables/disables environment texture in the current OCCT 3D view.
439
440 User can select one of 7 predefined environment texture from the list or define its texture from file by 
441 choosing item **"Custom..."** in a combo box.
442
443 .. note:: 
444         Environment texture file should normally satisfy the following requirements in order to produce good visual result:
445                 * The image file should have 2:1 width-to-height ratio.
446                 * It should constitute a 360-degrees panoramic image created using a fish-eye lens. 
447
448 ____
449
450 .. image:: ../../../../src/OCCViewer/resources/occ_view_light_source.png
451         :align: center
452
453 .. _light_source:
454
455 Light source
456 ============
457
458 **Light source** - allows to set parameters for light source.
459
460 It's possible to choose a type of light source between directional and positional light.
461
462 .. image:: ../images/doc_dir_light_source.png
463         :align: center
464
465 **Directional** light - creates a directional light source in the viewer.
466 It is defined by direction coordinates, color and headlight parameter.
467
468 .. image:: ../images/doc_pos_light_source.png
469         :align: center
470
471 **Positional** light - creates an isolated light source X,Y,Z in the viewer. 
472 It is also defined by the color and headlight parameter.
473
474 Click:
475
476 - **Apply and Close** to apply defined light source to the OCC 3D Viewer.
477
478 - **Default** to restore default values of light source.
479
480 - **Close** to return parameters of light source on initial values.
481
482
483