Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/opencascade/DEOBJ_ConfigurationNode.hxx was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // Copyright (c) 2022 OPEN CASCADE SAS
0002 //
0003 // This file is part of Open CASCADE Technology software library.
0004 //
0005 // This library is free software; you can redistribute it and/or modify it under
0006 // the terms of the GNU Lesser General Public License version 2.1 as published
0007 // by the Free Software Foundation, with special exception defined in the file
0008 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0009 // distribution for complete text of the license and disclaimer of any warranty.
0010 //
0011 // Alternatively, this file may be used under the terms of Open CASCADE
0012 // commercial license or contractual agreement.
0013 
0014 #ifndef _DEOBJ_ConfigurationNode_HeaderFile
0015 #define _DEOBJ_ConfigurationNode_HeaderFile
0016 
0017 #include <DE_ConfigurationNode.hxx>
0018 #include <RWMesh_CoordinateSystem.hxx>
0019 
0020 //! The purpose of this class is to configure the transfer process for OBJ format
0021 //! Stores the necessary settings for DEOBJ_Provider.
0022 //! Configures and creates special provider to transfer OBJ files.
0023 //!
0024 //! Nodes grouped by Vendor name and Format type.
0025 //! The Vendor name is "OCC"
0026 //! The Format type is "OBJ"
0027 //! The supported CAD extension is ".obj"
0028 //! The import process is supported.
0029 //! The export process is supported.
0030 class DEOBJ_ConfigurationNode : public DE_ConfigurationNode
0031 {
0032   DEFINE_STANDARD_RTTIEXT(DEOBJ_ConfigurationNode, DE_ConfigurationNode)
0033 public:
0034   //! Initializes all field by default
0035   Standard_EXPORT DEOBJ_ConfigurationNode();
0036 
0037   //! Copies values of all fields
0038   //! @param[in] theNode object to copy
0039   Standard_EXPORT DEOBJ_ConfigurationNode(const Handle(DEOBJ_ConfigurationNode)& theNode);
0040 
0041   //! Updates values according the resource
0042   //! @param[in] theResource input resource to use
0043   //! @return true if theResource loading has ended correctly
0044   Standard_EXPORT virtual bool Load(const Handle(DE_ConfigurationContext)& theResource)
0045     Standard_OVERRIDE;
0046 
0047   //! Writes configuration to the string
0048   //! @return result resource string
0049   Standard_EXPORT virtual TCollection_AsciiString Save() const Standard_OVERRIDE;
0050 
0051   //! Copies values of all fields
0052   //! @return new object with the same field values
0053   Standard_EXPORT virtual Handle(DE_ConfigurationNode) Copy() const Standard_OVERRIDE;
0054 
0055   //! Creates new provider for the own format
0056   //! @return new created provider
0057   Standard_EXPORT virtual Handle(DE_Provider) BuildProvider() Standard_OVERRIDE;
0058 
0059 public:
0060   //! Checks the import supporting
0061   //! @return true if import is supported
0062   Standard_EXPORT virtual bool IsImportSupported() const Standard_OVERRIDE;
0063 
0064   //! Checks the export supporting
0065   //! @return true if export is supported
0066   Standard_EXPORT virtual bool IsExportSupported() const Standard_OVERRIDE;
0067 
0068   //! Gets CAD format name of associated provider
0069   //! @return provider CAD format
0070   Standard_EXPORT virtual TCollection_AsciiString GetFormat() const Standard_OVERRIDE;
0071 
0072   //! Gets provider's vendor name of associated provider
0073   //! @return provider's vendor name
0074   Standard_EXPORT virtual TCollection_AsciiString GetVendor() const Standard_OVERRIDE;
0075 
0076   //! Gets list of supported file extensions
0077   //! @return list of extensions
0078   Standard_EXPORT virtual TColStd_ListOfAsciiString GetExtensions() const Standard_OVERRIDE;
0079 
0080 public:
0081   struct RWObj_InternalSection
0082   {
0083     // Common
0084     // clang-format off
0085     double FileLengthUnit = 1.; //!< File length units to convert from while reading the file, defined as scale factor for m (meters)
0086     RWMesh_CoordinateSystem SystemCS = RWMesh_CoordinateSystem_Zup; //!< System origin coordinate system to perform conversion into during read
0087     RWMesh_CoordinateSystem FileCS = RWMesh_CoordinateSystem_Yup; //!< File origin coordinate system to perform conversion during read
0088     // Reading
0089     bool ReadSinglePrecision = false; //!< Flag for reading vertex data with single or double floating point precision
0090     bool ReadCreateShapes = false;  //!< Flag for create a single triangulation
0091     TCollection_AsciiString ReadRootPrefix; //!< Root folder for generating root labels names
0092     bool ReadFillDoc = true; //!< Flag for fill document from shape sequence
0093     bool ReadFillIncomplete = true; //!< Flag for fill the document with partially retrieved data even if reader has failed with error
0094     // clang-format on
0095     int ReadMemoryLimitMiB = -1; //!< Memory usage limit
0096     // Writing
0097     TCollection_AsciiString WriteComment; //!< Export special comment
0098     TCollection_AsciiString WriteAuthor;  //!< Author of exported file name
0099   } InternalParameters;
0100 };
0101 
0102 #endif // _DEOBJ_ConfigurationNode_HeaderFile