| 1 | -- Created on: 1991-06-12 |
| 2 | -- Created by: NW,JPB,CAL |
| 3 | -- Copyright (c) 1991-1999 Matra Datavision |
| 4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
| 5 | -- |
| 6 | -- This file is part of Open CASCADE Technology software library. |
| 7 | -- |
| 8 | -- This library is free software; you can redistribute it and/or modify it under |
| 9 | -- the terms of the GNU Lesser General Public License version 2.1 as published |
| 10 | -- by the Free Software Foundation, with special exception defined in the file |
| 11 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
| 12 | -- distribution for complete text of the license and disclaimer of any warranty. |
| 13 | -- |
| 14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
| 15 | -- commercial license or contractual agreement. |
| 16 | |
| 17 | -- 11/97 ; CAL : gestion du GraphicClear |
| 18 | -- 11/97 ; CAL : ajout pointer StructPtr |
| 19 | -- 11/97 ; CAL : amelioration de l'effacement SetManager |
| 20 | -- 01/98 ; CAL : gestion du HLRValidation |
| 21 | -- 05/98 ; CAL : gestion du GraphicConnect et Disconnect |
| 22 | -- 02/00 ; GG : Made Transform() methode not mutable. |
| 23 | -- 31/05/01 ; GG : Add ResetDisplayPriority() method |
| 24 | |
| 25 | class Structure from Graphic3d inherits TShared |
| 26 | |
| 27 | ---Version: |
| 28 | |
| 29 | ---Purpose: This class allows the definition a graphic object. |
| 30 | -- This graphic structure can be displayed, |
| 31 | -- erased, or highlighted. |
| 32 | -- This graphic structure can be connected with |
| 33 | -- another graphic structure. |
| 34 | -- Keywords: Structure, StructureManager, Display, Erase, Highlight, |
| 35 | -- UnHighlight, Visible, Priority, Selectable, Visible, |
| 36 | -- Visual, Connection, Ancestors, Descendants, Transformation |
| 37 | |
| 38 | ---Warning: |
| 39 | ---References: |
| 40 | |
| 41 | uses |
| 42 | |
| 43 | Array2OfReal from TColStd, |
| 44 | SequenceOfAddress from TColStd, |
| 45 | |
| 46 | Color from Quantity, |
| 47 | |
| 48 | GenId from Aspect, |
| 49 | TypeOfHighlightMethod from Aspect, |
| 50 | |
| 51 | DataStructureManager from Graphic3d, |
| 52 | AspectFillArea3d from Graphic3d, |
| 53 | AspectLine3d from Graphic3d, |
| 54 | AspectMarker3d from Graphic3d, |
| 55 | AspectText3d from Graphic3d, |
| 56 | CStructure from Graphic3d, |
| 57 | CStructure_Handle from Graphic3d, |
| 58 | GraphicDriver from Graphic3d, |
| 59 | Group from Graphic3d, |
| 60 | SequenceOfGroup from Graphic3d, |
| 61 | SequenceOfStructure from Graphic3d, |
| 62 | HSequenceOfStructure from Graphic3d, |
| 63 | MapOfStructure from Graphic3d, |
| 64 | Plotter from Graphic3d, |
| 65 | StructureManager from Graphic3d, |
| 66 | StructureManagerPtr from Graphic3d, |
| 67 | TypeOfComposition from Graphic3d, |
| 68 | TypeOfConnection from Graphic3d, |
| 69 | TypeOfPrimitive from Graphic3d, |
| 70 | TypeOfStructure from Graphic3d, |
| 71 | Vector from Graphic3d, |
| 72 | Vertex from Graphic3d, |
| 73 | TransModeFlags from Graphic3d, |
| 74 | Pnt from gp, |
| 75 | SequenceOfHClipPlane from Graphic3d |
| 76 | |
| 77 | raises |
| 78 | |
| 79 | PriorityDefinitionError from Graphic3d, |
| 80 | StructureDefinitionError from Graphic3d, |
| 81 | TransformError from Graphic3d |
| 82 | |
| 83 | is |
| 84 | |
| 85 | ------------------------ |
| 86 | -- Category: Constructor |
| 87 | ------------------------ |
| 88 | |
| 89 | Create (theManager : StructureManager from Graphic3d) |
| 90 | returns mutable Structure from Graphic3d; |
| 91 | ---Level: Public |
| 92 | ---Purpose: Creates a graphic object in the manager theManager. |
| 93 | -- It will appear in all the views of the visualiser. |
| 94 | -- Warning: The default values AspectLine, AspectFillArea, AspectText and AspectMarker are NOT applied to the structure. |
| 95 | -- The structure is not displayed when it is created. |
| 96 | |
| 97 | Create (theManager : StructureManager from Graphic3d; |
| 98 | thePrs : Structure from Graphic3d) |
| 99 | returns mutable Structure from Graphic3d; |
| 100 | ---Level: Public |
| 101 | ---Purpose: Creates a shadow link to existing graphic object. |
| 102 | |
| 103 | --------------------------------------------------- |
| 104 | -- Category: Methods to modify the class definition |
| 105 | --------------------------------------------------- |
| 106 | |
| 107 | -------------------------------------------------------- |
| 108 | -- Summary of Display Priorities -- |
| 109 | -- -- |
| 110 | -- Structure display priorities control the order in -- |
| 111 | -- which structures are redrawn. -- |
| 112 | -- -- |
| 113 | -- When you display a structure, you specify its -- |
| 114 | -- priority. The lower the value, the lower the -- |
| 115 | -- display priority. When the display is regenerated, -- |
| 116 | -- the structures with the lowest priority are drawn -- |
| 117 | -- first. -- |
| 118 | -- For structures with the same display priority, -- |
| 119 | -- the order in which they were displayed determines -- |
| 120 | -- determines the drawing order. -- |
| 121 | -- -- |
| 122 | -- CAS.CADE supports 11 structure display priorities, -- |
| 123 | -- 0 to 10. -- |
| 124 | -------------------------------------------------------- |
| 125 | |
| 126 | Clear ( me : mutable; |
| 127 | WithDestruction : Boolean from Standard = Standard_True ) |
| 128 | is virtual; |
| 129 | ---Level: Public |
| 130 | ---Purpose: if WithDestruction == Standard_True then |
| 131 | -- suppress all the groups of primitives in the structure. |
| 132 | -- and it is mandatory to create a new group in <me>. |
| 133 | -- if WithDestruction == Standard_False then |
| 134 | -- clears all the groups of primitives in the structure. |
| 135 | -- and all the groups are conserved and empty. |
| 136 | -- They will be erased at the next screen update. |
| 137 | -- The structure itself is conserved. |
| 138 | -- The transformation and the attributes of <me> are conserved. |
| 139 | -- The childs of <me> are conserved. |
| 140 | ---Category: Methods to modify the class definition |
| 141 | |
| 142 | Destroy ( me : mutable ) |
| 143 | is virtual; |
| 144 | ---Level: Public |
| 145 | ---Purpose: Suppresses the structure <me>. |
| 146 | -- It will be erased at the next screen update. |
| 147 | ---Category: Methods to modify the class definition |
| 148 | ---C++: alias ~ |
| 149 | |
| 150 | Display ( me : mutable ) |
| 151 | is virtual; |
| 152 | ---Level: Public |
| 153 | ---Purpose: Displays the structure <me> in all the views of |
| 154 | -- the visualiser. |
| 155 | ---Category: Methods to modify the class definition |
| 156 | |
| 157 | Display ( me : mutable; |
| 158 | Priority : Integer from Standard ) |
| 159 | ---Level: Public |
| 160 | ---Purpose: Displays the structure <me> in all the views of |
| 161 | -- the visualiser, while modifying its current priority. |
| 162 | -- Note: Display Priorities |
| 163 | -- Structure display priorities control the order in which |
| 164 | -- structures are redrawn. When you display a |
| 165 | -- structure, you specify its priority. The lower the value, |
| 166 | -- the lower the display priority. When the display is |
| 167 | -- regenerated, the structures with the lowest priority |
| 168 | -- are drawn first. For structures with the same display |
| 169 | -- priority, the order in which they were displayed |
| 170 | -- determines the drawing order. Open CASCADE |
| 171 | -- supports 11 structure display priorities, 0 to 10. |
| 172 | -- Warning: Raises PriorityDefinitionError if <Priority> is |
| 173 | -- greater than 10 or a negative value. |
| 174 | raises PriorityDefinitionError from Graphic3d is static; |
| 175 | |
| 176 | DisplayPriority ( me ) |
| 177 | returns Integer from Standard |
| 178 | is static; |
| 179 | ---Level: Public |
| 180 | ---Purpose: Returns the current display priority for the |
| 181 | -- structure <me>. |
| 182 | ---Category: Methods to modify the class definition |
| 183 | |
| 184 | Erase ( me : mutable ) |
| 185 | is virtual; |
| 186 | ---Level: Public |
| 187 | ---Purpose: Erases the structure <me> in all the views |
| 188 | -- of the visualiser. |
| 189 | ---Category: Methods to modify the class definition |
| 190 | |
| 191 | Highlight ( me : mutable; |
| 192 | Method : TypeOfHighlightMethod from Aspect ) |
| 193 | is static; |
| 194 | ---Level: Public |
| 195 | ---Purpose: Highlights the structure <me> in all the |
| 196 | -- views of the visualiser, using the following methods: |
| 197 | -- |
| 198 | -- TOHM_COLOR = drawn in the highlight color |
| 199 | -- (default white) |
| 200 | -- TOHM_BLINK = blinking |
| 201 | -- TOHM_BOUNDBOX = enclosed by the boundary box |
| 202 | -- (default white) |
| 203 | -- |
| 204 | ---Category: Methods to modify the class definition |
| 205 | |
| 206 | Remove ( me : mutable ) |
| 207 | is static; |
| 208 | ---Level: Public |
| 209 | ---Purpose: Suppress the structure <me>. |
| 210 | -- It will be erased at the next screen update. |
| 211 | -- Warning: No more graphic operations in <me> after this call. |
| 212 | -- Category: Methods to modify the class definition |
| 213 | |
| 214 | SetHighlightColor ( me : mutable; |
| 215 | AColor : Color from Quantity ) |
| 216 | is static; |
| 217 | ---Level: Public |
| 218 | ---Purpose: Modifies the highlight color for the Highlight method |
| 219 | -- with the highlight method TOHM_COLOR or TOHM_BOUNDBOX. |
| 220 | ---Category: Methods to modify the class definition |
| 221 | |
| 222 | SetInfiniteState (me : mutable; theToSet : Boolean from Standard) is static; |
| 223 | ---Level: Internal |
| 224 | ---Purpose: If <theToSet> is Standard_True then <me> is infinite and |
| 225 | -- the MinMaxValues method method return : |
| 226 | -- theXMin = theYMin = theZMin = RealFirst(). |
| 227 | -- theXMax = theYMax = theZMax = RealLast(). |
| 228 | -- By default, <me> is not infinite but empty. |
| 229 | ---Category: Methods to modify the class definition |
| 230 | |
| 231 | SetDisplayPriority ( me : mutable; |
| 232 | Priority : Integer from Standard ) |
| 233 | ---Level: Public |
| 234 | ---Purpose: Modifies the order of displaying the structure. |
| 235 | -- Values are between 0 and 10. |
| 236 | -- Structures are drawn according to their display priorities |
| 237 | -- in ascending order. |
| 238 | -- A structure of priority 10 is displayed the last and appears over the others. |
| 239 | -- The default value is 5. |
| 240 | -- Category: Methods to modify the class definition |
| 241 | -- Warning: If <me> is displayed then the SetDisplayPriority |
| 242 | -- method erase <me> and display <me> with the |
| 243 | -- new priority. |
| 244 | -- Raises PriorityDefinitionError if <Priority> is |
| 245 | -- greater than 10 or a negative value. |
| 246 | raises PriorityDefinitionError from Graphic3d is static; |
| 247 | |
| 248 | ResetDisplayPriority ( me : mutable) |
| 249 | is static; |
| 250 | ---Level: Public |
| 251 | ---Purpose: Reset the current priority of the structure to the |
| 252 | -- previous priority. |
| 253 | -- Category: Methods to modify the class definition |
| 254 | -- Warning: If <me> is displayed then the SetDisplayPriority |
| 255 | -- method erase <me> and display <me> with the |
| 256 | -- previous priority. |
| 257 | |
| 258 | SetZLayer ( me : mutable; |
| 259 | theLayerId : Integer from Standard ) |
| 260 | is static; |
| 261 | ---Purpose: Set Z layer ID for the structure. The Z layer mechanism |
| 262 | -- allows to display structures presented in higher layers in overlay |
| 263 | -- of structures in lower layers by switching off z buffer depth |
| 264 | -- test between layers |
| 265 | |
| 266 | GetZLayer ( me ) |
| 267 | returns Integer from Standard is static; |
| 268 | ---Purpose: Get Z layer ID of displayed structure. The method |
| 269 | -- returns -1 if the structure has no ID (deleted from graphic driver). |
| 270 | |
| 271 | SetClipPlanes (me : mutable; thePlanes : SequenceOfHClipPlane from Graphic3d) is static; |
| 272 | ---Purpose: Changes a sequence of clip planes slicing the structure on rendering. |
| 273 | -- @param thePlanes [in] the set of clip planes. |
| 274 | |
| 275 | GetClipPlanes (me) returns SequenceOfHClipPlane from Graphic3d; |
| 276 | ---C++: return const& |
| 277 | ---Purpose: Get clip planes slicing the structure on rendering. |
| 278 | -- @return set of clip planes. |
| 279 | |
| 280 | SetPick ( me : mutable; |
| 281 | AValue : Boolean from Standard ) |
| 282 | is static; |
| 283 | ---Level: Public |
| 284 | ---Purpose: Modifies the detectability indicator to Standard_True |
| 285 | -- or Standard_False for the structure <me>. |
| 286 | -- The default value at the definition of <me> is |
| 287 | -- Standard_True. |
| 288 | ---Category: Methods to modify the class definition |
| 289 | |
| 290 | SetPrimitivesAspect ( me : mutable; |
| 291 | CTX : AspectLine3d from Graphic3d ) |
| 292 | is static; |
| 293 | ---Level: Public |
| 294 | ---Purpose: Modifies the default attributes for lines |
| 295 | -- in the structure <me>. |
| 296 | ---Category: Methods to modify the class definition |
| 297 | |
| 298 | SetPrimitivesAspect ( me : mutable; |
| 299 | CTX : AspectFillArea3d from Graphic3d ) |
| 300 | is static; |
| 301 | ---Level: Public |
| 302 | ---Purpose: Modifies the default attributes for faces |
| 303 | -- in the structure <me>. |
| 304 | ---Category: Methods to modify the class definition |
| 305 | |
| 306 | SetPrimitivesAspect ( me : mutable; |
| 307 | CTX : AspectText3d from Graphic3d ) |
| 308 | is static; |
| 309 | ---Level: Public |
| 310 | ---Purpose: Modifies the default attributes for text |
| 311 | -- in the structure <me>. |
| 312 | ---Category: Methods to modify the class definition |
| 313 | |
| 314 | SetPrimitivesAspect ( me : mutable; |
| 315 | CTX : AspectMarker3d from Graphic3d ) |
| 316 | is static; |
| 317 | ---Level: Public |
| 318 | ---Purpose: Modifies the default attributes for markers |
| 319 | -- in the structure <me>. |
| 320 | ---Category: Methods to modify the class definition |
| 321 | |
| 322 | SetVisible ( me : mutable; |
| 323 | AValue : Boolean from Standard ) |
| 324 | is static; |
| 325 | ---Level: Public |
| 326 | ---Purpose: Modifies the visibility indicator to Standard_True or |
| 327 | -- Standard_False for the structure <me>. |
| 328 | -- The default value at the definition of <me> is |
| 329 | -- Standard_True. |
| 330 | ---Category: Methods to modify the class definition |
| 331 | |
| 332 | SetVisual ( me : mutable; |
| 333 | AVisual : TypeOfStructure from Graphic3d ) |
| 334 | is virtual; |
| 335 | ---Level: Public |
| 336 | ---Purpose: Modifies the visualisation mode for the structure <me>. |
| 337 | ---Warning: It is not possible to display a structure with |
| 338 | -- an incompatible display mode. |
| 339 | -- If the display mode is different from the current one, |
| 340 | -- the structure is erased. |
| 341 | -- |
| 342 | -- TOS_WIREFRAME for a wireframe visualisation |
| 343 | -- TOS_SHADING for a shaded visualisation |
| 344 | -- TOS_ALL for all visualisations |
| 345 | -- TOS_COMPUTED for a computed visualisation |
| 346 | -- The default value is TOS_ALL |
| 347 | -- |
| 348 | ---Category: Methods to modify the class definition |
| 349 | |
| 350 | SetZoomLimit ( me : mutable; |
| 351 | LimitInf, LimitSup : Real from Standard ) |
| 352 | ---Level: Internal |
| 353 | ---Purpose: Modifies the minimum and maximum zoom coefficients |
| 354 | -- for the structure <me>. |
| 355 | -- The default value at the definition of <me> is unlimited. |
| 356 | -- Category: Methods to modify the class definition |
| 357 | -- Warning: Raises StructureDefinitionError if <LimitInf> is |
| 358 | -- greater than <LimitSup> or if <LimitInf> or |
| 359 | -- <LimitSup> is a negative value. |
| 360 | raises StructureDefinitionError from Graphic3d is static; |
| 361 | |
| 362 | UnHighlight ( me : mutable ) |
| 363 | is static; |
| 364 | ---Level: Public |
| 365 | ---Purpose: Suppresses the highlight for the structure <me> |
| 366 | -- in all the views of the visualiser. |
| 367 | ---Category: Methods to modify the class definition |
| 368 | |
| 369 | ---------------------------- |
| 370 | -- Category: Compute methods |
| 371 | ---------------------------- |
| 372 | |
| 373 | Compute (me: mutable) |
| 374 | is virtual; |
| 375 | ---Level: Advanced |
| 376 | ---Category: Methods to modify the class definition |
| 377 | |
| 378 | Compute ( me : mutable; |
| 379 | aProjector : DataStructureManager from Graphic3d ) |
| 380 | returns Structure from Graphic3d is virtual; |
| 381 | ---Level: Advanced |
| 382 | ---Purpose: Returns the new Structure defined for the new visualization |
| 383 | ---Category: Methods to modify the class definition |
| 384 | |
| 385 | Compute ( me : mutable; |
| 386 | aProjector : DataStructureManager from Graphic3d; |
| 387 | AMatrix : Array2OfReal from TColStd ) |
| 388 | returns Structure from Graphic3d is virtual; |
| 389 | ---Level: Advanced |
| 390 | ---Purpose: Returns the new Structure defined for the new visualization |
| 391 | ---Category: Methods to modify the class definition |
| 392 | |
| 393 | Compute ( me : mutable; |
| 394 | aProjector : DataStructureManager from Graphic3d; |
| 395 | aStructure : in out Structure from Graphic3d ) |
| 396 | is virtual; |
| 397 | ---Level: Advanced |
| 398 | ---Purpose: Returns the new Structure defined for the new visualization |
| 399 | ---Category: Methods to modify the class definition |
| 400 | |
| 401 | Compute ( me : mutable; |
| 402 | aProjector : DataStructureManager from Graphic3d; |
| 403 | AMatrix : Array2OfReal from TColStd; |
| 404 | aStructure : in out Structure from Graphic3d ) |
| 405 | is virtual; |
| 406 | ---Level: Advanced |
| 407 | ---Purpose: Returns the new Structure defined for the new visualization |
| 408 | ---Category: Methods to modify the class definition |
| 409 | |
| 410 | ReCompute ( me : mutable ); |
| 411 | ---Level: Advanced |
| 412 | ---Purpose: Forces a new construction of the structure <me> |
| 413 | -- if <me> is displayed and TOS_COMPUTED. |
| 414 | ---Category: Methods to modify the class definition |
| 415 | |
| 416 | ReCompute ( me : mutable; |
| 417 | aProjector : DataStructureManager from Graphic3d ); |
| 418 | ---Level: Advanced |
| 419 | ---Purpose: Forces a new construction of the structure <me> |
| 420 | -- if <me> is displayed in <aProjetor> and TOS_COMPUTED. |
| 421 | ---Category: Methods to modify the class definition |
| 422 | |
| 423 | ---------------------------- |
| 424 | -- Category: Inquire methods |
| 425 | ---------------------------- |
| 426 | |
| 427 | ContainsFacet ( me ) |
| 428 | returns Boolean from Standard |
| 429 | is static; |
| 430 | ---Level: Public |
| 431 | ---Purpose: Returns Standard_True if the structure <me> contains |
| 432 | -- Polygons, Triangles or Quadrangles. |
| 433 | ---Category: Inquire methods |
| 434 | |
| 435 | |
| 436 | FillArea3dAspect ( me ) |
| 437 | returns AspectFillArea3d from Graphic3d |
| 438 | is static; |
| 439 | ---Level: Public |
| 440 | ---Purpose: Returns the values of the current default attributes. |
| 441 | ---Category: Inquire methods |
| 442 | |
| 443 | Groups ( me ) |
| 444 | returns SequenceOfGroup from Graphic3d |
| 445 | is static; |
| 446 | ---C++: return const & |
| 447 | ---Level: Internal |
| 448 | ---Purpose: Returns the groups sequence included in the structure <me> (internal storage). |
| 449 | ---Category: Inquire methods |
| 450 | |
| 451 | NumberOfGroups ( me ) |
| 452 | returns Integer from Standard |
| 453 | is static; |
| 454 | ---Level: Public |
| 455 | ---Purpose: Returns the current number of groups in the |
| 456 | -- structure <me>. |
| 457 | ---Category: Inquire methods |
| 458 | |
| 459 | NewGroup ( me : mutable ) returns Group from Graphic3d |
| 460 | is static; |
| 461 | ---Level: Public |
| 462 | ---Purpose: Append new group to this structure. |
| 463 | |
| 464 | Remove ( me : mutable; |
| 465 | theGroup : Group from Graphic3d ) |
| 466 | is static private; |
| 467 | ---Purpose: Suppress in the structure <me>, the group theGroup. |
| 468 | -- It will be erased at the next screen update. |
| 469 | |
| 470 | HighlightColor ( me ) |
| 471 | returns Color from Quantity |
| 472 | is static; |
| 473 | ---C++: return const& |
| 474 | ---Level: Public |
| 475 | ---Purpose: Returns the highlight color for the Highlight method |
| 476 | -- with the highlight method TOHM_COLOR or TOHM_BOUNDBOX. |
| 477 | ---Category: Inquire methods |
| 478 | |
| 479 | IsDeleted ( me ) |
| 480 | returns Boolean from Standard |
| 481 | is static; |
| 482 | ---Level: Public |
| 483 | ---Purpose: Returns Standard_True if the structure <me> is deleted. |
| 484 | -- <me> is deleted after the call Remove (me). |
| 485 | ---Category: Inquire methods |
| 486 | |
| 487 | IsDisplayed ( me ) |
| 488 | returns Boolean from Standard |
| 489 | is virtual; |
| 490 | ---Level: Public |
| 491 | ---Purpose: Returns the display indicator for the structure <me>. |
| 492 | ---Category: Inquire methods |
| 493 | |
| 494 | IsEmpty ( me ) |
| 495 | returns Boolean from Standard |
| 496 | is static; |
| 497 | ---Level: Public |
| 498 | ---Purpose: Returns Standard_True if the structure <me> is empty. |
| 499 | -- Warning: A structure is empty if : |
| 500 | -- it do not have group or all the groups are empties |
| 501 | -- and it do not have descendant or all the descendants |
| 502 | -- are empties. |
| 503 | ---Category: Inquire methods |
| 504 | |
| 505 | IsInfinite ( me ) |
| 506 | returns Boolean from Standard |
| 507 | is static; |
| 508 | ---Level: Internal |
| 509 | ---Purpose: Returns Standard_True if the structure <me> is infinite. |
| 510 | ---Category: Inquire methods |
| 511 | |
| 512 | IsHighlighted ( me ) |
| 513 | returns Boolean from Standard |
| 514 | is virtual; |
| 515 | ---Level: Public |
| 516 | ---Purpose: Returns the highlight indicator for the structure <me>. |
| 517 | ---Category: Inquire methods |
| 518 | |
| 519 | IsSelectable ( me ) |
| 520 | returns Boolean from Standard |
| 521 | is static; |
| 522 | ---Level: Public |
| 523 | ---Purpose: Returns the detectability indicator for the structure <me>. |
| 524 | ---Category: Inquire methods |
| 525 | |
| 526 | IsRotated ( me ) |
| 527 | returns Boolean from Standard |
| 528 | is static; |
| 529 | ---Level: Public |
| 530 | ---Purpose: Returns Standard_True if the structure <me> is rotated. |
| 531 | -- <=> The transformation != Identity, != Scale, != Translation. |
| 532 | ---Category: Inquire methods |
| 533 | |
| 534 | IsTransformed ( me ) |
| 535 | returns Boolean from Standard |
| 536 | is static; |
| 537 | ---Level: Public |
| 538 | ---Purpose: Returns Standard_True if the structure <me> is transformed. |
| 539 | -- <=> The transformation != Identity. |
| 540 | ---Category: Inquire methods |
| 541 | |
| 542 | IsVisible ( me ) |
| 543 | returns Boolean from Standard |
| 544 | is static; |
| 545 | ---Level: Public |
| 546 | ---Purpose: Returns the visibility indicator for the structure <me>. |
| 547 | ---Category: Inquire methods |
| 548 | |
| 549 | Line3dAspect ( me ) |
| 550 | returns AspectLine3d from Graphic3d |
| 551 | is static; |
| 552 | ---Level: Public |
| 553 | ---Purpose: Returns the values of the current default attributes. |
| 554 | ---Category: Inquire methods |
| 555 | |
| 556 | Marker3dAspect ( me ) |
| 557 | returns AspectMarker3d from Graphic3d |
| 558 | is static; |
| 559 | ---Purpose: Returns the current group of graphic attributes used |
| 560 | -- for 3d marker primitives. |
| 561 | |
| 562 | MinMaxValues (me; |
| 563 | theXMin, theYMin, theZMin : out Real from Standard; |
| 564 | theXMax, theYMax, theZMax : out Real from Standard; |
| 565 | theToIgnoreInfiniteFlag : Boolean from Standard = Standard_False) |
| 566 | is static; |
| 567 | ---Level: Public |
| 568 | ---Purpose: Returns the coordinates of the boundary box of the structure <me>. |
| 569 | -- If <theToIgnoreInfiniteFlag> is TRUE, the method returns actual graphical |
| 570 | -- boundaries of the Graphic3d_Group components. Otherwise, the |
| 571 | -- method returns boundaries taking into account infinite state |
| 572 | -- of the structure. This approach generally used for application |
| 573 | -- specific fit operation (e.g. fitting the model into screen, |
| 574 | -- not taking into accout infinite helper elements). |
| 575 | -- Warning: If the structure <me> is empty or infinite then : |
| 576 | -- theXMin = theYMin = theZMin = RealFirst (). |
| 577 | -- theXMax = theYMax = theZMax = RealLast (). |
| 578 | ---Category: Inquire methods |
| 579 | |
| 580 | PrimitivesAspect ( me; |
| 581 | CTXL : out AspectLine3d from Graphic3d; |
| 582 | CTXT : out AspectText3d from Graphic3d; |
| 583 | CTXM : out AspectMarker3d from Graphic3d; |
| 584 | CTXF : out AspectFillArea3d from Graphic3d ) |
| 585 | is static; |
| 586 | ---Level: Public |
| 587 | ---Purpose: Returns the current values of the default attributes. |
| 588 | ---Category: Inquire methods |
| 589 | |
| 590 | Text3dAspect ( me ) |
| 591 | returns AspectText3d from Graphic3d |
| 592 | is static; |
| 593 | ---Level: Public |
| 594 | ---Purpose: Returns the values of the current default attributes. |
| 595 | ---Category: Inquire methods |
| 596 | |
| 597 | Visual ( me ) |
| 598 | returns TypeOfStructure from Graphic3d |
| 599 | is static; |
| 600 | ---Level: Public |
| 601 | ---Purpose: Returns the visualisation mode for the structure <me>. |
| 602 | ---Category: Inquire methods |
| 603 | |
| 604 | ---------------------------------------------------- |
| 605 | -- Category: Methods to manage the structure network |
| 606 | ---------------------------------------------------- |
| 607 | |
| 608 | ----------------------------------------------------- |
| 609 | -- Summary of Structure Hierarchies -- |
| 610 | -- -- |
| 611 | -- The root is the top of a structure hierarchy -- |
| 612 | -- or structure network. -- |
| 613 | -- -- |
| 614 | -- The attributes of a parent structure are passed -- |
| 615 | -- passed to its descendants. -- |
| 616 | -- -- |
| 617 | -- The attributes of the descendant structures -- |
| 618 | -- don't affect the parent. -- |
| 619 | -- -- |
| 620 | -- Recursive structure networks are not supported. -- |
| 621 | ----------------------------------------------------- |
| 622 | |
| 623 | AcceptConnection ( myclass; |
| 624 | AStructure1 : Structure from Graphic3d; |
| 625 | AStructure2 : Structure from Graphic3d; |
| 626 | AType : TypeOfConnection from Graphic3d ) |
| 627 | returns Boolean from Standard; |
| 628 | ---Level: Internal |
| 629 | ---Purpose: Returns Standard_True if the connection is possible between |
| 630 | -- <AStructure1> and <AStructure2> without a creation |
| 631 | -- of a cycle. |
| 632 | -- |
| 633 | -- It's not possible to call the method |
| 634 | -- AStructure1->Connect (AStructure2, TypeOfConnection) |
| 635 | -- if |
| 636 | -- - the set of all ancestors of <AStructure1> contains |
| 637 | -- <AStructure1> and if the |
| 638 | -- TypeOfConnection == TOC_DESCENDANT |
| 639 | -- - the set of all descendants of <AStructure1> contains |
| 640 | -- <AStructure2> and if the |
| 641 | -- TypeOfConnection == TOC_ANCESTOR |
| 642 | ---Category: Methods to manage the structure network |
| 643 | |
| 644 | Ancestors ( me; SG: in out MapOfStructure from Graphic3d ) |
| 645 | is static; |
| 646 | ---Level: Internal |
| 647 | ---Purpose: Returns the group of structures to which <me> is connected. |
| 648 | ---Category: Methods to manage the structure network |
| 649 | |
| 650 | Connect ( me : mutable; |
| 651 | AStructure : Structure from Graphic3d; |
| 652 | AType : TypeOfConnection from Graphic3d; |
| 653 | WithCheck : Boolean from Standard = Standard_False ); |
| 654 | ---Level: Public |
| 655 | ---Purpose: If Atype is TOC_DESCENDANT then add <AStructure> |
| 656 | -- as a child structure of <me>. |
| 657 | -- If Atype is TOC_ANCESTOR then add <AStructure> |
| 658 | -- as a parent structure of <me>. |
| 659 | -- The connection propagates Display, Highlight, Erase, |
| 660 | -- Remove, and stacks the transformations. |
| 661 | -- No connection if the graph of the structures |
| 662 | -- contains a cycle and <WithCheck> is Standard_True; |
| 663 | ---Category: Methods to manage the structure network |
| 664 | |
| 665 | Descendants ( me; SG : in out MapOfStructure from Graphic3d ) |
| 666 | is static; |
| 667 | ---Level: Internal |
| 668 | ---Purpose: Returns the group of structures connected to <me>. |
| 669 | ---Category: Methods to manage the structure network |
| 670 | |
| 671 | Disconnect ( me : mutable; |
| 672 | AStructure : Structure from Graphic3d ) |
| 673 | is static; |
| 674 | ---Level: Public |
| 675 | ---Purpose: Suppress the connection between <AStructure> and <me>. |
| 676 | ---Category: Methods to manage the structure network |
| 677 | |
| 678 | DisconnectAll ( me : mutable; |
| 679 | AType : TypeOfConnection from Graphic3d ) |
| 680 | is static; |
| 681 | ---Level: Public |
| 682 | ---Purpose: If Atype is TOC_DESCENDANT then suppress all |
| 683 | -- the connections with the child structures of <me>. |
| 684 | -- If Atype is TOC_ANCESTOR then suppress all |
| 685 | -- the connections with the parent structures of <me>. |
| 686 | ---Category: Methods to manage the structure network |
| 687 | |
| 688 | Network ( myclass; |
| 689 | AStructure : Structure from Graphic3d; |
| 690 | AType : TypeOfConnection from Graphic3d; |
| 691 | ASet : in out MapOfStructure from Graphic3d ); |
| 692 | ---Level: Internal |
| 693 | ---Purpose: Returns <ASet> the group of structures : |
| 694 | -- - directly or indirectly connected to <AStructure> if the |
| 695 | -- TypeOfConnection == TOC_DESCENDANT |
| 696 | -- - to which <AStructure> is directly or indirectly connected |
| 697 | -- if the TypeOfConnection == TOC_ANCESTOR |
| 698 | ---Category: Methods to manage the structure network |
| 699 | |
| 700 | SetOwner ( me : mutable; |
| 701 | Owner : Address from Standard ) |
| 702 | is static; |
| 703 | ---Level: Advanced |
| 704 | |
| 705 | Owner ( me ) |
| 706 | returns Address from Standard |
| 707 | is static; |
| 708 | ---Level: Advanced |
| 709 | |
| 710 | SetHLRValidation ( me : mutable; |
| 711 | AFlag : Boolean from Standard ) |
| 712 | is static; |
| 713 | ---Level: Advanced |
| 714 | |
| 715 | HLRValidation ( me ) |
| 716 | returns Boolean from Standard |
| 717 | is static; |
| 718 | ---Level: Advanced |
| 719 | |
| 720 | ----------------------------------------------------------- |
| 721 | -- Category: Methods to manage the structure transformation |
| 722 | ----------------------------------------------------------- |
| 723 | |
| 724 | Composition ( me ) |
| 725 | returns TypeOfComposition from Graphic3d |
| 726 | is static; |
| 727 | ---Level: Public |
| 728 | ---Purpose: Returns the type of composition applied to matrices |
| 729 | -- of transformation of <me>. |
| 730 | ---Category: Methods to manage the structure transformation |
| 731 | |
| 732 | SetTransform ( me : mutable; |
| 733 | AMatrix : Array2OfReal from TColStd; |
| 734 | AType : TypeOfComposition from Graphic3d ) |
| 735 | ---Level: Public |
| 736 | ---Purpose: Modifies the current local modelling transformation |
| 737 | -- in the structure <me>. |
| 738 | -- |
| 739 | -- It is defined as a 4*4 real matrix. |
| 740 | -- |
| 741 | -- ------------------- |
| 742 | -- | a11 a12 a13 t1 | |
| 743 | -- | a21 a22 a23 t2 | |
| 744 | -- | a31 a32 a33 t3 | |
| 745 | -- | 0 0 0 1 | |
| 746 | -- ------------------- |
| 747 | -- |
| 748 | -- TypeOfComposition : TOC_REPLACE |
| 749 | -- TOC_POSTCONCATENATE |
| 750 | -- |
| 751 | -- Then the modified Local Modelling Transformation is composed |
| 752 | -- with the current Global Modelling Transformation to create a |
| 753 | -- new Composite Modelling Transformation. |
| 754 | -- |
| 755 | -- The compose type specifies the role of the current local |
| 756 | -- modelling transformation (L) in composing the new value for |
| 757 | -- the current local modelling transformation (L'), which is |
| 758 | -- then combined with the current global modelling transforma- |
| 759 | -- tion (G) to calculate the new composite modelling transfor- |
| 760 | -- mation (C). |
| 761 | -- |
| 762 | -- TOC_REPLACE |
| 763 | -- The transformation matrix (T) replaces the value of |
| 764 | -- current local modelling transformation (L). |
| 765 | -- |
| 766 | -- L' <- T |
| 767 | -- C <- G x L' |
| 768 | -- |
| 769 | -- TOC_POSTCONCATENATE |
| 770 | -- The current local modelling transformation (L) is multiplied |
| 771 | -- by the transformation matrix (T): |
| 772 | -- |
| 773 | -- L' <- T x L |
| 774 | -- C <- G x L' |
| 775 | -- |
| 776 | -- Category: Methods to manage the structure transformation |
| 777 | -- Warning: Raises TransformError if the matrix is not a 4x4 matrix. |
| 778 | raises TransformError from Graphic3d is static; |
| 779 | |
| 780 | -- Transform ( me : mutable; |
| 781 | Transform ( me; |
| 782 | AMatrix : in out Array2OfReal from TColStd ) |
| 783 | is static; |
| 784 | ---Level: Public |
| 785 | ---Purpose: Returns the transformation associated with |
| 786 | -- the structure <me>. |
| 787 | ---Category: Methods to manage the structure transformation |
| 788 | |
| 789 | SetTransformPersistence( me : mutable; |
| 790 | AFlag : TransModeFlags from Graphic3d; |
| 791 | APoint : Pnt from gp ) |
| 792 | ---Level: Public |
| 793 | ---Purpose: Modifies the current modelling transform persistence (pan, zoom or rotate) |
| 794 | is static; |
| 795 | |
| 796 | SetTransformPersistence( me : mutable; |
| 797 | AFlag : TransModeFlags from Graphic3d ) |
| 798 | -- Calls previous method with point (0,0,0) |
| 799 | is static; |
| 800 | |
| 801 | |
| 802 | TransformPersistenceMode( me ) |
| 803 | returns TransModeFlags from Graphic3d |
| 804 | ---Level: Public |
| 805 | ---Purpose: Get the current modelling transform persistence (pan, zoom or rotate) |
| 806 | is static; |
| 807 | |
| 808 | TransformPersistencePoint( me ) |
| 809 | returns Pnt from gp |
| 810 | ---Level: Public |
| 811 | ---Purpose: Get the current point of relative modelling transform persistence |
| 812 | is static; |
| 813 | |
| 814 | ---------------------------- |
| 815 | -- Category: Private methods |
| 816 | ---------------------------- |
| 817 | |
| 818 | ComputeVisual ( me ) |
| 819 | returns TypeOfStructure from Graphic3d |
| 820 | is static; |
| 821 | ---Level: Internal |
| 822 | ---Category: Private methods |
| 823 | |
| 824 | GroupsWithFacet ( me : mutable; |
| 825 | ADelta : Integer from Standard ) |
| 826 | is static private; |
| 827 | ---Level: Internal |
| 828 | ---Purpose: Manages the number of groups in the structure <me> |
| 829 | -- which contains facet. |
| 830 | -- Polygons, Triangles or Quadrangles. |
| 831 | -- <ADelta> = +1 or -1 |
| 832 | ---Category: Private methods |
| 833 | |
| 834 | GraphicClear ( me : mutable; |
| 835 | WithDestruction : Boolean from Standard ) |
| 836 | is static; |
| 837 | ---Level: Internal |
| 838 | ---Purpose: Clears the structure <me>. |
| 839 | ---Category: Private methods |
| 840 | |
| 841 | GraphicConnect ( me : mutable; |
| 842 | ADaughter : Structure from Graphic3d ) |
| 843 | is static; |
| 844 | ---Level: Internal |
| 845 | ---Purpose: |
| 846 | ---Category: Private methods |
| 847 | |
| 848 | GraphicDisconnect ( me : mutable; |
| 849 | ADaughter : Structure from Graphic3d ) |
| 850 | is static; |
| 851 | ---Level: Internal |
| 852 | ---Purpose: |
| 853 | ---Category: Private methods |
| 854 | |
| 855 | GraphicHighlight ( me : mutable; |
| 856 | Method : TypeOfHighlightMethod from Aspect ) |
| 857 | is static; |
| 858 | ---Level: Internal |
| 859 | ---Purpose: Highlights the structure <me>. |
| 860 | ---Category: Private methods |
| 861 | |
| 862 | GraphicTransform ( me : mutable; |
| 863 | AMatrix : Array2OfReal from TColStd ) |
| 864 | is static; |
| 865 | ---Level: Internal |
| 866 | ---Purpose: |
| 867 | ---Category: Private methods |
| 868 | |
| 869 | GraphicUnHighlight ( me : mutable ) |
| 870 | is static; |
| 871 | ---Level: Internal |
| 872 | ---Purpose: Suppress the highlight for the structure <me>. |
| 873 | ---Category: Private methods |
| 874 | |
| 875 | Identification ( me ) |
| 876 | returns Integer from Standard |
| 877 | is static; |
| 878 | ---Level: Internal |
| 879 | ---Purpose: Returns the identification number of the structure <me>. |
| 880 | ---Category: Private methods |
| 881 | |
| 882 | MinMaxCoord (me; |
| 883 | theXMin, theYMin, theZMin : out Real from Standard; |
| 884 | theXMax, theYMax, theZMax : out Real from Standard) |
| 885 | is static private; |
| 886 | ---Level: Internal |
| 887 | ---Purpose: Returns the extreme coordinates found in the structure <me>. |
| 888 | -- Warning: If the structure <me> is empty or infinite then : |
| 889 | -- theXMin = theYMin = theZMin = RealFirst(). |
| 890 | -- theXMax = theYMax = theZMax = RealLast(). |
| 891 | ---Category: Private methods |
| 892 | |
| 893 | MinMaxCoordWithDescendants (me; |
| 894 | theXMin, theYMin, theZMin : out Real from Standard; |
| 895 | theXMax, theYMax, theZMax : out Real from Standard) |
| 896 | is static private; |
| 897 | ---Level: Internal |
| 898 | ---Purpose: Returns the extreme coordinates found in the structure <me> |
| 899 | -- and its descendants with transformation applied. |
| 900 | -- Warning: If the structure <me> is empty or infinite then : |
| 901 | -- theXMin = theYMin = theZMin = RealFirst(). |
| 902 | -- theXMax = theYMax = theZMax = RealLast(). |
| 903 | ---Category: Private methods |
| 904 | |
| 905 | Plot ( me : mutable; |
| 906 | aPlotter : Plotter from Graphic3d ) |
| 907 | is virtual; |
| 908 | ---Level: Internal |
| 909 | ---Category: Private methods |
| 910 | |
| 911 | PrintNetwork ( myclass; |
| 912 | AStructure : Structure from Graphic3d; |
| 913 | AType : TypeOfConnection from Graphic3d ); |
| 914 | ---Level: Internal |
| 915 | ---Purpose: Prints informations about the network associated |
| 916 | -- with the structure <AStructure>. |
| 917 | ---Category: Private methods |
| 918 | |
| 919 | Remove ( me : mutable; |
| 920 | APtr : Address from Standard; |
| 921 | AType : TypeOfConnection from Graphic3d ) |
| 922 | is static; |
| 923 | ---Level: Internal |
| 924 | ---Purpose: Suppress the adress <APtr> in the list |
| 925 | -- of descendants or in the list of ancestors. |
| 926 | ---Category: Private methods |
| 927 | |
| 928 | SetComputeVisual ( me : mutable; |
| 929 | AVisual : TypeOfStructure from Graphic3d ) |
| 930 | is static; |
| 931 | ---Level: Internal |
| 932 | ---Category: Private methods |
| 933 | |
| 934 | StructureManager ( me ) |
| 935 | returns StructureManager from Graphic3d |
| 936 | is static private; |
| 937 | ---Level: Internal |
| 938 | ---Purpose: Returns the manager to which <me> is associated. |
| 939 | ---Category: Private methods |
| 940 | |
| 941 | Transforms ( myclass; |
| 942 | ATrsf : Array2OfReal from TColStd; |
| 943 | X, Y, Z : Real from Standard; |
| 944 | NewX, NewY, NewZ : out Real from Standard ); |
| 945 | ---Level: Internal |
| 946 | ---Purpose: Transforms <X>, <Y>, <Z> with the transformation <ATrsf>. |
| 947 | ---Category: Private methods |
| 948 | |
| 949 | Transforms ( myclass; |
| 950 | ATrsf : Array2OfReal from TColStd; |
| 951 | Coord : Vector from Graphic3d ) |
| 952 | returns Vector from Graphic3d; |
| 953 | ---Level: Internal |
| 954 | ---Purpose: Transforms <Coord> with the transformation <ATrsf>. |
| 955 | ---Category: Private methods |
| 956 | |
| 957 | Transforms ( myclass; |
| 958 | ATrsf : Array2OfReal from TColStd; |
| 959 | Coord : Vertex from Graphic3d ) |
| 960 | returns Vertex from Graphic3d; |
| 961 | ---Level: Internal |
| 962 | ---Purpose: Transforms <Coord> with the transformation <ATrsf>. |
| 963 | ---Category: Private methods |
| 964 | |
| 965 | TransformBoundaries (myclass; |
| 966 | theTrsf : Array2OfReal from TColStd; |
| 967 | theXMin, theYMin, theZMin : in out Real from Standard; |
| 968 | theXMax, theYMax, theZMax : in out Real from Standard) |
| 969 | is protected; |
| 970 | ---Level: Internal |
| 971 | ---Purpose: Transforms boundaries with <theTrsf> transformation. |
| 972 | ---Category: Private methods |
| 973 | |
| 974 | Update ( me ) |
| 975 | is static private; |
| 976 | ---Level: Internal |
| 977 | ---Purpose: Calls the Update method of the StructureManager which |
| 978 | -- contains the Structure <me>. |
| 979 | ---Category: Private methods |
| 980 | |
| 981 | UpdateStructure ( me : mutable; |
| 982 | CTXL : AspectLine3d from Graphic3d; |
| 983 | CTXT : AspectText3d from Graphic3d; |
| 984 | CTXM : AspectMarker3d from Graphic3d; |
| 985 | CTXF : AspectFillArea3d from Graphic3d ) |
| 986 | is static private; |
| 987 | ---Level: Internal |
| 988 | ---Purpose: Updates the c structure associated to <me>. |
| 989 | ---Category: Private methods |
| 990 | |
| 991 | CStructure (me) |
| 992 | returns CStructure_Handle from Graphic3d |
| 993 | is static; |
| 994 | ---Purpose: Returns the low-level structure |
| 995 | ---C++: return const & |
| 996 | ---C++: inline |
| 997 | |
| 998 | fields |
| 999 | |
| 1000 | -- |
| 1001 | -- Class : Graphic3d_Structure |
| 1002 | -- |
| 1003 | -- Purpose : Declaration of variables specific to |
| 1004 | -- graphic structures. |
| 1005 | -- Reminder : A structure is defined in a manager. |
| 1006 | -- It is a sequence of groups of primitives. |
| 1007 | -- |
| 1008 | |
| 1009 | -- the associated low-level structure |
| 1010 | myCStructure : CStructure_Handle from Graphic3d; |
| 1011 | |
| 1012 | -- the structures to which the structure is attached |
| 1013 | myAncestors : SequenceOfAddress from TColStd; |
| 1014 | |
| 1015 | -- the structures attached to the structure |
| 1016 | myDescendants : SequenceOfAddress from TColStd; |
| 1017 | |
| 1018 | -- the highlight method of the structure |
| 1019 | myHighlightColor : Color from Quantity; |
| 1020 | myHighlightMethod : TypeOfHighlightMethod from Aspect; |
| 1021 | |
| 1022 | -- the manager accepting the structure |
| 1023 | myStructureManager : StructureManagerPtr from Graphic3d is protected; |
| 1024 | myFirstStructureManager : StructureManagerPtr from Graphic3d is protected; |
| 1025 | myOwner : Address from Standard; |
| 1026 | |
| 1027 | -- the type of visualisation accepted by the structure |
| 1028 | myVisual : TypeOfStructure from Graphic3d; |
| 1029 | myComputeVisual : TypeOfStructure from Graphic3d is protected; |
| 1030 | |
| 1031 | friends |
| 1032 | |
| 1033 | -- a lot of methods of Group use the methods of Structure |
| 1034 | class Group from Graphic3d |
| 1035 | |
| 1036 | end Structure; |