0023098: Cppcheck warnings/errors in QA files
[occt.git] / src / Graphic3d / Graphic3d.cdl
CommitLineData
b311480e 1-- Created on: 1993-03-31
2-- Created by: NW,JPB,CAL
3-- Copyright (c) 1993-1999 Matra Datavision
4-- Copyright (c) 1999-2012 OPEN CASCADE SAS
7fd59977 5--
b311480e 6-- The content of this file is subject to the Open CASCADE Technology Public
7-- License Version 6.5 (the "License"). You may not use the content of this file
8-- except in compliance with the License. Please obtain a copy of the License
9-- at http://www.opencascade.org and read it completely before using this file.
10--
11-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13--
14-- The Original Code and all software distributed under the License is
15-- distributed on an "AS IS" basis, without warranty of any kind, and the
16-- Initial Developer hereby disclaims all such warranties, including without
17-- limitation, any warranties of merchantability, fitness for a particular
18-- purpose or non-infringement. Please see the License for the specific terms
19-- and conditions governing the rights and limitations under the License.
20
7fd59977 21-- Package : Graphic3d
7fd59977 22-- Updated : Vendredi 2 Octobre 1992
23-- Mercredi 31 Mars 1993
24-- Mercredi 19 Janvier 1994
25-- 1/08/97 ; PCT : Ajout texture mapping
26-- 11/97 ; CAL : retrait de la dependance avec math
27-- 11/97 ; CAL : retrait des DataStructure
28-- 11/97 ; CAL : ajout pointer StructPtr
29-- 04/98 ; FGU : ajout champs 'TOR_EMISSION'
30-- 16-09-98; BGN: (S3819) Ajout TypeOfTriedronEcho,
31-- TypeOfTriedronPosition.
32-- 22-09-98; BGN: S3989 (anciennement S3819): report
33-- dans Aspect des TypeOfTriedron*
34-- 26-03-99 : FMN ; Compatibilite ascendante:
35-- Ajout des anciens noms de materiaux.
36-- 09-04-99 : GG ; Compatibilite ascendante:
37-- NameOfPhysicalMaterial disparait
38-- 23-11-99 : GG ; Add material name DEFAULT
39-- 16-06-2000 : ATS : Study G005: class ArrayOfPrimitives
40-- and derivated used for model presentation.
41-- Required: enumeration TypeOfPrimitive;
42-- imported PrimitiveArray; class PrimitiveList.
7fd59977 43-- 17-12-01 : GG ; IMP171201 : Add material name UserDefined
44-- Thanks to Stephane ROUTELOUS
45-- 20-01-2009 : ABD Integration support of system fonts (using FTGL and FreeType)
7fd59977 46-- Objective : Specifications definitives
7fd59977 47
48package Graphic3d
49
50 ---Version:
51
52 ---Purpose: This package permits the creation of 3d graphic objects
53 -- in a visualiser.
54 -- These objects, called structures, are composed of groups of
55 -- primitives and attributes.
56 -- The group is the smallest editable element of a structure.
57 -- A structure can be displayed, erased, high-lighted.
58 -- A transformation can be applied to it.
59 -- Structures can be connected to form a tree of structures,
60 -- composed by transformations.
61 -- The visualiser permits global manipulation of structures.
62
63 ---Keywords: Structure, Group, Primitives, Line, Marker, Text,
64 -- FillAreas, Vertex, Vector, Material, Font, Shading
65 ---Warning:
66 ---References:
67
68uses
69
70 TCollection,
71 TColStd,
72 OSD,
73 Quantity,
74 Aspect,
75 MMgt,
76 Xw,
77 WNT,
78 Image,
79 AlienImage,
80 gp
81is
82
83 -----------------------
84 -- Category: Exceptions
85 -----------------------
86
87 exception AspectTextDefinitionError inherits OutOfRange;
88 ---Category: Exceptions
89
90 exception CycleError inherits DomainError;
91 ---Category: Exceptions
92
93 exception GroupDefinitionError inherits OutOfRange;
94 ---Category: Exceptions
95
96 exception InitialisationError inherits OutOfRange;
97 ---Category: Exceptions
98
99 exception MaterialDefinitionError inherits OutOfRange;
100 ---Category: Exceptions
101
102 exception PickIdDefinitionError inherits OutOfRange;
103 ---Category: Exceptions
104
105 exception PlotterDefinitionError inherits OutOfRange;
106 ---Category: The exceptions
107
108 exception PriorityDefinitionError inherits OutOfRange;
109 ---Category: Exceptions
110
111 exception StructureDefinitionError inherits OutOfRange;
112 ---Category: Exceptions
113
114 exception TransformError inherits OutOfRange;
115 ---Category: Exceptions
116
117 exception VectorError inherits OutOfRange;
118 ---Category: Exceptions
119
120 -------------------------
121 -- Category: Enumerations
122 -------------------------
123
124 enumeration NameOfMaterial is
125 NOM_BRASS, -- laiton (PHYSIC)
126 NOM_BRONZE, -- bronze (PHYSIC)
127 NOM_COPPER, -- cuivre (PHYSIC)
128 NOM_GOLD, -- or (PHYSIC)
129
130 NOM_PEWTER, -- etain (PHYSIC)
131
132 NOM_PLASTER, -- platre (GENERIC)
133 NOM_PLASTIC, -- plastic (GENERIC)
134
135 NOM_SILVER, -- argent (PHYSIC)
136
137 NOM_STEEL, -- acier (PHYSIC)
138
139 NOM_STONE, -- pierre (PHYSIC)
140
141 NOM_SHINY_PLASTIC, -- plastique brillant (GENERIC)
142 NOM_SATIN, -- satin (GENERIC)
143 NOM_METALIZED, -- metallise New (GENERIC)
144 NOM_NEON_GNC, -- neon New (GENERIC)
145 NOM_CHROME, -- chrome New (PHYSIC)
146 NOM_ALUMINIUM, -- aluminium New (PHYSIC)
147 NOM_OBSIDIAN, -- obsidian New (PHYSIC)
148 NOM_NEON_PHC, -- neon New (PHYSIC)
149 NOM_JADE, -- jade New (PHYSIC)
150 NOM_DEFAULT,
151 NOM_UserDefined -- owner material
152 end NameOfMaterial;
153 ---Purpose: Types of aspect materials.
154 ---Category: Enumerations
155
156 enumeration TypeOfMaterial is MATERIAL_ASPECT, -- Materiel generique
157 MATERIAL_PHYSIC -- Materiel physique
158 end TypeOfMaterial;
159 ---Purpose: Types of materials specifies if a material can change color.
160 ---Category: Enumerations
161
162 enumeration NameOfTexture1D is NOT_1D_ELEVATION,
163 NOT_1D_UNKNOWN
164 end NameOfTexture1D;
165 ---Purpose: Types of standard textures.
166 ---Category: Enumerations
167
168
169 enumeration NameOfTexture2D is NOT_2D_MATRA,
170 NOT_2D_ALIENSKIN,
171 NOT_2D_BLUE_ROCK,
172 NOT_2D_BLUEWHITE_PAPER,
173 NOT_2D_BRUSHED,
174 NOT_2D_BUBBLES,
175 NOT_2D_BUMP,
176 NOT_2D_CAST,
177 NOT_2D_CHIPBD,
178 NOT_2D_CLOUDS,
179 NOT_2D_FLESH,
180 NOT_2D_FLOOR,
181 NOT_2D_GALVNISD,
182 NOT_2D_GRASS,
183 NOT_2D_ALUMINUM,
184 NOT_2D_ROCK,
185 NOT_2D_KNURL,
186 NOT_2D_MAPLE,
187 NOT_2D_MARBLE,
188 NOT_2D_MOTTLED,
189 NOT_2D_RAIN,
190 NOT_2D_UNKNOWN
191 end NameOfTexture2D;
192 ---Purpose: Types of standard textures.
193 ---Category: Enumerations
194
195
196 enumeration NameOfTextureEnv is NOT_ENV_CLOUDS,
197 NOT_ENV_CV,
198 NOT_ENV_MEDIT,
199 NOT_ENV_PEARL,
200 NOT_ENV_SKY1,
201 NOT_ENV_SKY2,
202 NOT_ENV_LINES,
203 NOT_ENV_ROAD,
204 NOT_ENV_UNKNOWN
205 end NameOfTextureEnv;
206 ---Purpose: Types of standard textures.
207 ---Category: Enumerations
208
209 enumeration TypeOfTexture is TOT_1D,
210 TOT_2D,
211 TOT_2D_MIPMAP;
212 ---Purpose: Type of the texture file format.
213 ---Category: Enumerations
214
215 enumeration TypeOfTextureMode is TOTM_OBJECT,
216 TOTM_SPHERE,
217 TOTM_EYE,
218 TOTM_MANUAL;
219 ---Purpose: Type of the texture projection.
220 ---Category: Enumerations
221
222 enumeration NameOfTexturePlane is NOTP_XY,
223 NOTP_YZ,
224 NOTP_ZX,
225 NOTP_UNKNOWN;
226 ---Purpose: Type of the texture projection plane for both S and T texture coordinate.
227 ---Category: Enumerations
228
229 enumeration TypeOfComposition is TOC_REPLACE,
230 TOC_POSTCONCATENATE
231 end TypeOfComposition;
232 ---Purpose: To manage the transformation matrices of structures.
233 ---Category: Enumerations
234
235 enumeration TypeOfConnection is TOC_ANCESTOR,
236 TOC_DESCENDANT
237 end TypeOfConnection;
238 ---Purpose: To manage the connections between the structures.
239 ---Category: Enumerations
240
241 enumeration TypeOfPolygon is TOP_UNKNOWN,
242 TOP_COMPLEX,
243 TOP_CONCAVE,
244 TOP_CONVEX
245 end TypeOfPolygon;
246 ---Purpose: The type of polygon in a group in a structure.
247 ---Category: Enumerations
248
249 enumeration TypeOfPrimitive is TOP_UNDEFINED,
250 TOP_POLYLINE,
251 TOP_POLYGON,
252 TOP_TRIANGLEMESH,
253 TOP_QUADRANGLEMESH,
254 TOP_TEXT,
255 TOP_MARKER,
256 TOP_PARRAY
257 end TypeOfPrimitive;
258 ---Purpose: The type of primitive in a group in a structure.
259 ---Category: Enumerations
260
261 enumeration TypeOfPrimitiveArray is TOPA_UNDEFINED,
262 TOPA_POINTS,
263 TOPA_POLYLINES,
264 TOPA_SEGMENTS,
265 TOPA_POLYGONS,
266 TOPA_TRIANGLES,
267 TOPA_QUADRANGLES,
268 TOPA_TRIANGLESTRIPS,
269 TOPA_QUADRANGLESTRIPS,
270 TOPA_TRIANGLEFANS
271 end TypeOfPrimitiveArray;
272 ---Purpose: The type of primitive array in a group in a structure.
273 ---Category: Enumerations
274
275 enumeration TypeOfReflection is TOR_AMBIENT,
276 TOR_DIFFUSE,
277 TOR_SPECULAR,
278 TOR_EMISSION
279 end TypeOfReflection;
280 ---Purpose: Nature of the reflection of a material.
281 ---Category: Enumerations
282
283 enumeration TypeOfStructure is TOS_WIREFRAME,
284 TOS_SHADING,
285 TOS_COMPUTED,
286 TOS_ALL
287 end TypeOfStructure;
288 ---Purpose: Structural attribute indicating if it can be displayed
289 -- in wireframe, shadow mode, or both.
290 ---Category: Enumerations
291
292 enumeration TextPath is TP_UP,
293 TP_DOWN,
294 TP_LEFT,
295 TP_RIGHT
296 end TextPath;
297 ---Purpose: Direction in which text is displayed.
298 ---Category: Enumerations
299
300 enumeration HorizontalTextAlignment is HTA_LEFT,
301 HTA_CENTER,
302 HTA_RIGHT
303 end HorizontalTextAlignment;
304 ---Purpose: Defines the horizontal position of the text
305 -- relative to its anchor.
306 ---Category: Enumerations
307
308 enumeration VerticalTextAlignment is VTA_BOTTOM,
309 VTA_CENTER,
310 VTA_TOP
311 end VerticalTextAlignment;
312 ---Purpose: Defines the vertical position of the text
313 -- relative to its anchor.
314 ---Category: Enumerations
315
316 enumeration GroupAspect is ASPECT_LINE,
317 ASPECT_TEXT,
318 ASPECT_MARKER,
319 ASPECT_FILL_AREA
320 end GroupAspect;
321 ---Purpose: Identifies primitives aspects defined per group.
322 -- - ASPECT_LINE: aspect for line primitives;
323 -- - ASPECT_TEXT: aspect for text primitives;
324 -- - ASPECT_MARKER: aspect for marker primitives;
325 -- - ASPECT_FILL_AREA: aspect for face primitives.
326
327 ---------------------------
328 -- Category: Imported types
329 ---------------------------
330
331 imported PrimitiveArray;
692613e5 332 imported BufferType;
7fd59977 333
334 imported CBitFields20;
335 ---Purpose: Defines the C structure
336 ---Category: Imported types
337
338 imported CBitFields16;
339 ---Purpose: Defines the C structure
340 ---Category: Imported types
341
342 imported CBitFields8;
343 ---Purpose: Defines the C structure
344 ---Category: Imported types
345
346 imported CBitFields4;
347 ---Purpose: Defines the C structure
348 ---Category: Imported types
349
350 imported CGroup;
351 ---Purpose: Defines the C structure <agroup>
352 ---Category: Imported types
353
354 imported CStructure;
355 ---Purpose: Defines the C structure <astructure>
356 ---Category: Imported types
357
358 imported CLight;
359 ---Purpose: Defines the C structure <alight>
360 ---Category: Imported types
361
362 imported CPick;
363 ---Purpose: Defines the C structure <apick>
364 ---Category: Imported types
365
366 imported CPlane;
367 ---Purpose: Defines the C structure <aplane>
368 ---Category: Imported types
369
370 imported CBounds;
371 ---Purpose: Defines the C structure <abounds>
372 ---Category: Imported types
373
374 imported CUserDraw;
375 ---Purpose: Defines the C structure <auserdraw>
376 ---Category: Imported types
377
378 imported CView;
379 ---Purpose: Defines the C structure <aview>
380 ---Category: Imported types
381
382 imported CGraduatedTrihedron;
383 ---Purpose: Defines the C structure of a graduated trihedron.
384 ---Category: Imported types
385
386 imported CInitTexture;
387 imported CTexture;
388
389-- ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate )
390 imported CTransPersStruct;
391 imported TransModeFlags;
392-- ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate )
393
394 primitive PtrFrameBuffer;
395
396 --------------------
397 -- Category: Classes
398 --------------------
399
400 class Strips;
401 ---Purpose: Contains some static functions to strips treatment
402
403 deferred class ArrayOfPrimitives;
404 ---Purpose: Contains basic methods for array allocation and filling
405
406 class ArrayOfPoints;
407 ---Purpose: Contains points array definition
408
409 class ArrayOfPolylines;
410 ---Purpose: Contains polylines array definition
411
412 class ArrayOfSegments;
413 ---Purpose: Contains segments array definition
414
415 class ArrayOfPolygons;
416 ---Purpose: Contains polygons array definition
417
418 class ArrayOfTriangles;
419 ---Purpose: Contains triangles array definition
420
421 class ArrayOfTriangleStrips;
422 ---Purpose: Contains triangles strip array definition
423
424 class ArrayOfTriangleFans;
425 ---Purpose: Contains triangles fan array definition
426
427 class ArrayOfQuadrangles;
428 ---Purpose: Contains quatrangles array definition
429
430 class ArrayOfQuadrangleStrips;
431 ---Purpose: Contains quadrangles strip array definition
432
433 class AspectLine3d;
434 ---Purpose: Grouping line attributes
435 ---Category: Classes
436
437 class AspectFillArea3d;
438 ---Purpose: Grouping face attributes
439 ---Category: Classes
440
441 class AspectMarker3d;
442 ---Purpose: Grouping marker attributes
443 ---Category: Classes
444
445 class AspectText3d;
446 ---Purpose: Grouping text attributes.
447 ---Category: Classes
448
449 class Group;
450 ---Purpose: For grouping together primitives in a structure
451 ---Category: Classes
452
453 class GraphicDevice;
454 ---Purpose: Defines a physical graphic device allowing to
455 -- shares graphical ressources.
456 ---Category: Classes
457
458 class WNTGraphicDevice;
459 ---Purpose: Defines a physical graphic device for Windows NT
460 ---Category: Classes
461
462 class MaterialAspect;
463 ---Purpose: Aspect attributes of a 3d face.
464 ---Category: Classes
465
466 class Structure;
467 ---Purpose: Graphic object.
468 ---Category: Classes
469
470 deferred class GraphicDriver;
471 ---Purpose: Defines a graphic driver for 3d interface
472
473 deferred class StructureManager;
474 ---Purpose: Visualiser with which the graphic objects are associated.
475 ---Category: Classes
476
477 deferred class DataStructureManager;
478 ---Purpose: Visualiser with which the graphic objects are associated.
479 ---Category: Classes
480
481 deferred class Plotter;
482 ---Purpose: Defines the minimal plotter.
483 ---Category: The classes
484
485 class Vector;
486 ---Purpose: 3d vector
487 ---Category: Classes
488
489 class Vertex;
490 ---Purpose: 3d vertex
491 ---Category: Classes
492
493 class VertexN;
494 ---Purpose: 3d vertex with a normal vector
495 ---Category: Classes
496
497 class VertexNT;
498 ---Purpose: 3d vertex with a normal vector and texture coordinate
499 ---Category: Classes
500
501 class VertexC;
502 ---Purpose: 3d vertex with a colour
503 ---Category: Classes
504
505 class VertexNC;
506 ---Purpose: 3d vertex with a normal and a colour
507 ---Category: Classes
508
509 ---------------------
510 -- Category: Pointers
511 ---------------------
512
513 pointer StructPtr to Structure from Graphic3d;
514 ---Category: Pointers
515
516 ---------------------------------
517 -- Category: Instantiated classes
518 ---------------------------------
519
520 class ListOfPArray instantiates
521 List from TCollection (ArrayOfPrimitives from Graphic3d);
522 ---Category: Instantiated classes
523
524 class SequenceOfAddress instantiates
525 Sequence from TCollection
526 (Address from Standard);
527 ---Category: Instantiated classes
528
529 class SetOfGroup instantiates
530 Set from TCollection (Group from Graphic3d);
531 ---Category: Instantiated classes
532
533 class HSetOfGroup instantiates
534 HSet from TCollection
535 (Group from Graphic3d, SetOfGroup);
536 ---Category: Instantiated classes
537
538 class SequenceOfGroup instantiates
539 Sequence from TCollection (Group from Graphic3d);
540
541 ---Category: Instantiated classes
542
543 class HSequenceOfGroup instantiates
544 HSequence from TCollection
545 (Group from Graphic3d, SequenceOfGroup from Graphic3d);
546 ---Category: Instantiated classes
547
548 class MapOfStructure instantiates
549 Map from TCollection (Structure from Graphic3d,MapTransientHasher from TColStd);
550
551
552 ---Category: Instantiated classes
553
554 class SequenceOfStructure instantiates
555 Sequence from TCollection
556 (Structure from Graphic3d);
557 ---Category: Instantiated classes
558
559 class HSequenceOfStructure instantiates
560 HSequence from TCollection
561 (Structure from Graphic3d, SequenceOfStructure from Graphic3d);
562 ---Category: Instantiated classes
563
564 class Array1OfVector instantiates
565 Array1 from TCollection (Vector from Graphic3d);
566 ---Category: Instantiated classes
567
568 class Array1OfVertex instantiates
569 Array1 from TCollection (Vertex from Graphic3d);
570 ---Category: Instantiated classes
571
572 class Array2OfVertex instantiates
573 Array2 from TCollection (Vertex from Graphic3d);
574 ---Category: Instantiated classes
575
576 class Array1OfVertexC instantiates
577 Array1 from TCollection (VertexC from Graphic3d);
578 ---Category: Instantiated classes
579
580 class Array2OfVertexC instantiates
581 Array2 from TCollection (VertexC from Graphic3d);
582 ---Category: Instantiated classes
583
584 class Array1OfVertexN instantiates
585 Array1 from TCollection (VertexN from Graphic3d);
586 ---Category: Instantiated classes
587
588 class Array2OfVertexN instantiates
589 Array2 from TCollection (VertexN from Graphic3d);
590 ---Category: Instantiated classes
591
592 class Array1OfVertexNT instantiates
593 Array1 from TCollection (VertexNT from Graphic3d);
594 ---Category: Instantiated classes
595
596 class Array2OfVertexNT instantiates
597 Array2 from TCollection (VertexNT from Graphic3d);
598 ---Category: Instantiated classes
599
600 class Array1OfVertexNC instantiates
601 Array1 from TCollection (VertexNC from Graphic3d);
602 ---Category: Instantiated classes
603
604 class Array2OfVertexNC instantiates
605 Array2 from TCollection (VertexNC from Graphic3d);
606 ---Category: Instantiated classes
607
608 class ListOfShortReal instantiates
609 List from TCollection (ShortReal from Standard);
610 ---Category: Instantiated classes
611
612 --ABD Integration support of system fonts (using FTGL and FreeType)
613 imported NListOfHAsciiString;
614 ---Category: Instantiated classes
615
616
617 deferred class TextureRoot from Graphic3d;
618 deferred class TextureMap from Graphic3d;
619 deferred class Texture1D from Graphic3d;
620 deferred class Texture2D from Graphic3d;
621
622 class TextureEnv from Graphic3d;
623 class Texture1Dmanual from Graphic3d;
624 class Texture1Dsegment from Graphic3d;
625 class Texture2Dmanual from Graphic3d;
626 class Texture2Dplane from Graphic3d;
627
628
629 enumeration ExportFormat is
630
631 EF_PostScript,
632 EF_EnhPostScript,
633 EF_TEX,
634 EF_PDF,
635 EF_SVG,
5cedc27f
K
636 EF_PGF,
637 EF_EMF
7fd59977 638
639 end ExportFormat;
640
641
642 enumeration SortType is
643
644 ST_Simple, -- sorting by depth of center point of primitive(fast)
645 ST_BSP_Tree -- sorting by BSPTree (slow, but fine result )
646
647 end SortType;
648
649end Graphic3d;