From bd5ef265366ebabbbe21dbd82067272e6e28b466 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 30 Jul 2022 17:10:56 +0200 Subject: [PATCH] Base: add Precision class and move the Python binding from Part to Base module --- src/App/Application.cpp | 2 ++ src/Base/CMakeLists.txt | 4 ++++ src/{Mod/Part/App => Base}/PrecisionPy.xml | 10 +++++----- src/{Mod/Part/App => Base}/PrecisionPyImp.cpp | 3 ++- src/Mod/Part/App/AppPart.cpp | 4 ++-- src/Mod/Part/App/CMakeLists.txt | 3 --- 6 files changed, 15 insertions(+), 11 deletions(-) rename src/{Mod/Part/App => Base}/PrecisionPy.xml (92%) rename src/{Mod/Part/App => Base}/PrecisionPyImp.cpp (98%) diff --git a/src/App/Application.cpp b/src/App/Application.cpp index 74c5fc197a..4dd0c3fe2f 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -70,6 +70,7 @@ #include #include #include +#include #include #include #include @@ -301,6 +302,7 @@ void Application::setupPythonTypes() Base::Interpreter().addType(&Base::AxisPy ::Type,pBaseModule,"Axis"); Base::Interpreter().addType(&Base::CoordinateSystemPy::Type,pBaseModule,"CoordinateSystem"); Base::Interpreter().addType(&Base::TypePy ::Type,pBaseModule,"TypeId"); + Base::Interpreter().addType(&Base::PrecisionPy ::Type,pBaseModule,"Precision"); Base::Interpreter().addType(&App::MaterialPy::Type, pAppModule, "Material"); Base::Interpreter().addType(&App::MetadataPy::Type, pAppModule, "Metadata"); diff --git a/src/Base/CMakeLists.txt b/src/Base/CMakeLists.txt index e6d59bd6e0..f39a2fcd55 100644 --- a/src/Base/CMakeLists.txt +++ b/src/Base/CMakeLists.txt @@ -89,6 +89,7 @@ generate_from_xml(PlacementPy) generate_from_xml(AxisPy) generate_from_xml(UnitPy) generate_from_xml(QuantityPy) +generate_from_xml(PrecisionPy) generate_from_any(Parameter.xsd Parameter.inl xmlSchemeString) if(SWIG_FOUND) @@ -175,6 +176,7 @@ SET(FreeCADBase_XML_SRCS QuantityPy.xml TypePy.xml UnitPy.xml + PrecisionPy.xml ) SOURCE_GROUP("XML" FILES ${FreeCADBase_XML_SRCS}) @@ -250,6 +252,7 @@ SET(FreeCADBase_CPP_SRCS PersistencePyImp.cpp Placement.cpp PlacementPyImp.cpp + PrecisionPyImp.cpp PyExport.cpp PyObjectBase.cpp QtTools.cpp @@ -313,6 +316,7 @@ SET(FreeCADBase_HPP_SRCS Parameter.h Persistence.h Placement.h + Precision.h PyExport.h PyObjectBase.h QtTools.h diff --git a/src/Mod/Part/App/PrecisionPy.xml b/src/Base/PrecisionPy.xml similarity index 92% rename from src/Mod/Part/App/PrecisionPy.xml rename to src/Base/PrecisionPy.xml index 6ba4c5a80f..5c4b24726b 100644 --- a/src/Mod/Part/App/PrecisionPy.xml +++ b/src/Base/PrecisionPy.xml @@ -3,17 +3,17 @@ - This is the Type class - This is the Type class + This is the Precision class + This is the Precision class diff --git a/src/Mod/Part/App/PrecisionPyImp.cpp b/src/Base/PrecisionPyImp.cpp similarity index 98% rename from src/Mod/Part/App/PrecisionPyImp.cpp rename to src/Base/PrecisionPyImp.cpp index 3c8bf6dc5c..dd5e591922 100644 --- a/src/Mod/Part/App/PrecisionPyImp.cpp +++ b/src/Base/PrecisionPyImp.cpp @@ -26,7 +26,8 @@ #include "PrecisionPy.cpp" -using namespace Part; +using Base::Precision; +using Base::PrecisionPy; // returns a string which represents the object e.g. when printed in python diff --git a/src/Mod/Part/App/AppPart.cpp b/src/Mod/Part/App/AppPart.cpp index 82b05ce5b1..874e344167 100644 --- a/src/Mod/Part/App/AppPart.cpp +++ b/src/Mod/Part/App/AppPart.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include "ArcOfCirclePy.h" #include "ArcOfConicPy.h" @@ -107,7 +108,6 @@ #include "PlanePy.h" #include "PlateSurfacePy.h" #include "PointPy.h" -#include "PrecisionPy.h" #include "PrimitiveFeature.h" #include "RectangularTrimmedSurfacePy.h" #include "SpherePy.h" @@ -315,7 +315,7 @@ PyMOD_INIT_FUNC(Part) Base::Interpreter().addType(&Part::GeometryStringExtensionPy ::Type,partModule,"GeometryStringExtension"); Base::Interpreter().addType(&Part::GeometryBoolExtensionPy ::Type,partModule,"GeometryBoolExtension"); Base::Interpreter().addType(&Part::GeometryDoubleExtensionPy ::Type,partModule,"GeometryDoubleExtension"); - Base::Interpreter().addType(&Part::PrecisionPy ::Type,partModule,"Precision"); + Base::Interpreter().addType(&Base::PrecisionPy ::Type,partModule,"Precision"); // BRepFeat package PyObject* brepfeatModule(module.getAttr("BRepFeat").ptr()); diff --git a/src/Mod/Part/App/CMakeLists.txt b/src/Mod/Part/App/CMakeLists.txt index b496444af8..7851790385 100644 --- a/src/Mod/Part/App/CMakeLists.txt +++ b/src/Mod/Part/App/CMakeLists.txt @@ -91,7 +91,6 @@ generate_from_xml(TopoShapeVertexPy) generate_from_xml(TopoShapeWirePy) generate_from_xml(BRepOffsetAPI_MakePipeShellPy) generate_from_xml(BRepOffsetAPI_MakeFillingPy) -generate_from_xml(PrecisionPy) # make sure to create the directory at configure time file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/BRepFeat) @@ -343,8 +342,6 @@ SET(Python_SRCS BRepOffsetAPI_MakePipeShellPyImp.cpp BRepOffsetAPI_MakeFillingPy.xml BRepOffsetAPI_MakeFillingPyImp.cpp - PrecisionPy.xml - PrecisionPyImp.cpp PartPyCXX.cpp PartPyCXX.h )