diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp
index 5afd577707..38f66706d3 100644
--- a/src/Gui/Application.cpp
+++ b/src/Gui/Application.cpp
@@ -104,6 +104,7 @@
#include "ViewProviderFeature.h"
#include "ViewProviderGeoFeatureGroup.h"
#include "ViewProviderGeometryObject.h"
+#include "ViewProviderGeometryObjectPy.h"
#include "ViewProviderGroupExtension.h"
#include "ViewProviderSuppressibleExtension.h"
#include "ViewProviderImagePlane.h"
@@ -469,6 +470,8 @@ Application::Application(bool GUIenabled)
Base::Interpreter().addType(&ViewProviderPy::Type, module, "ViewProvider");
Base::Interpreter().addType(
&ViewProviderDocumentObjectPy::Type, module, "ViewProviderDocumentObject");
+ Base::Interpreter().addType(
+ &ViewProviderGeometryObjectPy::Type, module, "ViewProviderGeometryObject");
Base::Interpreter().addType(&ViewProviderLinkPy::Type, module, "ViewProviderLink");
}
diff --git a/src/Gui/ViewProviderGeometryObject.cpp b/src/Gui/ViewProviderGeometryObject.cpp
index a5820c48dd..661d6be980 100644
--- a/src/Gui/ViewProviderGeometryObject.cpp
+++ b/src/Gui/ViewProviderGeometryObject.cpp
@@ -71,7 +71,7 @@ const App::PropertyIntegerConstraint::Constraints intPercent = {0, 100, 5};
ViewProviderGeometryObject::ViewProviderGeometryObject()
{
- App::Material mat = getDefaultMaterial();
+ App::Material mat = getUserDefinedMaterial();
long initialTransparency = toPercent(mat.transparency);
static const char* dogroup = "Display Options";
@@ -115,7 +115,7 @@ ViewProviderGeometryObject::~ViewProviderGeometryObject()
pcBoundColor->unref();
}
-App::Material ViewProviderGeometryObject::getDefaultMaterial() const
+App::Material ViewProviderGeometryObject::getUserDefinedMaterial()
{
ParameterGrp::handle hGrp =
App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View");
diff --git a/src/Gui/ViewProviderGeometryObject.h b/src/Gui/ViewProviderGeometryObject.h
index 6b2d745c31..44ef6dc80a 100644
--- a/src/Gui/ViewProviderGeometryObject.h
+++ b/src/Gui/ViewProviderGeometryObject.h
@@ -96,6 +96,7 @@ public:
/// Get the python wrapper for that ViewProvider
PyObject* getPyObject() override;
+ static App::Material getUserDefinedMaterial();
protected:
/// get called by the container whenever a property has been changed
@@ -110,7 +111,6 @@ protected:
private:
void setSoMaterial(const App::Material& source);
- App::Material getDefaultMaterial() const;
bool isSelectionEnabled() const;
protected:
diff --git a/src/Gui/ViewProviderGeometryObjectPy.xml b/src/Gui/ViewProviderGeometryObjectPy.xml
index a24ec3bfbb..d5a9625f89 100644
--- a/src/Gui/ViewProviderGeometryObjectPy.xml
+++ b/src/Gui/ViewProviderGeometryObjectPy.xml
@@ -13,5 +13,13 @@
This is the ViewProvider geometry class
+
+
+ getUserDefinedMaterial() -> object
+
+ Get a material object with the user-defined colors.
+
+
+
diff --git a/src/Gui/ViewProviderGeometryObjectPyImp.cpp b/src/Gui/ViewProviderGeometryObjectPyImp.cpp
index 98ba0ac5d4..c7dfba3af8 100644
--- a/src/Gui/ViewProviderGeometryObjectPyImp.cpp
+++ b/src/Gui/ViewProviderGeometryObjectPyImp.cpp
@@ -28,6 +28,7 @@
#endif
#include
+#include
#include
#include "ViewProviderGeometryObjectPy.h"
@@ -68,6 +69,12 @@ PyObject* ViewProviderGeometryObjectPy::getCustomAttributes(const char* attr) co
return nullptr;
}
+PyObject* ViewProviderGeometryObjectPy::getUserDefinedMaterial()
+{
+ App::Material mat = ViewProviderGeometryObject::getUserDefinedMaterial();
+ return new App::MaterialPy(new App::Material(mat));
+}
+
int ViewProviderGeometryObjectPy::setCustomAttributes(const char* attr, PyObject* obj)
{
ViewProviderGeometryObject* vp = getViewProviderGeometryObjectPtr();