Introduce global placement calculations

This commit is contained in:
Stefan Tröger
2017-01-29 16:09:08 +01:00
committed by wmayer
parent d5022483c6
commit 61020c0b27
4 changed files with 59 additions and 0 deletions

View File

@@ -160,6 +160,25 @@ DocumentObject* GeoFeatureGroupExtension::getGroupOfObject(const DocumentObject*
return 0;
}
Base::Placement GeoFeatureGroupExtension::globalGroupPlacement() {
return recursiveGroupPlacement(this);
}
Base::Placement GeoFeatureGroupExtension::recursiveGroupPlacement(GeoFeatureGroupExtension* group) {
auto inList = group->getExtendedObject()->getInList();
for(auto* link : inList) {
if(link->hasExtension(App::GeoFeatureGroupExtension::getExtensionClassTypeId()))
return recursiveGroupPlacement(link->getExtensionByType<GeoFeatureGroupExtension>()) * group->placement().getValue();
}
return group->placement().getValue();
}
// Python feature ---------------------------------------------------------
namespace App {