0029018: Documentation - Provide user guide for Qt browser
[occt.git] / dox / user_guides / inspector / inspector.md
1 Inspector  {#occt_user_guides__inspector}
2 ===============================
3
4 @tableofcontents
5  
6 @section occt_inspector_1 Introduction
7
8 This manual explains how to use Inspector.
9
10 @subsection occt_inspector_1_1 Overview
11 Inspector is a Qt-based library that provides functionality to interactively inspect low-level content of the OCAF data model, OCCT viewer and Modelisation Data.
12 This component is aimed to assist the developers of OCCT-based applications to debug the problematic situations that occur in their applications.
13
14 Inspector has a plugin-oriented architecture. The current release contains the following plugins:
15
16 | Plugin | OCCT component | Root class of OCCT investigated component |
17 | :----- | :----- | :----- |
18 | @ref occt_inspector_2_2 "DFBrowser"| OCAF | TDocStd_Application |
19 | @ref occt_inspector_2_3 "VInspector"| Visualization | AIS_InteractiveContext |
20 | @ref occt_inspector_2_4 "ShapeView"| Modelisation Data | TopoDS_Shape |
21
22
23 Each plugin implements logic of a corresponding OCCT component.
24
25 Each of the listed plugins is embeded in the common framework.
26 The user is able to manage which plugins should be loaded by Inspector.
27 Also he can extend number of plugins by implementing a new plugin.
28
29
30 @subsection occt_inspector_1_3 Getting started
31
32 There are two launch modes:
33 1. Launch **TInspectorEXE** executable sample. For more details see @ref occt_inspector_6 "TInspectorEXE" section;
34 2. Launch DRAW, load plugin INSPECTOR, and use **tinspector** command.
35    For more details see @ref occt_inspector_7 "Launch in DRAW Test Harness" section.
36
37
38 Note. If you have no Inspector library in your build directory, please make sure that OCCT is compiled with *BUILD_Inspector* 
39 option ON. For more details see @ref occt_inspector_4 "Build procedure".
40
41
42 @section occt_inspector_2 Inspector
43
44 @subsection occt_inspector_2_1 Overview
45
46 Inspector consists of the following components:
47   * <b>buttons</b> to activate the corresponding plugin;
48   * <b>view area</b> to visualize the plugin content.
49
50 @figure{tinspector_elements.svg,"Plugins placement in Inspector",360}
51
52 @subsection occt_inspector_2_2 DFBrowser Plugin
53
54 @subsubsection occt_inspector_2_2_1 Overview
55
56 @figure{dfbrowser.png, "DFBrowser"}
57
58 This plugin visualizes content of TDocStd_Application in a tree view. It shows documents of the application,
59 hierarchy of TDF_Labels, content of TDF_Attributes and interconnection between attributes (e.g. references).
60 Additionally it has 3D view to visualize TopoDS_Shape elements stored in the document.
61
62 @subsubsection occt_inspector_2_2_2 Elements
63
64 @figure{dfbrowser_elements.svg, "DFBrowser Elements",360}
65
66 <b>OCAF tree view</b>
67
68 Each OCAF element has own tree view item:
69
70 | Type | Tree item | Text | Description |
71 | :----- | :----- | :----- | :----- |
72 | TDocStd_Application | Application | TDocStd_Application | It is the root of tree view. Children are documents.|
73 | TDocStd_Document | Document | entry : name | It is a child of Application item. Children are Labels and Attributes items.<br> Text view is an entry of the root label and the value of TDataStd_Name attribute for the label if it exists. |
74 | TDF_Label | Label | entry : name | It is a child of a Document or another Label item. Children and text view are the same as for Document item. |
75 | TDF_Attribute | Attribute | attribute type [additional information] | It is a child of a Label. It has no children. <br> Text view is the attribute type (DynamicType()->Name() of TDF_Attribute) and additional information (a combination of attribute values) |
76
77
78 Additional information of TDF_Attributes:
79
80 | Type | Text |
81 | :----- | :----- |
82 | TDocStd_Owner | [storage format] |
83 | TDataStd_AsciiString,<br> TDataStd_Name,<br> TDataStd_Real,<br> @ref occt_attribute_simple_types "other Simple types" | [value] |
84 | TDataStd_BooleanList,<br> TDataStd_ExtStringList,<br> @ref occt_attribute_list_types "other List types" | [value_1 ... value_n] |
85 | TDataStd_BooleanArray,<br> TDataStd_ByteArray,<br> @ref occt_attribute_array_types "other Array types" | [value_1 ... value_n] |
86 | TDataStd_TreeNode | [tree node ID  ==> Father()->Label()] (if it has father) or <br> [tree node ID <== First()->Label()] (if it has NO father)|
87 | TDataStd_TreeNode(XDE) | [@ref occt_attribute_xde_tree_node_id "XDE tree node ID"  ==> Father()->Label()] (if it has father), <br> [@ref occt_attribute_xde_tree_node_id "XDE tree Node ID" <== label_1, ..., label_n] (if it has NO father)|
88 | TNaming_NamedShape | [shape type : evolution] |
89 | TNaming_UsedShapes | [map extent] |
90
91
92 Custom color of items:
93
94 | OCAF element Type | Color |
95 | :----- | :----- |
96 | TDF_Label | <b>dark green</b>, if the label has TDataStd_Name attribute, <br><b>light grey</b> if the label is empty (has no attributes on all levels of hierarchy),<br> <b>black</b> otherwise |
97 | TNaming_NamedShape | <b>dark gray</b> for TopAbs_FORWARD orientation of TopoDS_Shape, <br> <b>gray</b> for TopAbs_REVERSED orientation of TopoDS_Shape, <br> <b>black</b> for other orientation |
98
99
100 Context popup menu:
101 | Action | Functionality |
102 | :----- | :----- |
103 | Expand | Expands the next two levels under the selected item |
104 | Expand All | Expands the whole tree of the selected item |
105 | Collapse All | Collapses the whole tree of the selected item |
106
107
108 <b>Property Panel</b>
109
110 Property panel is used to display content of Label or Attribute tree view items.
111 This control is used for content of Label or Attribute tree view items or Search result view.
112 Information is usually shown in one or several tables.
113
114 TDF_Attribute has the following content in Property Panel:
115
116 <table>
117 <tr><th>Type</th><th>Description</th><th>Content</th></tr>
118 <tr><td>TDF_Label</td>
119     <td> a table of [entry or attribute name, value]</td>
120     <td>@figure{property_panel_label.png, "",140}</td></tr>
121 <tr><td>TDocStd_Owner,<br> @ref occt_attribute_simple_types "Simple types", <br> @ref occt_attribute_list_types "List types"</td>
122     <td>a table of [method name, value]</td>
123     <td>@figure{property_panel_simple_type.png, "",140}</td></tr>
124 <tr><td>TDataStd_BooleanArray,<br> TDataStd_ByteArray,<br> @ref occt_attribute_array_types "other Array types"</td>
125     <td>2 controls: <br>  * a table of [array bound, value], <br>  * table of [method name, value]</td>
126     <td>@figure{property_panel_array.png, "",140}</td></tr>
127 <tr><td>TDataStd_TreeNode</td>
128     <td>2 controls: <br>  * a table of [Tree ID, value] (visible only if Tree ID() != ID()), <br>  * a tree view of tree nodes starting from Root() of the tree node. The current tree node has <b>dark blue</b> text.</td>
129     <td>@figure{property_panel_tree_node.png, "",140} </td></tr>
130 <tr><td>TDataStd_NamedData</td>
131     <td>tab bar of attribute elements, each tab has a table of [name, value]</td>
132     <td>@figure{property_panel_named_data.png, "",140}</td></tr>
133 <tr><td>TNaming_UsedShapes</td>
134     <td>a table of all  the shapes handled by the framework</td>
135     <td>@figure{property_panel_tnaming_used_shapes.png, "",140}</td></tr>
136 <tr><td>TNaming_NamedShape</td>
137     <td>2 controls: <br>  * a table of [method name, value] including CurrentShape/OriginalShape methods result of TNaming_Tools, <br>  * an evolution table. <br> Tables contain buttons for @ref occt_shape_export "TopoDS_Shape export".</td>
138     <td>@figure{property_panel_tnaming_named_shape.png, "",140}</td></tr>
139 <tr><td>TNaming_Naming</td>
140     <td>2 controls: <br>  * a table of TNaming_Name vlaues,<br>  * a table of [method name, value]</td>
141     <td>@figure{property_panel_tnaming_naming.png, "",140}</td></tr>
142 </table>
143
144
145 <b>Dump view</b>
146
147 @figure{dump_attribute.png, "Dump of TDF_Attribute"}
148
149 Dump view shows result of <b>TDF_Attribute::Dump()</b> or <b>TDF_Label::Dump()</b> of selected tree view item.
150
151 <b>3D view</b>
152
153 3D View visualizes TopoDS_Shape elements of OCAF attribute via AIS facilities.
154
155 DFBrowser creates two kinds presentations depending on the selection place:
156
157 <table>
158 <tr><th>Kind</th><th>Source object</th><th>Visualization propeties</th><th>View</th></tr>
159 <tr><td>Main presentation</td>
160     <td>Tree view item:<br> TPrsStd_AISPresentation,<br> TNaming_NamedShape,<br> TNaming_Naming</td>
161     <td>Color: a default color for shape type of the current TopoDS_Shape</td>
162     <td>@figure{display_main_presentation.png, "",100}</td></tr>
163 <tr><td>Additional presentation</td>
164     <td>References in Property panel</td>
165     <td>Color: white</td>
166     <td>@figure{display_additional_presentation.png, "",100}</td></tr>
167 </table>
168
169
170
171 <b>Tree Navigation</b>
172
173 Tree Navigation shows a path to the item selected in the tree view.
174 The path is a sequence of label entries and attribute type name.
175 Each element in the path is selectable - the user can click on it to select the corresponding tree view item.
176
177 Navigation control has buttons to go to the previous and the next selected tree view items.
178
179
180 <b>Update Button</b>
181
182 Update button synchronizes content of tree view to the current content of OCAF document that could be modified outside.
183
184 <b>Search</b>
185
186 The user can search OCAF element by typing:
187   * TDF_Label entry,
188   * TDF_Attribute name,
189   * TDataStd_Name and TDataStd_Comment attributes value.
190
191 @figure{search.png,"Search"}
192
193 As soon as the user confirms the typed criteria, the Property panel is filled by all satisfied values.
194 The user can click a value to hightligt the corresponding tree view item. By double click the item will be selected.
195
196
197 @subsubsection occt_inspector_2_2_3 Elements cooperation
198
199 <b>Tree item selection</b>
200
201 Selection of tree view item updates content of the following controls:
202   * Navigation line
203   * Property Panel
204   * 3D View (if it is possible to create an interactive presentation)
205   * Dump View
206
207 @figure{dfbrowser_selection_in_tree_view.svg,"",360}
208
209 <b>Property Panel item selection </b>
210
211 If property panel shows content of TDF_Label:
212   * selection of the table row hightlights the corresponding item in tree view,
213   * double click on the table row selects this item in tree view.
214
215 If property panel shows content of TDF_Attribute that has reference to another attribute, selection of this reference:
216   * highlights the referenced item in TreeView,
217   * displays additional presentation in 3D view if it can be created.
218
219 @figure{property_panel_item_selection.svg,"",360}
220
221 Attributes having references:
222
223 | Type | Reference | Additional presentation
224 | :----- | :----- | :----- |
225 | TDF_Reference | TDF_Label | |
226 | TDataStd_ReferenceArray, <br> TDataStd_ReferenceList, <br> TNaming_Naming | one or several TDF_Label in a container | |
227 | TDataStd_TreeNode | TDF_Label | |
228 | TNaming_NamedShape | TDF_Label in Evolution table | selected TopoDS_Shapes in property panel tables |
229 | TNaming_UsedShapes | one or several TNaming_NamedShape | TopoDS_Shapes of selected TNaming_NamedShape |
230
231
232 @subsubsection occt_shape_export TopoDS_Shape export
233
234 Property panel of TNaming_NamedShape attribute has controls to export TopoDS_Shape to:
235   * BREP. The save file dialog is started to enter the result file name,
236   * @ref occt_inspector_2_4 "ShapeView" plugin. Dialog about exporting element to ShapeView is shown with a possibility to activate this plugin immediatelly.
237
238
239 @subsection occt_inspector_2_3 VInspector Plugin
240
241 @subsubsection occt_inspector_2_3_1 Overview
242
243 @figure{vinspector.png, "VInspector"}
244
245 It visualizes interactive objects displayed in AIS_InteractiveContext in a tree view with columputed selection
246 components for each presentation. It shows the selected elements in the context and allows to select these elements.
247
248 @subsubsection occt_inspector_2_3_2 Elements
249
250 @figure{vinspector_elements.svg,"VInspector Elements",360}
251
252 <b>Presentations tree view</b>
253
254 It shows presentations and selection computed of them. Also, the view has columns with information about state of visualization elements.
255
256 VInspector tree items.
257
258 | Type | Description |
259 | :----- | :----- |
260 | AIS_InteractiveContext | It is the root of tree view. Children are interactive objects obtained by *DisplayedObjects* and *ErasedObjects* methods.|
261 | AIS_InteractiveObject | It is a child of AIS_InteractiveContext item. Children are SelectMgr_Selection obtained by iteration on *CurrentSelection*  |
262 | SelectMgr_Selection | It is a child of AIS_InteractiveObject. Children are SelectMgr_SensitiveEntity obtaining by iteration on *Sensitive* |
263 | SelectMgr_SensitiveEntity | It is a child of SelectMgr_Selection. Children are SelectMgr_SensitiveEntity obtaining by iteration on *OwnerId* |
264 | SelectBasics_EntityOwner | It is a child SelectMgr_SensitiveEntity. It has no children. |
265
266
267 Custom color of tree view items:
268
269 | OCAF element Type | Column | What | Color |
270 | :----- | :----- | :----- | :----- |
271 | AIS_InteractiveObject | 0 | Text | <b>dark gray</b>, it is in *ErasedObjects* list of AIS_InteractiveContext,<br> <b>black</b> otherwise |
272 | AIS_InteractiveObject, <br> SelectMgr_SensitiveEntity, <br> SelectBasics_EntityOwner| 1 | Background | <b>dark blue</b>, if there is a selected owner under the item, <br> <b>black</b> otherwise |
273 | SelectMgr_Selection,<br> SelectMgr_SensitiveEntity,<br> SelectBasics_EntityOwner| all | Text | <b>dark gray</b>, if *SelectionState* of SelectMgr_Selection is not *SelectMgr_SOS_Activated*,<br> <b>black</b> otherwise |
274
275
276 Context popup menu in tree view:
277 | Action | Item | Functionality |
278 | :----- | :----- | :----- |
279 | Export to ShapeView | AIS_InteractiveObject | Exports TopoDS_Shape of AIS_Interactive presentation to ShapeView plugin. <br> It should be AIS_Shape presentation and ShapeView plugin should be registered in Inspector<br> Dialog about exporting element to ShapeView is shown with a possibility to activate this plugin immediatelly. |
280 | Show | AIS_InteractiveObject | *Display* presentation in AIS_InteractiveContext |
281 | Hide | AIS_InteractiveObject | *Erase* presentation from AIS_InteractiveContext |
282
283 <b>Update</b>
284
285 It synchronizes content of the plugin to the current state of AIS_InteractiveContext.
286 It updates the presence of items and the current selection for the items.
287
288 <b>Selection controls</b>
289
290 Selection controls switch on/off the posibility to set selection in the context from VInspector plugin.
291
292 | Action | Tree view item | Functionality |
293 | :----- | :----- | :----- |
294 | Select Presentations | AIS_InteractiveObject | Calls *AddOrRemoveSelected* of interactive object for the selected item |
295 | Select Owners | SelectMgr_EntityOwner or <br> SelectMgr_SensitiveEntity | Calls *AddOrRemoveSelected* of SelectMgr_EntityOwner for the selected item |
296
297 Please note, that the initial selection in context will be cleared.
298 If the button is toggled, the button selection is active. Only one button may be toggled at the moment.
299
300
301 <b>History view</b>
302
303 At present the History view is under implementation and may be used only in a custom application where Inspector is loaded.
304
305 To fill this view, VInspectorAPI_CallBack should be redefined in the application and send signals about some actions applyed to context.
306 After, the call back should be given as parameter in the plugin.
307 If done, new items will be created in the history view for each action.
308
309 @subsubsection occt_inspector_2_3_3 Elements cooperation
310
311 Vinspector markes current selected presentations in AIS_InteractiveContext with blue background in tree items. Use "Update" button to synchronize VInspector selected items state to the context.
312
313 It is also possible to perform selection in context using "Selection controls" VInspector. However, it should be performed carefully as
314 it clears the current selection in AIS_InteractiveContext.
315
316 Selection change:
317 | From | To | Action | Result |
318 | :----- | :----- | :----- | :----- |
319 | AIS_InteractiveContext | VInspector | perform selection in AIS_InteractiveContext | Click "Update" button in VInspector and check "Selection" column: <br> AIS_InteractiveContext item has anount of selected objects,<br> some of AIS_InteractiveObject have filled value if it selection happens for this presentation or entity owner of it |
320 | VInspector | AIS_InteractiveContext | activate one of Selection controls and select one or several elements in tree view | The objects become selected in AIS_InteractiveContext |
321
322 @subsection occt_inspector_2_4 ShapeView Plugin
323
324 @subsubsection occt_inspector_2_4_1 Overview
325
326 @figure{shapeview.png, "ShapeView"}
327
328 This plugin visualizes content of TopoDS_Shape in a tree view.
329
330 @subsubsection occt_inspector_2_4_2 Elements
331
332 @figure{shapeview_elements.svg,"ShapeView Elements",360}
333
334 <b>TopoDS_Shape View</b>
335
336 Elements of the view are TopoDS_Shape objects.
337 This shape is exploded into sub-shapes using TopoDS_Iterator of the TopoDS_Shape.
338 Child sub-shapes are presented in the view as children of the initial shape.
339 Iterating recursively by all shapes we obtain a tree view of items shown in the ShapeView.
340
341
342 Columns of the View show some information about TopoDS_Shape of the item.
343 The most informative column is the last column of TopoDS_Vertex and TopoDS_Edge shape types.
344
345 For TopoDS_Vertex it contains the point coordinates,
346
347 for TopoDS_Edge it contains the first and the last point coordinates, the edge length and some other parameters.
348
349
350 Context popup menu in tree view:
351 | Action | Functionality |
352 | :----- | :----- |
353 | Load BREP file | Opens selected file and appends the result TopoDS_Shape into tree view |
354 | Remove all shape items | Clears tree view |
355 | BREP view | Shows text view with BREP content of the selected item. It creates BREP file in temporary directory of the plugin. |
356 | Close All BREP views | Closes all opened text views |
357 | BREP directory | Displays folder where temporary BREP files have been stored.  |
358
359 @subsubsection occt_inspector_2_4_3 Elements cooperation
360
361 Selection of one or several items in TopoDS_Shape View creates AIS_Shape presentation for it and displays it in the 3D View.
362
363
364
365 @section occt_inspector_3 Common controls
366 @subsection occt_inspector_3_1 3D View
367
368 @subsubsection occt_inspector_3_1_1 Overview
369
370 @figure{3DView.png, "3D View"}
371
372 Control for OCCT 3D viewer. It creates visualization view components with possibilities to perform some
373 user actions for the view.
374
375
376 @subsubsection occt_inspector_3_1_2 Elements
377
378 @figure{3DView_elements.svg,"3DView Elements"}
379
380 3D View contains:
381 | Element | Functionality |
382 | :----- | :----- |
383 | 3D view | V3d viewer with mouse events processing |
384 | Context | choice of another context that should be used in the plugin. <br> It is possible to use the next contexts:<br> Own - context of this view, <br> External - context come in parameters which intializes plugin, <br> None - do not perform visualization at all |
385 | Multi/Single | Buttons defined what to do with the previous displayed objects: <br> Multi displays new presentations in additional to already displayed, <br> Single removes all previuos displayed presentations |
386 | Clean | Removes all displayed presentations |
387 | Fit All,<br> Fit Area,<br> Zoom,<br> Pan,<br> Rotation | Scene manipulation actions |
388 | Display Mode | Sets *AIS_Shading* or *AIS_WireFrame* display mode for all presentations |
389
390
391 @section occt_inspector_6 TInspectorEXE sample
392
393 Inspector functionality can be tried using this sample.
394
395 Use *inspector.bat* script file placed in binary directory of OCCT to launch it.
396
397 This script accepts the names of plugin's DLL that should be loaded. By default it loads all described above plugins.
398
399
400 @figure{TStandaloneEXE.png, "TStandaloneEXE"}
401
402 Click on the Open button shows the dialog to select a file. The user is able to select one of the sample files or load own one.
403 @figure{TStandaloneEXE_open.png, ""}
404
405 Depending on the active plugin, the following files should be selected in the dialog:
406 OCAF document or STEP files for DFBRowser and BREP files for VInspector and ShapeView plugins.
407
408 It is possible to click the file name in the proposed directory, enter it manually or using Browser button.
409 The last Loading icon becomes enabled if file name is correct.
410
411
412 By default TInspectorEXE opens the next files for plugins:
413 | Plugin DLL library name | Files |
414 | :----- | :----- |
415 | TKDFBrowser | step/screw.step |
416 | TKVInspector | occ/hammer.brep |
417 | TKShapeView | occ/face1.brep, <br> occ/face2.brep |
418
419 These files are found relatively *CSF_OCCTDataPath*.
420
421
422 Source code of TIspectorEXE is a good sample for @ref occt_inspector_8 "Using Inspector in a custom application".
423
424
425 @section occt_inspector_7 Launch in DRAW Test Harness
426
427 TKToolsDraw plugin is created to provide DRAW commands for Qt tools. Use INSPECTOR parameter of @ref occt_draw_1_3_3 "pload" 
428 command to download commands of this library. It contains tinspector command to start Inspector under DRAW.
429 See more detailed description of the @ref occt_draw_13_1 "tinspector" command.
430
431 The simple code to start Inspector with all plugins loaded:
432
433 ~~~~~
434 pload INSPECTOR
435 tinspector
436 ~~~~~
437
438 @figure{drawexe_tinspector.png,"tinspector"}
439
440 Result of this command is the next:
441 - all available Plugins are presented in the Inspector. These are @ref occt_inspector_2_2 "DFBrowser", @ref occt_inspector_2_3 "VInspector" and  @ref occt_inspector_2_4 "ShapeView".
442 - DFBrowser is an active plugin
443 - tree of OCAF is empty.
444
445 After, we should create objects in DRAW and update tinspector.
446
447 @section occt_inspector_8 Using in a custom application
448
449 To use Inspector in an application, the next steps should be done:
450 * Set dependencies to OCCT and Qt in application (Header and Link)
451 * Create an instance of TInspector_Communicator.
452 * Register plugins of interest in the communicator by DLL library name
453 * Initialize communicator with objects that will be investigated
454 * Set visible true for commumicator
455
456
457 C++ code is similar:
458 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
459
460 #include <inspector/TInspector_Communicator.hxx>
461
462 static TInspector_Communicator* MyTCommunicator;
463
464 void CreateInspector()
465 {
466   NCollection_List<Handle(Standard_Transient)> aParameters;
467   //... append parameters in the list
468
469   if (!MyTCommunicator)
470   {
471     MyTCommunicator = new TInspector_Communicator();
472
473     MyTCommunicator->RegisterPlugin ("TKDFBrowser");
474     MyTCommunicator->RegisterPlugin ("TKVInspector");
475     MyTCommunicator->RegisterPlugin ("TKShapeView");
476
477     MyTCommunicator->Init (aParameters);
478     MyTCommunicator->Activate ("TKDFBrowser");
479   }
480   MyTCommunicator->SetVisible (true);
481 }
482
483 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
484
485 | Plugin | to be initialized by |
486 | :----- | :----- |
487 | TKDFBrowser | TDocStd_Application |
488 | TKVInspector | AIS_InteractiveContext |
489 | TKShapeView | TopoDS_TShape |
490
491
492
493 @section occt_inspector_4 Build procedure
494
495 By default the Inspector compilation is off.
496 To compile it, set the <b>BUILD_Inspector</b> flag to "ON". See @ref build_cmake_conf "Configuration process".
497
498 When this option is switched On, MS Visual Studio project has an additional tree of folders:
499
500 @figure{VStudio_projects.png,"Inspector packages in MS Visual Studio"}
501
502
503 @section occt_inspector_5 Sources and packaging
504
505 OCCT sources are extended by the /tools directory.
506
507 Distribution of packages participated in plugins:
508 | Sources packages| Plugin |
509 | :----- | :----- |
510 | DFBrowser, <br> DFBrowserPane, <br> DFBrowserPaneXDE, <br> TKDFBrowser | DFBrowser |
511 | VInspector, <br> TKVInspector  | VInspector |
512 | ShapeView, <br> TKShapeView | ShapeView |
513
514 Other packages:
515 | Sources packages| Used in |
516 | :----- | :----- |
517 | TInspectorAPI, <br> TKInspectorAPI | Iterface for connection to plugin. |
518 | TreeModel, <br> TKTreeView | Items-oriented model to simplify work with GUI tree control. |
519 | View, <br> TKView | 3D View component |
520 | TInspector, <br> TKTInspector  | Inspector window where plugins are placed |
521 | ToolsDraw, <br> TKToolsDraw | Plugin for DRAW to start Inspector |
522
523
524 In MSVC studio the separate folder contains Inspector projects.
525
526 @section occt_inspector_9 Glossary
527 * **Component** -- OCCT part, e.g. OCAF, VISUALIZATION, MODELING and others. 
528 * **Plugin** -- library that is loaded in some executable/library. Here, the plugins are:
529   * DFBrowser,
530   * ShapeView,
531   * VInspector.
532
533 @subsection occt_attribute_simple_types TDF_Attribute Simple types
534 Types where the content is a single value
535
536 | Type | Kind of value |
537 | :----- | :----- |
538 | TDataStd_AsciiString | TDataStd_AsciiString |
539 | TDataStd_Comment | TCollection_ExtendedString |
540 | TDataStd_Integer | Standard_Integer |
541 | TDataStd_Name | TCollection_ExtendedString |
542 | TDataStd_Real | Standard_Real |
543 | TDF_Reference | TDF_Label |
544 | TDF_TagSource | Standard_Integer |
545
546
547 @subsection occt_attribute_list_types TDF_Attribute List types
548
549 | Type | Kind of value (container of) |
550 | :----- | :----- |
551 | TDataStd_BooleanList | Standard_Boolean |
552 | TDataStd_ExtStringList | TCollection_ExtendedString |
553 | TDataStd_IntegerList | Standard_Integer |
554 | TDataStd_RealList | Standard_Real |
555 | TDataStd_ReferenceList | TDF_Label |
556
557 @subsection occt_attribute_array_types TDF_Attribute Array types
558
559 | Type | Kind of value (container of) |
560 | :----- | :----- |
561 | TDataStd_BooleanArray | Standard_Boolean |
562 | TDataStd_ByteArray | Standard_Byte |
563 | TDataStd_ExtStringArray | TCollection_ExtendedString |
564 | TDataStd_IntegerArray | Standard_Integer |
565 | TDataStd_RealArray | Standard_Real |
566 | TDataStd_ReferenceArray | TDF_Label |
567
568 @subsection occt_attribute_xde_tree_node_id XDE tree node ID description
569 | GUID | Text |
570 | :----- | :----- |
571 | XCAFDoc::ShapeRefGUID() | Shape Instance Link |
572 | XCAFDoc::ColorRefGUID (XCAFDoc_ColorGen) | Generic Color Link |
573 | XCAFDoc::ColorRefGUID (XCAFDoc_ColorSurf) | Surface Color Link |
574 | XCAFDoc::ColorRefGUID (XCAFDoc_ColorCurv) | Curve Color Link |
575 | XCAFDoc::DimTolRefGUID() | DGT Link |
576 | XCAFDoc::DatumRefGUID() | Datum Link |
577 | XCAFDoc::MaterialRefGUID() | Material Link |
578