1 -- Created on: 1993-03-31
2 -- Created by: NW,JPB,CAL
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 -- Package : Graphic3d
18 -- Updated : Vendredi 2 Octobre 1992
19 -- Mercredi 31 Mars 1993
20 -- Mercredi 19 Janvier 1994
21 -- 1/08/97 ; PCT : Ajout texture mapping
22 -- 11/97 ; CAL : retrait de la dependance avec math
23 -- 11/97 ; CAL : retrait des DataStructure
24 -- 04/98 ; FGU : ajout champs 'TOR_EMISSION'
25 -- 16-09-98; BGN: (S3819) Ajout TypeOfTriedronEcho,
26 -- TypeOfTriedronPosition.
27 -- 22-09-98; BGN: S3989 (anciennement S3819): report
28 -- dans Aspect des TypeOfTriedron*
29 -- 26-03-99 : FMN ; Compatibilite ascendante:
30 -- Ajout des anciens noms de materiaux.
31 -- 09-04-99 : GG ; Compatibilite ascendante:
32 -- NameOfPhysicalMaterial disparait
33 -- 23-11-99 : GG ; Add material name DEFAULT
34 -- 16-06-2000 : ATS : Study G005: class ArrayOfPrimitives
35 -- and derivated used for model presentation.
36 -- Required: enumeration TypeOfPrimitive;
37 -- imported PrimitiveArray; class PrimitiveList.
38 -- Thanks to Stephane ROUTELOUS
39 -- 20-01-2009 : ABD Integration support of system fonts (using FTGL and FreeType)
40 -- Objective : Specifications definitives
46 ---Purpose: This package permits the creation of 3d graphic objects
48 -- These objects, called structures, are composed of groups of
49 -- primitives and attributes.
50 -- The group is the smallest editable element of a structure.
51 -- A structure can be displayed, erased, high-lighted.
52 -- A transformation can be applied to it.
53 -- Structures can be connected to form a tree of structures,
54 -- composed by transformations.
55 -- The visualiser permits global manipulation of structures.
57 ---Keywords: Structure, Group, Primitives, Line, Marker, Text,
58 -- FillAreas, Vertex, Vector, Material, Font, Shading
78 -----------------------
79 -- Category: Exceptions
80 -----------------------
82 exception AspectTextDefinitionError inherits OutOfRange;
83 ---Category: Exceptions
85 exception CycleError inherits DomainError;
86 ---Category: Exceptions
88 exception GroupDefinitionError inherits OutOfRange;
89 ---Category: Exceptions
91 exception InitialisationError inherits OutOfRange;
92 ---Category: Exceptions
94 exception MaterialDefinitionError inherits OutOfRange;
95 ---Category: Exceptions
97 exception PriorityDefinitionError inherits OutOfRange;
98 ---Category: Exceptions
100 exception StructureDefinitionError inherits OutOfRange;
101 ---Category: Exceptions
103 exception TransformError inherits OutOfRange;
104 ---Category: Exceptions
106 exception VectorError inherits OutOfRange;
107 ---Category: Exceptions
109 -------------------------
110 -- Category: Enumerations
111 -------------------------
113 enumeration NameOfMaterial is
114 NOM_BRASS, -- laiton (PHYSIC)
115 NOM_BRONZE, -- bronze (PHYSIC)
116 NOM_COPPER, -- cuivre (PHYSIC)
117 NOM_GOLD, -- or (PHYSIC)
119 NOM_PEWTER, -- etain (PHYSIC)
121 NOM_PLASTER, -- platre (GENERIC)
122 NOM_PLASTIC, -- plastic (GENERIC)
124 NOM_SILVER, -- argent (PHYSIC)
126 NOM_STEEL, -- acier (PHYSIC)
128 NOM_STONE, -- pierre (PHYSIC)
130 NOM_SHINY_PLASTIC, -- plastique brillant (GENERIC)
131 NOM_SATIN, -- satin (GENERIC)
132 NOM_METALIZED, -- metallise New (GENERIC)
133 NOM_NEON_GNC, -- neon New (GENERIC)
134 NOM_CHROME, -- chrome New (PHYSIC)
135 NOM_ALUMINIUM, -- aluminium New (PHYSIC)
136 NOM_OBSIDIAN, -- obsidian New (PHYSIC)
137 NOM_NEON_PHC, -- neon New (PHYSIC)
138 NOM_JADE, -- jade New (PHYSIC)
147 NOM_UserDefined -- owner material
149 ---Purpose: Types of aspect materials.
150 ---Category: Enumerations
152 enumeration TypeOfMaterial is MATERIAL_ASPECT, -- Materiel generique
153 MATERIAL_PHYSIC -- Materiel physique
155 ---Purpose: Types of materials specifies if a material can change color.
156 ---Category: Enumerations
158 enumeration NameOfTexture1D is NOT_1D_ELEVATION,
161 ---Purpose: Types of standard textures.
162 ---Category: Enumerations
165 enumeration NameOfTexture2D is NOT_2D_MATRA,
168 NOT_2D_BLUEWHITE_PAPER,
188 ---Purpose: Types of standard textures.
189 ---Category: Enumerations
192 enumeration NameOfTextureEnv is NOT_ENV_CLOUDS,
201 end NameOfTextureEnv;
202 ---Purpose: Types of standard textures.
203 ---Category: Enumerations
205 enumeration TypeOfTexture is TOT_1D,
208 ---Purpose: Type of the texture file format.
209 ---Category: Enumerations
211 enumeration TypeOfTextureMode is TOTM_OBJECT,
216 ---Purpose: Type of the texture projection.
217 ---Category: Enumerations
219 enumeration TypeOfTextureFilter is TOTF_NEAREST,
222 ---Purpose: Type of the texture filter.
223 -- Notice that for textures without mipmaps linear interpolation will be used instead of TOTF_BILINEAR and TOTF_TRILINEAR.
224 ---Category: Enumerations
226 enumeration LevelOfTextureAnisotropy is LOTA_OFF,
230 ---Purpose: Level of anisotropy filter.
231 -- Notice that actual quality depends on hardware capabilities!
232 ---Category: Enumerations
234 enumeration NameOfTexturePlane is NOTP_XY,
238 ---Purpose: Type of the texture projection plane for both S and T texture coordinate.
239 ---Category: Enumerations
241 enumeration TypeOfComposition is TOC_REPLACE,
243 end TypeOfComposition;
244 ---Purpose: To manage the transformation matrices of structures.
245 ---Category: Enumerations
247 enumeration TypeOfConnection is TOC_ANCESTOR,
249 end TypeOfConnection;
250 ---Purpose: To manage the connections between the structures.
251 ---Category: Enumerations
253 enumeration TypeOfPolygon is TOP_UNKNOWN,
258 ---Purpose: The type of polygon in a group in a structure.
259 ---Category: Enumerations
261 enumeration TypeOfPrimitive is TOP_UNDEFINED,
270 ---Purpose: The type of primitive in a group in a structure.
271 ---Category: Enumerations
273 enumeration TypeOfPrimitiveArray is TOPA_UNDEFINED,
281 TOPA_QUADRANGLESTRIPS,
283 end TypeOfPrimitiveArray;
284 ---Purpose: The type of primitive array in a group in a structure.
285 ---Category: Enumerations
287 enumeration TypeOfReflection is TOR_AMBIENT,
291 end TypeOfReflection;
292 ---Purpose: Nature of the reflection of a material.
293 ---Category: Enumerations
295 enumeration TypeOfStructure is TOS_WIREFRAME,
300 ---Purpose: Structural attribute indicating if it can be displayed
301 -- in wireframe, shadow mode, or both.
302 ---Category: Enumerations
304 enumeration TextPath is TP_UP,
309 ---Purpose: Direction in which text is displayed.
310 ---Category: Enumerations
312 enumeration HorizontalTextAlignment is HTA_LEFT,
315 end HorizontalTextAlignment;
316 ---Purpose: Defines the horizontal position of the text
317 -- relative to its anchor.
318 ---Category: Enumerations
320 enumeration VerticalTextAlignment is VTA_BOTTOM,
323 end VerticalTextAlignment;
324 ---Purpose: Defines the vertical position of the text
325 -- relative to its anchor.
326 ---Category: Enumerations
328 enumeration GroupAspect is ASPECT_LINE,
333 ---Purpose: Identifies primitives aspects defined per group.
334 -- - ASPECT_LINE: aspect for line primitives;
335 -- - ASPECT_TEXT: aspect for text primitives;
336 -- - ASPECT_MARKER: aspect for marker primitives;
337 -- - ASPECT_FILL_AREA: aspect for face primitives.
339 enumeration RenderingMode is
340 RM_RASTERIZATION, RM_RAYTRACING
342 ---Purpose: Describes rendering modes.
343 -- - RM_RASTERIZATION: enables OpenGL rasterization mode;
344 -- - RM_RAYTRACING: enables GPU ray-tracing mode.
346 enumeration TypeOfBackground is
347 TOB_NONE, TOB_GRADIENT, TOB_TEXTURE
348 end TypeOfBackground;
349 ---Purpose: Describes type of view background.
351 ---------------------------
352 -- Category: Imported types
353 ---------------------------
356 ---Purpose: Redefines BVH_Box<Standard_ShortReal, 4> for AABB representation
357 ---Category: Imported types
359 imported Buffer_Handle;
360 imported BoundBuffer;
361 imported BoundBuffer_Handle;
362 imported IndexBuffer;
363 imported IndexBuffer_Handle;
368 imported CBitFields20;
369 ---Category: Imported types
371 imported CBitFields16;
372 ---Category: Imported types
374 imported CBitFields8;
375 ---Category: Imported types
377 imported CBitFields4;
378 ---Category: Imported types
380 imported CAspectFillArea;
381 imported CAspectMarker;
382 imported CAspectLine;
383 imported CAspectText;
386 ---Category: Imported types
388 pointer CStructurePtr to CStructure from Graphic3d;
390 imported CStructure_Handle;
393 ---Category: Imported types
396 ---Category: Imported types
399 ---Category: Imported types
402 ---Category: Imported types
404 imported RenderingParams;
405 ---Purpose: Describes rendering parameters and effects.
406 ---Category: Imported types
408 imported CGraduatedTrihedron;
409 ---Category: Imported types
412 ---Category: Imported types
414 imported ClipPlane_Handle;
418 imported CTransPersStruct;
419 imported TransModeFlags;
421 imported MarkerImage;
422 imported MarkerImage_Handle;
423 imported Camera_Handle;
425 primitive PtrFrameBuffer;
432 imported ZLayerSettings;
439 deferred class ArrayOfPrimitives;
443 class ArrayOfPolylines;
445 class ArrayOfSegments;
447 class ArrayOfPolygons;
449 class ArrayOfTriangles;
451 class ArrayOfTriangleStrips;
453 class ArrayOfTriangleFans;
455 class ArrayOfQuadrangles;
457 class ArrayOfQuadrangleStrips;
462 class AspectFillArea3d;
465 class AspectMarker3d;
471 deferred class Group;
474 class MaterialAspect;
480 pointer StructurePtr to Structure from Graphic3d;
482 deferred class GraphicDriver;
484 deferred class StructureManager;
487 pointer StructureManagerPtr to StructureManager from Graphic3d;
489 deferred class DataStructureManager;
498 imported transient class ViewAffinity;
499 imported MapOfObject;
500 imported transient class NMapOfTransient;
502 imported MapOfStructure;
503 imported SequenceOfDisplayedStructures;
505 ---------------------------------
506 -- Category: Instantiated classes
507 ---------------------------------
509 imported SequenceOfGroup;
511 class SequenceOfStructure instantiates
512 Sequence from TCollection
513 (Structure from Graphic3d);
514 ---Category: Instantiated classes
516 class HSequenceOfStructure instantiates
517 HSequence from TCollection
518 (Structure from Graphic3d, SequenceOfStructure from Graphic3d);
519 ---Category: Instantiated classes
521 class Array1OfVector instantiates
522 Array1 from TCollection (Vector from Graphic3d);
523 ---Category: Instantiated classes
525 class Array1OfVertex instantiates
526 Array1 from TCollection (Vertex from Graphic3d);
527 ---Category: Instantiated classes
529 class Array2OfVertex instantiates
530 Array2 from TCollection (Vertex from Graphic3d);
531 ---Category: Instantiated classes
533 class ListOfShortReal instantiates
534 List from TCollection (ShortReal from Standard);
535 ---Category: Instantiated classes
537 --ABD Integration support of system fonts (using FTGL and FreeType)
538 imported NListOfHAsciiString;
539 ---Category: Instantiated classes
541 imported ShaderProgram_Handle;
542 ---Category: Instantiated classes
544 imported SequenceOfHClipPlane;
545 ---Category: Instantiated classes
546 -- Sequence of handles on clip planes
548 deferred class TextureRoot from Graphic3d;
549 deferred class TextureMap from Graphic3d;
550 deferred class Texture1D from Graphic3d;
551 deferred class Texture2D from Graphic3d;
553 class TextureParams from Graphic3d;
554 class TextureEnv from Graphic3d;
555 class Texture1Dmanual from Graphic3d;
556 class Texture1Dsegment from Graphic3d;
557 class Texture2Dmanual from Graphic3d;
558 class Texture2Dplane from Graphic3d;
561 enumeration ExportFormat is
574 enumeration SortType is
576 ST_Simple, -- sorting by depth of center point of primitive(fast)
577 ST_BSP_Tree -- sorting by BSPTree (slow, but fine result )