diff --git a/src/Gui/ViewProviderPlane.cpp b/src/Gui/ViewProviderPlane.cpp index 40f5672f3..9e60c2a9c 100644 --- a/src/Gui/ViewProviderPlane.cpp +++ b/src/Gui/ViewProviderPlane.cpp @@ -64,13 +64,15 @@ PROPERTY_SOURCE(Gui::ViewProviderPlane, Gui::ViewProviderGeometryObject) ViewProviderPlane::ViewProviderPlane() { + + ADD_PROPERTY(Size,(1.0)); pMat = new SoMaterial(); pMat->ref(); - const float size = 10; // Note: If you change this, you need to also adapt App/Plane.cpp getBoundBox() + float size = Size.getValue(); // Note: If you change this, you need to also adapt App/Plane.cpp getBoundBox() - static const SbVec3f verts[4] = + SbVec3f verts[4] = { SbVec3f(size,size,0), SbVec3f(size,-size,0), SbVec3f(-size,-size,0), SbVec3f(-size,size,0), @@ -106,7 +108,19 @@ ViewProviderPlane::~ViewProviderPlane() void ViewProviderPlane::onChanged(const App::Property* prop) { - ViewProviderGeometryObject::onChanged(prop); + if (prop == &Size){ + float size = Size.getValue(); // Note: If you change this, you need to also adapt App/Plane.cpp getBoundBox() + + SbVec3f verts[4] = + { + SbVec3f(size,size,0), SbVec3f(size,-size,0), + SbVec3f(-size,-size,0), SbVec3f(-size,size,0), + }; + + pCoords->point.setValues(0, 4, verts); + } + else + ViewProviderGeometryObject::onChanged(prop); } std::vector ViewProviderPlane::getDisplayModes(void) const diff --git a/src/Gui/ViewProviderPlane.h b/src/Gui/ViewProviderPlane.h index fef1575f3..5547cc5d6 100644 --- a/src/Gui/ViewProviderPlane.h +++ b/src/Gui/ViewProviderPlane.h @@ -49,6 +49,8 @@ public: ViewProviderPlane(void); virtual ~ViewProviderPlane(); + App::PropertyFloat Size; + void attach(App::DocumentObject *); void updateData(const App::Property*); std::vector getDisplayModes(void) const;