Merge pull request #18126 from Ondsel-Development/core_LCS2

Core datums : Card2 : Core implementation
This commit is contained in:
Chris Hennes
2024-12-06 12:12:04 -05:00
committed by GitHub
60 changed files with 1237 additions and 1232 deletions

View File

@@ -29,7 +29,7 @@
#endif
#include <App/Origin.h>
#include <App/OriginFeature.h>
#include <App/Datums.h>
#include <App/Part.h>
#include <Gui/Application.h>
#include <Gui/CommandT.h>
@@ -516,7 +516,7 @@ bool isFeatureMovable(App::DocumentObject* const feat)
if (feat->hasExtension(Part::AttachExtension::getExtensionClassTypeId())) {
auto attachable = feat->getExtensionByType<Part::AttachExtension>();
App::DocumentObject* support = attachable->AttachmentSupport.getValue();
if (support && !support->isDerivedFrom<App::OriginFeature>()) {
if (support && !support->isDerivedFrom<App::DatumElement>()) {
return false;
}
}
@@ -547,19 +547,19 @@ std::vector<App::DocumentObject*> collectMovableDependencies(std::vector<App::Do
}
if (auto prop = dynamic_cast<App::PropertyLinkSub*>(prim->getPropertyByName("ReferenceAxis"))) {
App::DocumentObject* axis = prop->getValue();
if (axis && !axis->isDerivedFrom<App::OriginFeature>()){
if (axis && !axis->isDerivedFrom<App::DatumElement>()){
unique_objs.insert(axis);
}
}
if (auto prop = dynamic_cast<App::PropertyLinkSub*>(prim->getPropertyByName("Spine"))) {
App::DocumentObject* axis = prop->getValue();
if (axis && !axis->isDerivedFrom<App::OriginFeature>()){
if (axis && !axis->isDerivedFrom<App::DatumElement>()){
unique_objs.insert(axis);
}
}
if (auto prop = dynamic_cast<App::PropertyLinkSub*>(prim->getPropertyByName("AuxillerySpine"))) {
App::DocumentObject* axis = prop->getValue();
if (axis && !axis->isDerivedFrom<App::OriginFeature>()){
if (axis && !axis->isDerivedFrom<App::DatumElement>()){
unique_objs.insert(axis);
}
}
@@ -578,9 +578,9 @@ void relinkToOrigin(App::DocumentObject* feat, PartDesign::Body* targetbody)
if (feat->hasExtension(Part::AttachExtension::getExtensionClassTypeId())) {
auto attachable = feat->getExtensionByType<Part::AttachExtension>();
App::DocumentObject* support = attachable->AttachmentSupport.getValue();
if (support && support->isDerivedFrom<App::OriginFeature>()) {
auto originfeat = static_cast<App::OriginFeature*>(support);
App::OriginFeature* targetOriginFeature = targetbody->getOrigin()->getOriginFeature(originfeat->Role.getValue());
if (support && support->isDerivedFrom<App::DatumElement>()) {
auto originfeat = static_cast<App::DatumElement*>(support);
App::DatumElement* targetOriginFeature = targetbody->getOrigin()->getDatumElement(originfeat->Role.getValue());
if (targetOriginFeature) {
attachable->AttachmentSupport.setValue(static_cast<App::DocumentObject*>(targetOriginFeature), "");
}
@@ -590,9 +590,9 @@ void relinkToOrigin(App::DocumentObject* feat, PartDesign::Body* targetbody)
auto prim = static_cast<PartDesign::ProfileBased*>(feat);
if (auto prop = static_cast<App::PropertyLinkSub*>(prim->getPropertyByName("ReferenceAxis"))) {
App::DocumentObject* axis = prop->getValue();
if (axis && axis->isDerivedFrom<App::OriginFeature>()){
auto originfeat = static_cast<App::OriginFeature*>(axis);
App::OriginFeature* targetOriginFeature = targetbody->getOrigin()->getOriginFeature(originfeat->Role.getValue());
if (axis && axis->isDerivedFrom<App::DatumElement>()){
auto originfeat = static_cast<App::DatumElement*>(axis);
App::DatumElement* targetOriginFeature = targetbody->getOrigin()->getDatumElement(originfeat->Role.getValue());
if (targetOriginFeature) {
prop->setValue(static_cast<App::DocumentObject*>(targetOriginFeature), std::vector<std::string>(0));
}