-- Created on: 1997-01-03 -- Created by: Christian CAILLET -- Copyright (c) 1997-1999 Matra Datavision -- Copyright (c) 1999-2012 OPEN CASCADE SAS -- -- The content of this file is subject to the Open CASCADE Technology Public -- License Version 6.5 (the "License"). You may not use the content of this file -- except in compliance with the License. Please obtain a copy of the License -- at http://www.opencascade.org and read it completely before using this file. -- -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -- -- The Original Code and all software distributed under the License is -- distributed on an "AS IS" basis, without warranty of any kind, and the -- Initial Developer hereby disclaims all such warranties, including without -- limitation, any warranties of merchantability, fitness for a particular -- purpose or non-infringement. Please see the License for the specific terms -- and conditions governing the rights and limitations under the License. class FreeFormEntity from StepData inherits TShared ---Purpose : A Free Form Entity allows to record any kind of STEP -- parameters, in any way of typing -- It is implemented with an array of fields -- A Complex entity can be defined, as a chain of FreeFormEntity -- (see Next and As) uses CString, AsciiString from TCollection, HSequenceOfAsciiString from TColStd, Field from StepData, HArray1OfField from StepData is Create returns mutable FreeFormEntity; ---Purpose : Creates a FreeFormEntity, with no field, no type SetStepType (me : mutable; typenam : CString); ---Purpose : Sets the type of an entity -- For a complex one, the type of this member StepType (me) returns CString; ---Purpose : Returns the recorded StepType -- For a complex one, the type of this member SetNext (me : mutable; next : FreeFormEntity; last : Boolean = Standard_True); ---Purpose : Sets a next member, in order to define or complete a Complex -- entity -- If is True (D), this next will be set as last of list -- Else, it is inserted just as next of -- If is Null, Next is cleared Next (me) returns FreeFormEntity; ---Purpose : Returns the next member of a Complex entity -- (remark : the last member has none) IsComplex (me) returns Boolean; ---Purpose : Returns True if a FreeFormEntity is Complex (i.e. has Next) Typed (me; typenam : CString) returns FreeFormEntity; ---Purpose : Returns the member of a FreeFormEntity of which the type name -- is given (exact match, no sub-type) TypeList (me) returns HSequenceOfAsciiString; ---Purpose : Returns the list of types (one type for a simple entity), -- as is (non reordered) Reorder (myclass; ent : in out mutable FreeFormEntity) returns Boolean; ---Purpose : Reorders a Complex entity if required, i.e. if member types -- are not in alphabetic order -- Returns False if nothing done (order was OK or simple entity), -- True plus modified if has been reordered SetNbFields (me : mutable; nb : Integer); ---Purpose : Sets a count of Fields, from scratch NbFields (me) returns Integer; ---Purpose : Returns the count of fields Field (me; num : Integer) returns Field; ---Purpose : Returns a field from its rank, for read-only use ---C++ : return const & CField (me : mutable; num : Integer) returns Field; ---Purpose : Returns a field from its rank, in order to modify it ---C++ : return & fields thetype : AsciiString from TCollection; thefields : HArray1OfField; thenext : FreeFormEntity; end FreeFormEntity;