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