1 -- Created on: 1992-02-11
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1992-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 class StepModel from StepData inherits InterfaceModel
19 ---Purpose : Gives access to
20 -- - entities in a STEP file,
21 -- - the STEP file header.
23 uses Type, HAsciiString from TCollection,
24 Messenger from Message,
25 HArray1OfInteger from TColStd,
26 EntityList, EntityIterator, Check
32 Create returns StepModel;
33 ---Purpose: Creates an empty STEP model with an empty header.
35 Entity (me; num : Integer) returns Transient;
36 ---Purpose : returns entity given its rank.
37 -- Same as InterfaceEntity, but with a shorter name
39 GetFromAnother (me : mutable; other : InterfaceModel);
40 ---Purpose : gets header from another Model (uses Header Protocol)
42 NewEmptyModel (me) returns InterfaceModel;
43 ---Purpose : Returns a New Empty Model, same type as <me>, i.e. StepModel
45 -- -- Header management -- --
47 Header (me) returns EntityIterator;
48 ---Purpose : returns Header entities under the form of an iterator
50 HasHeaderEntity(me; atype : any Type) returns Boolean;
51 ---Purpose : says if a Header entity has a specifed type
53 HeaderEntity (me; atype : any Type) returns Transient
54 ---Purpose : Returns Header entity with specified type, if there is
56 -- Error if no Header Entity matches <atype>
58 ClearHeader (me : mutable);
59 ---Purpose : Clears the Header
61 AddHeaderEntity (me : mutable; ent : Transient);
62 ---Purpose : Adds an Entity to the Header
64 VerifyCheck (me; ach : in out Check) is redefined;
65 ---Purpose : Specific Check, checks Header Items with HeaderProtocol
67 DumpHeader (me; S : Messenger from Message; level : Integer = 0);
68 ---Purpose : Dumps the Header, with the Header Protocol of StepData.
69 -- If the Header Protocol is not defined, for each Header Entity,
70 -- prints its Type. Else sends the Header under the form of
71 -- HEADER Section of an Ascii Step File
72 -- <level> is not used because Header is not so big
75 ClearLabels (me : mutable);
76 ---Purpose : erases specific labels, i.e. clears the map (entity-ident)
78 SetIdentLabel (me : mutable; ent : Transient; ident : Integer);
79 ---Purpose : Attaches an ident to an entity to produce a label
80 -- (does nothing if <ent> is not in <me>)
82 IdentLabel (me; ent : Transient) returns Integer;
83 ---Purpose : returns the label ident attached to an entity, 0 if not in me
85 PrintLabel (me; ent : Transient; S : Messenger from Message);
86 ---Purpose : Prints label specific to STEP norm for a given entity, i.e.
87 -- if a LabelIdent has been recorded, its value with '#', else
88 -- the number in the model with '#' and between ()
90 StringLabel (me; ent : Transient) returns HAsciiString from TCollection;
91 ---Purpose : Returns a string with the label attached to a given entity,
92 -- same form as for PrintLabel
96 theheader : EntityList;
97 theidnums : HArray1OfInteger from TColStd;