|
|
|||
File indexing completed on 2026-05-13 08:43:54
0001 // Created on: 1995-08-25 0002 // Created by: Christian CAILLET 0003 // Copyright (c) 1995-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _IGESData_BasicEditor_HeaderFile 0018 #define _IGESData_BasicEditor_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 0024 #include <Standard_Boolean.hxx> 0025 #include <Interface_GeneralLib.hxx> 0026 #include <IGESData_SpecificLib.hxx> 0027 #include <Standard_Integer.hxx> 0028 #include <Standard_Real.hxx> 0029 class IGESData_Protocol; 0030 class IGESData_IGESModel; 0031 class IGESData_IGESEntity; 0032 0033 //! This class provides various functions of basic edition, 0034 //! such as : 0035 //! - setting header unit (WARNING : DOES NOT convert entities) 0036 //! - computation of the status (Subordinate, UseFlag) of entities 0037 //! of IGES Entities on a whole model 0038 //! - auto correction of IGES Entities, defined both by DirChecker 0039 //! and by specific service AutoCorrect 0040 //! (this auto correction performs non-ambigious, rather logic, 0041 //! editions) 0042 class IGESData_BasicEditor 0043 { 0044 public: 0045 DEFINE_STANDARD_ALLOC 0046 0047 //! Creates an empty Basic Editor which should be initialized via Init() method. 0048 Standard_EXPORT IGESData_BasicEditor(); 0049 0050 //! Creates a Basic Editor, with a new IGESModel, ready to run 0051 Standard_EXPORT IGESData_BasicEditor(const Handle(IGESData_Protocol)& protocol); 0052 0053 //! Creates a Basic Editor for IGES Data, ready to run 0054 Standard_EXPORT IGESData_BasicEditor(const Handle(IGESData_IGESModel)& model, 0055 const Handle(IGESData_Protocol)& protocol); 0056 0057 //! Initialize a Basic Editor, with a new IGESModel, ready to run 0058 Standard_EXPORT void Init(const Handle(IGESData_Protocol)& protocol); 0059 0060 //! Initialize a Basic Editor for IGES Data, ready to run 0061 Standard_EXPORT void Init(const Handle(IGESData_IGESModel)& model, 0062 const Handle(IGESData_Protocol)& protocol); 0063 0064 //! Returns the designated model 0065 Standard_EXPORT Handle(IGESData_IGESModel) Model() const; 0066 0067 //! Sets a new unit from its flag (param 14 of Global Section) 0068 //! Returns True if done, False if <flag> is incorrect 0069 Standard_EXPORT Standard_Boolean SetUnitFlag(const Standard_Integer flag); 0070 0071 //! Sets a new unit from its value in meters (rounded to the 0072 //! closest one, max gap 1%) 0073 //! Returns True if done, False if <val> is too far from a 0074 //! suitable value 0075 Standard_EXPORT Standard_Boolean SetUnitValue(const Standard_Real val); 0076 0077 //! Sets a new unit from its name (param 15 of Global Section) 0078 //! Returns True if done, False if <name> is incorrect 0079 //! Remark : if <flag> has been set to 3 (user defined), <name> 0080 //! is then free 0081 Standard_EXPORT Standard_Boolean SetUnitName(const Standard_CString name); 0082 0083 //! Applies unit value to convert header data : Resolution, 0084 //! MaxCoord, MaxLineWeight 0085 //! Applies unit only once after SetUnit... has been called, 0086 //! if <enforce> is given as True. 0087 //! It can be called just before writing the model to a file, 0088 //! i.e. when definitive values are finally known 0089 Standard_EXPORT void ApplyUnit(const Standard_Boolean enforce = Standard_False); 0090 0091 //! Performs the re-computation of status on the whole model 0092 //! (Subordinate Status and Use Flag of each IGES Entity), which 0093 //! can have required values according the way they are referenced 0094 //! (see definitions of Logical use, Physical use, etc...) 0095 Standard_EXPORT void ComputeStatus(); 0096 0097 //! Performs auto-correction on an IGESEntity 0098 //! Returns True if something has changed, False if nothing done. 0099 //! 0100 //! Works with the specific IGES Services : DirChecker which 0101 //! allows to correct data in "Directory Part" of Entities (such 0102 //! as required values for status, or references to be null), and 0103 //! the specific IGES service OwnCorrect, which is specialised for 0104 //! each type of entity. 0105 Standard_EXPORT Standard_Boolean AutoCorrect(const Handle(IGESData_IGESEntity)& ent); 0106 0107 //! Performs auto-correction on the whole Model 0108 //! Returns the count of modified entities 0109 Standard_EXPORT Standard_Integer AutoCorrectModel(); 0110 0111 //! From the name of unit, computes flag number, 0 if incorrect 0112 //! (in this case, user defined entity remains possible) 0113 Standard_EXPORT static Standard_Integer UnitNameFlag(const Standard_CString name); 0114 0115 //! From the flag of unit, determines value in MM, 0 if incorrect 0116 Standard_EXPORT static Standard_Real UnitFlagValue(const Standard_Integer flag); 0117 0118 //! From the flag of unit, determines its name, "" if incorrect 0119 Standard_EXPORT static Standard_CString UnitFlagName(const Standard_Integer flag); 0120 0121 //! From the flag of IGES version, returns name, "" if incorrect 0122 Standard_EXPORT static Standard_CString IGESVersionName(const Standard_Integer flag); 0123 0124 //! Returns the maximum allowed value for IGESVersion Flag 0125 Standard_EXPORT static Standard_Integer IGESVersionMax(); 0126 0127 //! From the flag of drafting standard, returns name, "" if incorrect 0128 Standard_EXPORT static Standard_CString DraftingName(const Standard_Integer flag); 0129 0130 //! Returns the maximum allowed value for Drafting Flag 0131 Standard_EXPORT static Standard_Integer DraftingMax(); 0132 0133 //! Returns Flag corresponding to the scaling theValue. 0134 //! Returns 0 if there's no such flag. 0135 Standard_EXPORT static Standard_Integer GetFlagByValue(const Standard_Real theValue); 0136 0137 protected: 0138 private: 0139 Standard_Boolean theunit; 0140 Handle(IGESData_Protocol) theproto; 0141 Handle(IGESData_IGESModel) themodel; 0142 Interface_GeneralLib theglib; 0143 IGESData_SpecificLib theslib; 0144 }; 0145 0146 #endif // _IGESData_BasicEditor_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|