0024157: Parallelization of assembly part of BO
[occt.git] / src / STEPControl / STEPControl_Reader.cdl
1 -- Created on: 1996-07-08
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
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
21
22
23 class Reader  from STEPControl inherits Reader from XSControl
24
25         ---Purpose : Reads STEP files, checks them and translates their contents
26         -- into Open CASCADE models. The STEP data can be that of
27         -- a whole model or that of a specific list of entities in the model.
28         -- As in XSControl_Reader, you specify the list using a selection.
29         -- For the translation of iges files it is possible to use next sequence:
30         -- To change translation parameters 
31         -- class Interface_Static should be used before beginning of
32         -- translation  (see STEP Parameters and General Parameters) 
33         --     Creation of reader - STEPControl_Reader reader;
34         --  To load s file in a model use method reader.ReadFile("filename.stp")
35         -- To print load results reader.PrintCheckLoad(failsonly,mode)
36         -- where mode is equal to the value of enumeration IFSelect_PrintCount 
37         --   For definition number of candidates :
38         -- Standard_Integer nbroots = reader. NbRootsForTransfer();
39         -- To transfer entities from a model the following methods can be used:
40         -- for the whole model - reader.TransferRoots(); 
41         -- to transfer a list of entities: reader.TransferList(list);
42         -- to transfer one entity Handle(Standard_Transient)
43         -- ent = reader.RootForTransfer(num);
44         -- reader.TransferEntity(ent), or 
45         -- reader.TransferOneRoot(num), or
46         -- reader.TransferOne(num), or 
47         -- reader.TransferRoot(num)
48         --   To obtain the result the following method can be used:
49         -- reader.NbShapes() and reader.Shape(num); or reader.OneShape(); 
50         -- To print the results of transfer use method:
51         -- reader.PrintCheckTransfer(failwarn,mode);
52         -- where printfail is equal to the value of enumeration
53         -- IFSelect_PrintFail, mode see above; or reader.PrintStatsTransfer();
54         -- Gets correspondence between a STEP entity and a result
55         -- shape obtained from it.
56         -- Handle(XSControl_WorkSession)
57         -- WS = reader.WS();
58         -- if ( WS->TransferReader()->HasResult(ent) )
59         -- TopoDS_Shape shape = WS->TransferReader()->ShapeResult(ent);
60
61 uses
62
63     CString, OStream, Transient, SequenceOfTransient from TColStd,
64     StepModel from StepData, WorkSession from XSControl,
65     ReturnStatus from IFSelect, PrintCount from IFSelect,
66     Shape from TopoDS, SequenceOfShape from TopTools,
67     SequenceOfAsciiString from TColStd,
68     Array1OfAsciiString from TColStd,
69     Array1OfReal from TColStd,
70     SequenceOfAsciiString from TColStd,
71     RepresentationContext from StepRepr
72 is
73
74     Create returns Reader;
75     ---Purpose : Creates a reader object with an empty STEP model.
76
77     Create (WS : mutable WorkSession from XSControl;
78                  scratch : Boolean = Standard_True) returns Reader;
79     ---Purpose : Creates a Reader for STEP from an already existing Session
80     --           Clears the session if it was not yet set for STEP
81
82     StepModel (me) returns StepModel;
83     ---Purpose : Returns the model as a StepModel.
84     --           It can then be consulted (header, product)
85
86     TransferRoot (me : in out; num : Integer = 1) returns Boolean;
87     ---Purpose : Transfers a root given its rank in the list of candidate roots
88     --           Default is the first one
89     --           Returns True if a shape has resulted, false else
90     --           Same as inherited TransferOneRoot, kept for compatibility
91
92     NbRootsForTransfer (me : in out) returns Integer is redefined;
93     ---Purpose : Determines the list of root entities from Model which are candidate for
94     --           a transfer to a Shape (type of entities is PRODUCT)
95     
96     FileUnits(me : in out; theUnitLengthNames : in out SequenceOfAsciiString from TColStd;
97                   theUnitAngleNames : in out SequenceOfAsciiString from TColStd;
98                   theUnitSolidAngleNames : in out SequenceOfAsciiString from TColStd );
99      ---Purpose : Returns sequence of all unit names for shape representations 
100      --           found in file
101      
102     findUnits(me : in out ; theReprContext : RepresentationContext from StepRepr;
103         theNameUnits : in out Array1OfAsciiString from TColStd;
104         theFactorUnits : in out Array1OfReal from TColStd) returns Boolean is private;
105      ---Purpose : Returns  units for length , angle and solidangle for shape representations 
106     
107     
108 end Reader;