Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:05:00

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 
0015 #ifndef _StdPersistent_DataXtd_HeaderFile
0016 #define _StdPersistent_DataXtd_HeaderFile
0017 
0018 #include <StdLPersistent_Void.hxx>
0019 #include <StdObject_gp_Vectors.hxx>
0020 
0021 #include <TDataXtd_Shape.hxx>
0022 #include <TDataXtd_Point.hxx>
0023 #include <TDataXtd_Axis.hxx>
0024 #include <TDataXtd_Plane.hxx>
0025 #include <TDataXtd_Placement.hxx>
0026 #include <TDataXtd_Geometry.hxx>
0027 #include <TDataXtd_Position.hxx>
0028 
0029 
0030 class StdPersistent_DataXtd
0031 {
0032   class _void : private StdLPersistent_Void
0033   {
0034   public:
0035     template <class AttribClass>
0036     struct Instance : instance<AttribClass> {};
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   { return "PDataXtd_Shape"; }
0064 
0065 template<>
0066 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Point>::PName() const
0067   { return "PDataXtd_Point"; }
0068 
0069 template<>
0070 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Axis>::PName() const
0071   { return "PDataXtd_Axis"; }
0072 
0073 template<>
0074 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Plane>::PName() const
0075   { return "PDataXtd_Plane"; }
0076 
0077 template<>
0078 inline Standard_CString StdLPersistent_Void::instance<TDataXtd_Placement>::PName() const
0079   { return "PDataXtd_Placement"; }
0080 
0081 template<>
0082 template<>
0083 inline Standard_CString StdObjMgt_Attribute<TDataXtd_Geometry>::Simple<Standard_Integer>::PName() const
0084   { return "PDataXtd_Geometry"; }
0085 
0086 template<>
0087 template<>
0088 inline Standard_CString StdObjMgt_Attribute<TDataXtd_Position>::Simple<gp_Pnt>::PName() const
0089   { return "PDataXtd_Position"; }
0090 
0091 #endif