Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-25 09:24:22

0001 // Copyright (c) 2015 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 _StdPersistent_DataXtd_HeaderFile
0015 #define _StdPersistent_DataXtd_HeaderFile
0016 
0017 #include <StdLPersistent_Void.hxx>
0018 #include <StdObject_gp_Vectors.hxx>
0019 
0020 #include <TDataXtd_Shape.hxx>
0021 #include <TDataXtd_Point.hxx>
0022 #include <TDataXtd_Axis.hxx>
0023 #include <TDataXtd_Plane.hxx>
0024 #include <TDataXtd_Placement.hxx>
0025 #include <TDataXtd_Geometry.hxx>
0026 #include <TDataXtd_Position.hxx>
0027 
0028 class StdPersistent_DataXtd
0029 {
0030   class _void : private StdLPersistent_Void
0031   {
0032   public:
0033     template <class AttribClass>
0034     struct Instance : instance<AttribClass>
0035     {
0036     };
0037   };
0038 
0039 public:
0040   typedef _void::Instance<TDataXtd_Shape>     Shape;
0041   typedef _void::Instance<TDataXtd_Point>     Point;
0042   typedef _void::Instance<TDataXtd_Axis>      Axis;
0043   typedef _void::Instance<TDataXtd_Plane>     Plane;
0044   typedef _void::Instance<TDataXtd_Placement> Placement;
0045 
0046   class Geometry : public StdObjMgt_Attribute<TDataXtd_Geometry>::SingleInt
0047   {
0048   public:
0049     //! Import transient attribute from the persistent data.
0050     Standard_EXPORT virtual void ImportAttribute();
0051   };
0052 
0053   class Position : public StdObjMgt_Attribute<TDataXtd_Position>::Simple<gp_Pnt>
0054   {
0055   public:
0056     //! Import transient attribute from the persistent data.
0057     Standard_EXPORT virtual void ImportAttribute();
0058   };
0059 };
0060 
0061 template <>
0062 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Shape>::PName() const
0063 {
0064   return "PDataXtd_Shape";
0065 }
0066 
0067 template <>
0068 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Point>::PName() const
0069 {
0070   return "PDataXtd_Point";
0071 }
0072 
0073 template <>
0074 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Axis>::PName() const
0075 {
0076   return "PDataXtd_Axis";
0077 }
0078 
0079 template <>
0080 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Plane>::PName() const
0081 {
0082   return "PDataXtd_Plane";
0083 }
0084 
0085 template <>
0086 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Placement>::PName() const
0087 {
0088   return "PDataXtd_Placement";
0089 }
0090 
0091 template <>
0092 template <>
0093 inline Standard_CString StdObjMgt_Attribute<TDataXtd_Geometry>::Simple<Standard_Integer>::PName()
0094   const
0095 {
0096   return "PDataXtd_Geometry";
0097 }
0098 
0099 template <>
0100 template <>
0101 inline Standard_CString StdObjMgt_Attribute<TDataXtd_Position>::Simple<gp_Pnt>::PName() const
0102 {
0103   return "PDataXtd_Position";
0104 }
0105 
0106 #endif