Base: extend Placement/Rotation API

* Add Placement::isSame() and expose to Python
* Add Placement::multRight/Placement::multLeft
* Fix PlacementPy::rotate
* Add Rotation::multRight/Rotation::multLeft
* Add a test feature FeatureTestPlacement for uni tests
* Add unit tests
This commit is contained in:
wmayer
2022-08-09 11:54:05 +02:00
parent b35f66e7c6
commit 00bdd16dff
11 changed files with 217 additions and 20 deletions

View File

@@ -212,3 +212,26 @@ DocumentObjectExecReturn *FeatureTestColumn::execute()
Value.setValue(decodeColumn(Column.getStrValue(), Silent.getValue()));
return nullptr;
}
// ----------------------------------------------------------------------------
PROPERTY_SOURCE(App::FeatureTestPlacement, App::DocumentObject)
FeatureTestPlacement::FeatureTestPlacement()
{
ADD_PROPERTY_TYPE(Input1, (Base::Placement()), "Test", Prop_None, "");
ADD_PROPERTY_TYPE(Input2, (Base::Placement()), "Test", Prop_None, "");
ADD_PROPERTY_TYPE(MultLeft, (Base::Placement()), "Test", Prop_Output, "");
ADD_PROPERTY_TYPE(MultRight, (Base::Placement()), "Test", Prop_Output, "");
}
DocumentObjectExecReturn *FeatureTestPlacement::execute()
{
Base::Placement p1 = Input1.getValue();
Base::Placement q1 = Input1.getValue();
Base::Placement p2 = Input2.getValue();
MultLeft.setValue(p1.multLeft(p2));
MultRight.setValue(q1.multRight(p2));
return nullptr;
}