From 9bd87623656e58463e5e60cdb31d5f6104e085ec Mon Sep 17 00:00:00 2001 From: jriegel Date: Mon, 22 Sep 2014 15:05:20 +0200 Subject: [PATCH] Assembly: Plane ViewProvider Size property and smaller standard size --- src/Gui/ViewProviderPlane.cpp | 20 +++++++++++++++++--- src/Gui/ViewProviderPlane.h | 2 ++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Gui/ViewProviderPlane.cpp b/src/Gui/ViewProviderPlane.cpp index 40f5672f32..9e60c2a9cb 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 fef1575f32..5547cc5d60 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;