1 -- Created on: 1997-01-03
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1997-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 FreeFormEntity from StepData inherits TShared
19 ---Purpose : A Free Form Entity allows to record any kind of STEP
20 -- parameters, in any way of typing
21 -- It is implemented with an array of fields
22 -- A Complex entity can be defined, as a chain of FreeFormEntity
25 uses CString, AsciiString from TCollection,
26 HSequenceOfAsciiString from TColStd,
27 Field from StepData, HArray1OfField from StepData
31 Create returns FreeFormEntity;
32 ---Purpose : Creates a FreeFormEntity, with no field, no type
34 SetStepType (me : mutable; typenam : CString);
35 ---Purpose : Sets the type of an entity
36 -- For a complex one, the type of this member
38 StepType (me) returns CString;
39 ---Purpose : Returns the recorded StepType
40 -- For a complex one, the type of this member
42 SetNext (me : mutable; next : FreeFormEntity; last : Boolean = Standard_True);
43 ---Purpose : Sets a next member, in order to define or complete a Complex
45 -- If <last> is True (D), this next will be set as last of list
46 -- Else, it is inserted just as next of <me>
47 -- If <next> is Null, Next is cleared
49 Next (me) returns FreeFormEntity;
50 ---Purpose : Returns the next member of a Complex entity
51 -- (remark : the last member has none)
53 IsComplex (me) returns Boolean;
54 ---Purpose : Returns True if a FreeFormEntity is Complex (i.e. has Next)
56 Typed (me; typenam : CString) returns FreeFormEntity;
57 ---Purpose : Returns the member of a FreeFormEntity of which the type name
58 -- is given (exact match, no sub-type)
60 TypeList (me) returns HSequenceOfAsciiString;
61 ---Purpose : Returns the list of types (one type for a simple entity),
62 -- as is (non reordered)
64 Reorder (myclass; ent : in out FreeFormEntity) returns Boolean;
65 ---Purpose : Reorders a Complex entity if required, i.e. if member types
66 -- are not in alphabetic order
67 -- Returns False if nothing done (order was OK or simple entity),
68 -- True plus modified <ent> if <ent> has been reordered
71 SetNbFields (me : mutable; nb : Integer);
72 ---Purpose : Sets a count of Fields, from scratch
74 NbFields (me) returns Integer;
75 ---Purpose : Returns the count of fields
77 Field (me; num : Integer) returns Field;
78 ---Purpose : Returns a field from its rank, for read-only use
79 ---C++ : return const &
81 CField (me : mutable; num : Integer) returns Field;
82 ---Purpose : Returns a field from its rank, in order to modify it
87 thetype : AsciiString from TCollection;
88 thefields : HArray1OfField;
89 thenext : FreeFormEntity;