Gui: expose ViewProviderGeometryObject::getUserDefinedMaterial() to Python

This commit is contained in:
wmayer
2024-04-25 17:56:58 +02:00
parent e85954e8a3
commit e591b95228
5 changed files with 21 additions and 3 deletions

View File

@@ -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");
}

View File

@@ -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");

View File

@@ -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:

View File

@@ -13,5 +13,13 @@
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net" />
<UserDocu>This is the ViewProvider geometry class</UserDocu>
</Documentation>
<Methode Name="getUserDefinedMaterial" Static="true" NoArgs="true">
<Documentation>
<UserDocu>getUserDefinedMaterial() -> object
Get a material object with the user-defined colors.
</UserDocu>
</Documentation>
</Methode>
</PythonExport>
</GenerateModel>

View File

@@ -28,6 +28,7 @@
#endif
#include <App/GeoFeature.h>
#include <App/MaterialPy.h>
#include <App/PropertyStandard.h>
#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();