OpenCAX/entry/src/main/cpp/include/opencascade/TDocStd_FormatVersion.hxx
2026-02-19 19:05:41 +08:00

93 lines
4.9 KiB
C++

// Copyright (c) 2020 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TDocStdFormatVersion_HeaderFile
#define _TDocStdFormatVersion_HeaderFile
//! Storage format versions of OCAF documents in XML and binary file formats.
//!
//! OCAF document file format evolves and a new version number indicates each improvement of the
//! format. This enumeration lists all versions of an OCAF document. TDocStd_FormatVersion_CURRENT
//! value refers to the last file format version. By default, Open CASCADE Technology writes new
//! documents using the last file format version. The last version of Open CASCADE Technology is
//! able to read old documents of any version. However, a previous version of Open CASCADE
//! Technology may not be able to read a new document. In this case use the method
//! ChangeStorageFormatVersion() from TDocStd_Document to change the file format version. Then, save
//! the document by means of SaveAs() from TDocStd_Application.
//!
//! If it is necessary to improve an XML or binary file format of OCAF document, follow please the
//! next steps:
//! - increment the file format version in this enumeration. Put a reference to the last file format
//! version by means of TDocStd_FormatVersion_CURRENT.
//! - introduce the improvement in OCAF attribute storage and retrieval drivers, if necessary.
//! As an example, please consider the file XmlMDataStd_TreeNodeDriver.cxx.
//! - test the improvement on current file format version and on the previous one.
enum TDocStd_FormatVersion
{
TDocStd_FormatVersion_VERSION_2 = 2, //!< First supported version
TDocStd_FormatVersion_VERSION_3, //!< OCCT 6.3.0
//!< * XML: Adding DeltaOnModification functionality to set of
//!< Standard attributes [#0019403]
//!< * BIN: Add Delta to numbers data, changes in ShapeSection
//!< [#0019986, #0019403]
TDocStd_FormatVersion_VERSION_4, //!< OCCT 6.3.1
//!< * XML: Naming mechanism improvement [#0021004]
//!< * BIN: entry, ContextLabel for tree [#0021004]
TDocStd_FormatVersion_VERSION_5, //!< OCCT 6.3.1
//!< * XML: Separation of OCAF to Lite and Standard parts
//!< completion [#0021093]
//!< * BIN: Convert old format to new [#0021093]
TDocStd_FormatVersion_VERSION_6, //!< OCCT 6.5.0
//!< * XML: Add location [#0022192]
//!< * BIN: Add location [#0022192]
TDocStd_FormatVersion_VERSION_7, //!< OCCT 6.7.0
//!< * XML: Add orientation [#0023766]
//!< * BIN: Add orientation, type migration [#0023766]
TDocStd_FormatVersion_VERSION_8, //!< OCCT 7.0.0
//!< * XML: Replace TPrsStd_AISPresentation attribute with
//!< TDataXtd_Presentation [#0026290]
//!< * BIN: Stop convert old format [#0026290]
TDocStd_FormatVersion_VERSION_9, //!< OCCT 7.1.0
//!< * BIN: Add GUIDs, Process user defined guid [#0027932]
TDocStd_FormatVersion_VERSION_10, //!< OCCT 7.2.0
//!< * BIN: ReadTOC changed to handle 64-bit file length
//!< [#0028736]
TDocStd_FormatVersion_VERSION_11, //!< OCCT 7.6.0
//!< * BIN, XML: TopTools_FormatVersion_CURRENT changed to 3 and
//!< BinTools_FormatVersion_CURRENT changed to 4 to preserve
//!< per-vertex normal information in case of triangulation-only
//!< Faces [#0031136]
TDocStd_FormatVersion_VERSION_12, //!< OCCT 7.6.0
//!< * BIN: New binary format for fast reading of part of OCAF
//!< document [#0031918]
TDocStd_FormatVersion_CURRENT = TDocStd_FormatVersion_VERSION_12 //!< Current version
};
enum
{
TDocStd_FormatVersion_LOWER = TDocStd_FormatVersion_VERSION_2,
TDocStd_FormatVersion_UPPER = TDocStd_FormatVersion_VERSION_12
};
#endif // _TDocStdFormatVersion_HeaderFile