// Copyright (c) 2015 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 _ShapePersistent_Geom2d_HeaderFile #define _ShapePersistent_Geom2d_HeaderFile #include #include #include #include #include #include #include #include class ShapePersistent_Geom2d : public ShapePersistent_Geom { typedef geometryBase basic; public: typedef ShapePersistent_Geom::Geometry Geometry; typedef subBase_empty Point; typedef instance CartesianPoint; typedef subBase_gp Vector; typedef instance Direction; typedef instance VectorWithMagnitude; typedef instance AxisPlacement; typedef instance , Geom2d_Transformation, gp_Trsf2d> Transformation; typedef geometryBase Curve; public: //! Create a persistent object for a curve Standard_EXPORT static Handle(Curve) Translate (const Handle(Geom2d_Curve)& theCurve, StdObjMgt_TransientPersistentMap& theMap); }; //======================================================================= // Geometry //======================================================================= template<> Standard_CString ShapePersistent_Geom::geometryBase ::PName() const; //======================================================================= // Point //======================================================================= template<> Standard_CString ShapePersistent_Geom::subBase_empty< ShapePersistent_Geom2d::geometryBase > ::PName() const; //======================================================================= // CartesianPoint //======================================================================= template<> Standard_CString ShapePersistent_Geom::instance ::PName() const; template<> void ShapePersistent_Geom::instance ::Write(StdObjMgt_WriteData& theWriteData) const; //======================================================================= // Direction //======================================================================= template<> Standard_CString ShapePersistent_Geom::instance ::PName() const; template<> void ShapePersistent_Geom::instance ::Write(StdObjMgt_WriteData& theWriteData) const; //======================================================================= // VectorWithMagnitude //======================================================================= template<> Standard_CString ShapePersistent_Geom::instance ::PName() const; template<> void ShapePersistent_Geom::instance ::Write(StdObjMgt_WriteData& theWriteData) const; //======================================================================= // AxisPlacement //======================================================================= template<> Standard_CString ShapePersistent_Geom::instance ::PName() const; template<> void ShapePersistent_Geom::instance ::Write(StdObjMgt_WriteData& theWriteData) const; //======================================================================= // Transformation //======================================================================= template<> Standard_CString ShapePersistent_Geom::instance ::PName() const; template<> void ShapePersistent_Geom::instance ::PChildren(StdObjMgt_Persistent::SequenceOfPersistent& theChildren) const; template<> void ShapePersistent_Geom::instance ::Write(StdObjMgt_WriteData& theWriteData) const; //======================================================================= // Curve //======================================================================= template<> Standard_CString ShapePersistent_Geom2d::geometryBase ::PName() const; #endif