![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
The main class for working with CAD file exchange. Loads and Saves special CAD transfer property. Consolidates all supported Formats and Vendors. Automatically recognizes CAD format and uses the preferred existed Vendor. Note: If Vendor's format is not binded, the configuration loading doesn't affect on its property. More...
#include <DE_Wrapper.hxx>

Public Member Functions | |
| DE_Wrapper () | |
| Initializes all field by default. | |
| DE_Wrapper (const occ::handle< DE_Wrapper > &theWrapper) | |
| Copies values of all fields. | |
| bool | Read (const TCollection_AsciiString &thePath, const occ::handle< TDocStd_Document > &theDocument, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads a CAD file, according internal configuration. | |
| bool | Write (const TCollection_AsciiString &thePath, const occ::handle< TDocStd_Document > &theDocument, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes a CAD file, according internal configuration. | |
| bool | Read (const TCollection_AsciiString &thePath, const occ::handle< TDocStd_Document > &theDocument, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads a CAD file, according internal configuration. | |
| bool | Write (const TCollection_AsciiString &thePath, const occ::handle< TDocStd_Document > &theDocument, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes a CAD file, according internal configuration. | |
| bool | Read (const TCollection_AsciiString &thePath, TopoDS_Shape &theShape, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads a CAD file, according internal configuration. | |
| bool | Write (const TCollection_AsciiString &thePath, const TopoDS_Shape &theShape, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes a CAD file, according internal configuration. | |
| bool | Read (const TCollection_AsciiString &thePath, TopoDS_Shape &theShape, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads a CAD file, according internal configuration. | |
| bool | Write (const TCollection_AsciiString &thePath, const TopoDS_Shape &theShape, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes a CAD file, according internal configuration. | |
| bool | Read (DE_Provider::ReadStreamList &theStreams, const occ::handle< TDocStd_Document > &theDocument, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads streams according to internal configuration. | |
| bool | Write (DE_Provider::WriteStreamList &theStreams, const occ::handle< TDocStd_Document > &theDocument, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes streams according to internal configuration. | |
| bool | Read (DE_Provider::ReadStreamList &theStreams, const occ::handle< TDocStd_Document > &theDocument, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads streams according to internal configuration. | |
| bool | Write (DE_Provider::WriteStreamList &theStreams, const occ::handle< TDocStd_Document > &theDocument, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes streams according to internal configuration. | |
| bool | Read (DE_Provider::ReadStreamList &theStreams, TopoDS_Shape &theShape, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads streams according to internal configuration. | |
| bool | Write (DE_Provider::WriteStreamList &theStreams, const TopoDS_Shape &theShape, occ::handle< XSControl_WorkSession > &theWS, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes streams according to internal configuration. | |
| bool | Read (DE_Provider::ReadStreamList &theStreams, TopoDS_Shape &theShape, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Reads streams according to internal configuration. | |
| bool | Write (DE_Provider::WriteStreamList &theStreams, const TopoDS_Shape &theShape, const Message_ProgressRange &theProgress=Message_ProgressRange()) |
| Writes streams according to internal configuration. | |
| bool | Load (const TCollection_AsciiString &theResource="", const bool theIsRecursive=true) |
| Updates values according the resource file. | |
| bool | Load (const occ::handle< DE_ConfigurationContext > &theResource, const bool theIsRecursive=true) |
| Updates values according the resource. | |
| bool | Save (const TCollection_AsciiString &theResourcePath, const bool theIsRecursive=true, const NCollection_List< TCollection_AsciiString > &theFormats=NCollection_List< TCollection_AsciiString >(), const NCollection_List< TCollection_AsciiString > &theVendors=NCollection_List< TCollection_AsciiString >()) |
| Writes configuration to the resource file. | |
| TCollection_AsciiString | Save (const bool theIsRecursive=true, const NCollection_List< TCollection_AsciiString > &theFormats=NCollection_List< TCollection_AsciiString >(), const NCollection_List< TCollection_AsciiString > &theVendors=NCollection_List< TCollection_AsciiString >()) |
| Writes configuration to the string. | |
| bool | Bind (const occ::handle< DE_ConfigurationNode > &theNode) |
| Creates new node copy and adds to the map. | |
| bool | UnBind (const occ::handle< DE_ConfigurationNode > &theNode) |
| Removes node with the same type from the map. | |
| bool | Find (const TCollection_AsciiString &theFormat, const TCollection_AsciiString &theVendor, occ::handle< DE_ConfigurationNode > &theNode) const |
| Finds a node associated with input format and vendor. | |
| void | ChangePriority (const TCollection_AsciiString &theFormat, const NCollection_List< TCollection_AsciiString > &theVendorPriority, const bool theToDisable=false) |
| Changes provider priority to one format if it exists. | |
| void | ChangePriority (const NCollection_List< TCollection_AsciiString > &theVendorPriority, const bool theToDisable=false) |
| Changes provider priority to all loaded nodes. | |
| virtual bool | FindProvider (const TCollection_AsciiString &thePath, const bool theToImport, occ::handle< DE_Provider > &theProvider) const |
| Find available provider from the configuration. If there are several providers, choose the one with the highest priority. | |
| virtual bool | FindReadProvider (const TCollection_AsciiString &thePath, const bool theCheckContent, occ::handle< DE_Provider > &theProvider) const |
| Find available read provider from the configuration for file-based operations. If there are several providers, choose the one with the highest priority. | |
| virtual bool | FindReadProvider (const TCollection_AsciiString &thePath, std::istream &theStream, occ::handle< DE_Provider > &theProvider) const |
| Find available read provider from the configuration for stream-based operations. If there are several providers, choose the one with the highest priority. | |
| virtual bool | FindWriteProvider (const TCollection_AsciiString &thePath, occ::handle< DE_Provider > &theProvider) const |
| Find available write provider from the configuration. If there are several providers, choose the one with the highest priority. | |
| void | UpdateLoad (const bool theToForceUpdate=false) const |
| Updates all registered nodes, all changes will be saved in nodes. | |
| bool | KeepUpdates () const |
| Gets flag that keeps changes on configuration nodes which are being updated, false by default. | |
| void | SetKeepUpdates (const bool theToKeepUpdates) |
| Sets flag that keeps changes on configuration nodes which are being updated, false by default. | |
| const NCollection_DataMap< TCollection_AsciiString, NCollection_IndexedDataMap< TCollection_AsciiString, occ::handle< DE_ConfigurationNode > > > & | Nodes () const |
| Gets format map, contains vendor map with nodes. | |
| virtual occ::handle< DE_Wrapper > | Copy () const |
| Copies values of all fields. | |
Public Member Functions inherited from Standard_Transient | |
| Standard_Transient () | |
| Empty constructor. | |
| Standard_Transient (const Standard_Transient &) | |
| Copy constructor – does nothing. | |
| Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. | |
| virtual | ~Standard_Transient ()=default |
| Destructor must be virtual. | |
| virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object. | |
| bool | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type. | |
| bool | IsInstance (const char *const theTypeName) const |
| Returns a true value if this is an instance of TypeName. | |
| bool | IsKind (const opencascade::handle< Standard_Type > &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| bool | IsKind (const char *const theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| Standard_Transient * | This () const |
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. | |
| int | GetRefCount () const noexcept |
| Get the reference counter of this object. | |
| void | IncrementRefCounter () noexcept |
| Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations. | |
| int | DecrementRefCounter () noexcept |
| Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement. | |
| virtual void | Delete () const |
| Memory deallocator for transient classes. | |
Static Public Member Functions | |
| static const occ::handle< DE_Wrapper > & | GlobalWrapper () |
| Gets global configuration singleton. If wrapper is not set, create it by default as base class object. | |
| static void | SetGlobalWrapper (const occ::handle< DE_Wrapper > &theWrapper) |
| Sets global configuration singleton. | |
| static std::mutex & | GlobalLoadMutex () |
Static Public Member Functions inherited from Standard_Transient | |
| static constexpr const char * | get_type_name () |
| Returns a type descriptor about this object. | |
| static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
| Returns type descriptor of Standard_Transient class. | |
Data Fields | |
| DE_ConfigurationNode::DE_SectionGlobal | GlobalParameters |
| Internal parameters for the all translators. | |
Protected Member Functions | |
| void | sort (const occ::handle< DE_ConfigurationContext > &theResource) |
| Sorts the vendors according to the priority to work Formats omitted from the resource are not modified Vendors omitted from the format scope are disabled. | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
| typedef void | base_type |
| Returns a type descriptor about this object. | |
The main class for working with CAD file exchange. Loads and Saves special CAD transfer property. Consolidates all supported Formats and Vendors. Automatically recognizes CAD format and uses the preferred existed Vendor. Note: If Vendor's format is not binded, the configuration loading doesn't affect on its property.
Nodes are grouped by Vendor's name and Format's type. The Vendors may have the same supported CAD formats. Use a Vendor's priority for transfer operations.
The algorithm for standalone transfer operation: 1) Work with global wrapper directly or make deep copy and work with it 2) Update the supported vendors and formats 2.1) Create and initialize specialized configuration node of the required format and Vendor. 2.2) Bind the created node to the internal map(::Bind) 3) Configure the transfer property by resource string or file (Load) 3.1) Configuration can disable or enable some Vendors and formats 3.2) Configuration can change the priority of Vendors 4) Initiate the transfer process by calling "::Write" or "::Read" methods 5) Validate the transfer process output
| DE_Wrapper::DE_Wrapper | ( | ) |
Initializes all field by default.
| DE_Wrapper::DE_Wrapper | ( | const occ::handle< DE_Wrapper > & | theWrapper | ) |
Copies values of all fields.
| [in] | theWrapper | object to copy |
| bool DE_Wrapper::Bind | ( | const occ::handle< DE_ConfigurationNode > & | theNode | ) |
Creates new node copy and adds to the map.
| [in] | theNode | input node to copy |
| void DE_Wrapper::ChangePriority | ( | const NCollection_List< TCollection_AsciiString > & | theVendorPriority, |
| const bool | theToDisable = false ) |
Changes provider priority to all loaded nodes.
| [in] | theVendorPriority | priority of work with vendors |
| [in] | theToDisable | flag for disabling nodes that are not included in the priority |
| void DE_Wrapper::ChangePriority | ( | const TCollection_AsciiString & | theFormat, |
| const NCollection_List< TCollection_AsciiString > & | theVendorPriority, | ||
| const bool | theToDisable = false ) |
Changes provider priority to one format if it exists.
| [in] | theFormat | input node CAD format |
| [in] | theVendorPriority | priority of work with vendors |
| [in] | theToDisable | flag for disabling nodes that are not included in the priority |
|
virtual |
Copies values of all fields.
| bool DE_Wrapper::Find | ( | const TCollection_AsciiString & | theFormat, |
| const TCollection_AsciiString & | theVendor, | ||
| occ::handle< DE_ConfigurationNode > & | theNode ) const |
Finds a node associated with input format and vendor.
| [in] | theFormat | input node CAD format |
| [in] | theVendor | input node vendor name |
| [out] | theNode | output node |
|
virtual |
Find available provider from the configuration. If there are several providers, choose the one with the highest priority.
| [in] | thePath | path to the CAD file |
| [in] | theToImport | flag to finds for import. true-import, false-export |
| [out] | theProvider | created new provider |
|
virtual |
Find available read provider from the configuration for file-based operations. If there are several providers, choose the one with the highest priority.
| [in] | thePath | path to the CAD file (for extension and content checking) |
| [in] | theCheckContent | flag to enable content checking via file reading |
| [out] | theProvider | created new provider |
|
virtual |
Find available read provider from the configuration for stream-based operations. If there are several providers, choose the one with the highest priority.
| [in] | thePath | path to the CAD file (for extension extraction) |
| [in] | theStream | input stream for content checking |
| [out] | theProvider | created new provider |
|
virtual |
Find available write provider from the configuration. If there are several providers, choose the one with the highest priority.
| [in] | thePath | path to the CAD file (for extension checking only) |
| [out] | theProvider | created new provider |
|
static |
|
static |
Gets global configuration singleton. If wrapper is not set, create it by default as base class object.
|
inline |
Gets flag that keeps changes on configuration nodes which are being updated, false by default.
| bool DE_Wrapper::Load | ( | const occ::handle< DE_ConfigurationContext > & | theResource, |
| const bool | theIsRecursive = true ) |
Updates values according the resource.
| [in] | theResource | input resource to use |
| [in] | theIsRecursive | flag to update all nodes |
| bool DE_Wrapper::Load | ( | const TCollection_AsciiString & | theResource = "", |
| const bool | theIsRecursive = true ) |
Updates values according the resource file.
| [in] | theResource | file path to resource or resource value |
| [in] | theIsRecursive | flag to update all nodes |
| const NCollection_DataMap< TCollection_AsciiString, NCollection_IndexedDataMap< TCollection_AsciiString, occ::handle< DE_ConfigurationNode > > > & DE_Wrapper::Nodes | ( | ) | const |
Gets format map, contains vendor map with nodes.
| bool DE_Wrapper::Read | ( | const TCollection_AsciiString & | thePath, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads a CAD file, according internal configuration.
| [in] | thePath | path to the import CAD file |
| [out] | theDocument | document to save result |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | const TCollection_AsciiString & | thePath, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads a CAD file, according internal configuration.
| [in] | thePath | path to the import CAD file |
| [out] | theDocument | document to save result |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | const TCollection_AsciiString & | thePath, |
| TopoDS_Shape & | theShape, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads a CAD file, according internal configuration.
| [in] | thePath | path to the import CAD file |
| [out] | theShape | shape to save result |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | const TCollection_AsciiString & | thePath, |
| TopoDS_Shape & | theShape, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads a CAD file, according internal configuration.
| [in] | thePath | path to the import CAD file |
| [out] | theShape | shape to save result |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | DE_Provider::ReadStreamList & | theStreams, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads streams according to internal configuration.
| [in] | theStreams | streams to read from |
| [out] | theDocument | document to save result |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | DE_Provider::ReadStreamList & | theStreams, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads streams according to internal configuration.
| [in] | theStreams | streams to read from |
| [out] | theDocument | document to save result |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | DE_Provider::ReadStreamList & | theStreams, |
| TopoDS_Shape & | theShape, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads streams according to internal configuration.
| [in] | theStreams | streams to read from |
| [out] | theShape | shape to save result |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Read | ( | DE_Provider::ReadStreamList & | theStreams, |
| TopoDS_Shape & | theShape, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Reads streams according to internal configuration.
| [in] | theStreams | streams to read from |
| [out] | theShape | shape to save result |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| TCollection_AsciiString DE_Wrapper::Save | ( | const bool | theIsRecursive = true, |
| const NCollection_List< TCollection_AsciiString > & | theFormats = NCollection_List< TCollection_AsciiString >(), | ||
| const NCollection_List< TCollection_AsciiString > & | theVendors = NCollection_List< TCollection_AsciiString >() ) |
Writes configuration to the string.
| [in] | theIsRecursive | flag to write values of all nodes |
| [in] | theFormats | list of formats to save. If empty, saves all available |
| [in] | theVendors | list of providers to save. If empty, saves all available |
| bool DE_Wrapper::Save | ( | const TCollection_AsciiString & | theResourcePath, |
| const bool | theIsRecursive = true, | ||
| const NCollection_List< TCollection_AsciiString > & | theFormats = NCollection_List< TCollection_AsciiString >(), | ||
| const NCollection_List< TCollection_AsciiString > & | theVendors = NCollection_List< TCollection_AsciiString >() ) |
Writes configuration to the resource file.
| [in] | theResourcePath | file path to resource |
| [in] | theIsRecursive | flag to write values of all nodes |
| [in] | theFormats | list of formats to save. If empty, saves all available |
| [in] | theVendors | list of providers to save. If empty, saves all available |
|
static |
Sets global configuration singleton.
| [in] | theWrapper | object to set as global configuration |
Sets flag that keeps changes on configuration nodes which are being updated, false by default.
|
protected |
Sorts the vendors according to the priority to work Formats omitted from the resource are not modified Vendors omitted from the format scope are disabled.
| [in] | theResource | resource to get priority |
| bool DE_Wrapper::UnBind | ( | const occ::handle< DE_ConfigurationNode > & | theNode | ) |
Removes node with the same type from the map.
| [in] | theNode | input node to remove the same |
Updates all registered nodes, all changes will be saved in nodes.
| [in] | theToForceUpdate | flag that turns on/of nodes, according to updated ability to import/export |
| bool DE_Wrapper::Write | ( | const TCollection_AsciiString & | thePath, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes a CAD file, according internal configuration.
| [in] | thePath | path to the export CAD file |
| [out] | theDocument | document to export |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | const TCollection_AsciiString & | thePath, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes a CAD file, according internal configuration.
| [in] | thePath | path to the export CAD file |
| [out] | theDocument | document to export |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | const TCollection_AsciiString & | thePath, |
| const TopoDS_Shape & | theShape, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes a CAD file, according internal configuration.
| [in] | thePath | path to the export CAD file |
| [out] | theShape | shape to export |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | const TCollection_AsciiString & | thePath, |
| const TopoDS_Shape & | theShape, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes a CAD file, according internal configuration.
| [in] | thePath | path to the export CAD file |
| [out] | theShape | shape to export |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | DE_Provider::WriteStreamList & | theStreams, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes streams according to internal configuration.
| [in] | theStreams | streams to write to |
| [out] | theDocument | document to export |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | DE_Provider::WriteStreamList & | theStreams, |
| const occ::handle< TDocStd_Document > & | theDocument, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes streams according to internal configuration.
| [in] | theStreams | streams to write to |
| [out] | theDocument | document to export |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | DE_Provider::WriteStreamList & | theStreams, |
| const TopoDS_Shape & | theShape, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes streams according to internal configuration.
| [in] | theStreams | streams to write to |
| [out] | theShape | shape to export |
| [in] | theProgress | progress indicator |
| bool DE_Wrapper::Write | ( | DE_Provider::WriteStreamList & | theStreams, |
| const TopoDS_Shape & | theShape, | ||
| occ::handle< XSControl_WorkSession > & | theWS, | ||
| const Message_ProgressRange & | theProgress = Message_ProgressRange() ) |
Writes streams according to internal configuration.
| [in] | theStreams | streams to write to |
| [out] | theShape | shape to export |
| [in] | theWS | current work session |
| [in] | theProgress | progress indicator |
| DE_ConfigurationNode::DE_SectionGlobal DE_Wrapper::GlobalParameters |
Internal parameters for the all translators.