Datums not selectable during edit

This commit is contained in:
Stefan Tröger
2016-01-16 20:44:25 +01:00
parent 463070b1f6
commit 7e97cdaafe
3 changed files with 35 additions and 4 deletions

View File

@@ -85,7 +85,9 @@ ViewProviderDatum::ViewProviderDatum()
{
pShapeSep = new SoSeparator();
pShapeSep->ref();
pPickStyle = new SoPickStyle();
pPickStyle->ref();
// set default color for datums (golden yellow with 60% transparency)
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath (
"User parameter:BaseApp/Preferences/Mod/PartDesign");
@@ -103,6 +105,7 @@ ViewProviderDatum::ViewProviderDatum()
ViewProviderDatum::~ViewProviderDatum()
{
pShapeSep->unref();
pPickStyle->unref();
}
void ViewProviderDatum::attach(App::DocumentObject *obj)
@@ -125,15 +128,16 @@ void ViewProviderDatum::attach(App::DocumentObject *obj)
hints->vertexOrdering.setValue(SoShapeHints::COUNTERCLOCKWISE);
SoDrawStyle* fstyle = new SoDrawStyle();
fstyle->style = SoDrawStyle::FILLED;
SoPickStyle* pickStyle = new SoPickStyle();
pickStyle->style = SoPickStyle::SHAPE;
fstyle->lineWidth = 3;
fstyle->pointSize = 5;
pPickStyle->style = SoPickStyle::SHAPE;
SoMaterialBinding* matBinding = new SoMaterialBinding;
matBinding->value = SoMaterialBinding::OVERALL;
SoSeparator* sep = new SoSeparator();
sep->addChild(hints);
sep->addChild(fstyle);
sep->addChild(pickStyle);
sep->addChild(pPickStyle);
sep->addChild(matBinding);
sep->addChild(pcShapeMaterial);
sep->addChild(pShapeSep);
@@ -388,3 +392,16 @@ SbBox3f ViewProviderDatum::defaultBoundBox () {
return SbBox3f ( -defaultSize, -defaultSize, -defaultSize,
defaultSize, defaultSize, defaultSize );
}
bool ViewProviderDatum::isPickable() {
return bool(pPickStyle->style.getValue() == SoPickStyle::SHAPE);
}
void ViewProviderDatum::setPickable(bool val) {
if(val)
pPickStyle->style = SoPickStyle::SHAPE;
else
pPickStyle->style = SoPickStyle::UNPICKABLE;
}