Extensions: Introduce classes and port App groups

This commit is contained in:
Stefan Tröger
2016-05-26 21:42:12 +02:00
committed by wmayer
parent a50bd5dc88
commit c5a2419e14
55 changed files with 17135 additions and 191 deletions

View File

@@ -60,7 +60,7 @@ bool ReferenceSelection::allow(App::Document* pDoc, App::DocumentObject* pObj, c
{
// TODO review this function (2015-09-04, Fat-Zer)
PartDesign::Body *body;
App::GeoFeatureGroup *geoGroup;
App::DocumentObject* originGroupObject = nullptr;
if ( support ) {
body = PartDesign::Body::findBodyOf (support);
@@ -69,12 +69,16 @@ bool ReferenceSelection::allow(App::Document* pDoc, App::DocumentObject* pObj, c
}
if ( body ) { // Search for Part of the body
geoGroup = App::GeoFeatureGroup::getGroupOfObject ( body ) ;
originGroupObject = App::OriginGroupExtension::getGroupOfObject ( body ) ;
} else if ( support ) { // if no body search part for support
geoGroup = App::GeoFeatureGroup::getGroupOfObject ( support ) ;
originGroupObject = App::OriginGroupExtension::getGroupOfObject ( support ) ;
} else { // fallback to active part
geoGroup = PartDesignGui::getActivePart ( );
originGroupObject = PartDesignGui::getActivePart ( );
}
App::OriginGroupExtension* originGroup = nullptr;
if(originGroupObject)
originGroup = originGroupObject->getExtensionByType<App::OriginGroupExtension>();
// Don't allow selection in other document
if ( support && pDoc != support->getDocument() ) {
@@ -96,8 +100,8 @@ bool ReferenceSelection::allow(App::Document* pDoc, App::DocumentObject* pObj, c
if (body->getOrigin ()->hasObject (pObj) ) {
return true;
}
} else if (geoGroup && geoGroup->isDerivedFrom ( App::OriginGroup::getClassTypeId () ) ) {
if ( static_cast<App::OriginGroup *>(geoGroup)->getOrigin ()->hasObject (pObj) ) {
} else if (originGroup ) {
if ( originGroup->getOrigin ()->hasObject (pObj) ) {
return true;
}
}