diff --git a/src/Mod/Sketcher/App/AppSketcher.cpp b/src/Mod/Sketcher/App/AppSketcher.cpp index 9bfa4daaa1..9dcea88fbf 100644 --- a/src/Mod/Sketcher/App/AppSketcher.cpp +++ b/src/Mod/Sketcher/App/AppSketcher.cpp @@ -65,12 +65,13 @@ PyMOD_INIT_FUNC(Sketcher) // call PyType_Ready, otherwise we run into a segmentation fault, later on. // This function is responsible for adding inherited slots from a type's base class. - Sketcher::SketchObjectSF ::init(); - Sketcher::SketchObject ::init(); - Sketcher::SketchObjectPython ::init(); - Sketcher::Sketch ::init(); - Sketcher::Constraint ::init(); - Sketcher::PropertyConstraintList::init(); + Sketcher::SketchGeometryExtension ::init(); + Sketcher::SketchObjectSF ::init(); + Sketcher::SketchObject ::init(); + Sketcher::SketchObjectPython ::init(); + Sketcher::Sketch ::init(); + Sketcher::Constraint ::init(); + Sketcher::PropertyConstraintList ::init(); Base::Console().Log("Loading Sketcher module... done\n"); diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index c2b69a28c1..01757614ee 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -88,6 +88,41 @@ using namespace Sketcher; using namespace Base; +//---------- Geometry Extension + +TYPESYSTEM_SOURCE(Sketcher::SketchGeometryExtension,Part::GeometryExtension) + +SketchGeometryExtension::~SketchGeometryExtension() +{ +} + +// Persistence implementer +unsigned int SketchGeometryExtension::getMemSize (void) const +{ + return sizeof(long int); +} + +void SketchGeometryExtension::Save(Base::Writer &writer) const +{ + + writer.Stream() << writer.ind() << "getTypeId().getName() + << "\" id=\"" << id << "\"/>" << endl; +} + +void SketchGeometryExtension::Restore(Base::XMLReader &reader) +{ + id = reader.getAttributeAsInteger("id"); +} + +PyObject * SketchGeometryExtension::getPyObject(void) +{ + return 0; +} + + +//-------------- End Geometry Extension + + const int GeoEnum::RtPnt = -1; const int GeoEnum::HAxis = -1; const int GeoEnum::VAxis = -2; diff --git a/src/Mod/Sketcher/App/SketchObject.h b/src/Mod/Sketcher/App/SketchObject.h index 8ce03b6a32..5337f1f5e2 100644 --- a/src/Mod/Sketcher/App/SketchObject.h +++ b/src/Mod/Sketcher/App/SketchObject.h @@ -41,6 +41,23 @@ namespace Sketcher { +class SketcherExport SketchGeometryExtension : public Part::GeometryExtension +{ + TYPESYSTEM_HEADER(); +public: + virtual ~SketchGeometryExtension(); + + // Persistence implementer --------------------- + virtual unsigned int getMemSize(void) const; + virtual void Save(Base::Writer &/*writer*/) const; + virtual void Restore(Base::XMLReader &/*reader*/); + + virtual PyObject *getPyObject(void); + +public: + long int id; +}; + struct SketcherExport GeoEnum { static const int RtPnt;