From 392ee1c88d2ef48e646a4d211e63fae0dedf3af5 Mon Sep 17 00:00:00 2001 From: azv Date: Thu, 21 Apr 2016 14:02:28 +0300 Subject: [PATCH] Fix regression in TestConstraintConcidence.py --- .../SketchPlugin_ConstraintCoincidence.cpp | 89 ------------------- .../SketchPlugin_ConstraintCoincidence.h | 4 - .../Test/TestConstraintConcidence.py | 2 +- 3 files changed, 1 insertion(+), 94 deletions(-) diff --git a/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.cpp b/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.cpp index ed4095908..4b9a022bf 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.cpp +++ b/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.cpp @@ -6,26 +6,8 @@ #include "SketchPlugin_ConstraintCoincidence.h" -#include -#include -#include -#include - #include -#include -#include -#include -#include -#include - -#include -#include -#include - -/// \brief Update coordinates of the point to be correctly placed on the feature -static void adjustPointOnEntity(std::shared_ptr thePoint, FeaturePtr theFeature); - SketchPlugin_ConstraintCoincidence::SketchPlugin_ConstraintCoincidence() { } @@ -49,74 +31,3 @@ AISObjectPtr SketchPlugin_ConstraintCoincidence::getAISObject(AISObjectPtr thePr thePrevious); return anAIS; } - -void SketchPlugin_ConstraintCoincidence::attributeChanged(const std::string& theID) -{ - if (theID == ENTITY_A() || theID == ENTITY_B()) { - AttributeRefAttrPtr anAttrA = - std::dynamic_pointer_cast(attribute(ENTITY_A())); - AttributeRefAttrPtr anAttrB = - std::dynamic_pointer_cast(attribute(ENTITY_B())); - - if (!anAttrA || !anAttrB || (!anAttrA->isObject() && !anAttrB->isObject())) - return; - - if (anAttrA->isObject()) { - AttributeRefAttrPtr aTransient = anAttrA; - anAttrA = anAttrB; - anAttrB = aTransient; - } - - std::shared_ptr aPoint = - std::dynamic_pointer_cast(anAttrA->attr()); - FeaturePtr aFeature; - if (anAttrB->object()) - aFeature = ModelAPI_Feature::feature(anAttrB->object()); - - // Adjust position of a point lying on a line or arc - if (aPoint && aFeature) - adjustPointOnEntity(aPoint, aFeature); - } -} - - - - -// ======= Auxiliary functions ================================================ -void adjustPointOnEntity(std::shared_ptr thePoint, FeaturePtr theFeature) -{ - if (theFeature->getKind() == SketchPlugin_Line::ID()) { - // project point on line - std::shared_ptr aStart = std::dynamic_pointer_cast( - theFeature->attribute(SketchPlugin_Line::START_ID())); - std::shared_ptr aEnd = std::dynamic_pointer_cast( - theFeature->attribute(SketchPlugin_Line::END_ID())); - - std::shared_ptr aLine(new GeomAPI_Lin2d(aStart->pnt(), aEnd->pnt())); - std::shared_ptr aProjected = aLine->project(thePoint->pnt()); - thePoint->setValue(aProjected); - } - else if (theFeature->getKind() == SketchPlugin_Circle::ID()) { - // project point on circle - std::shared_ptr aCenter = std::dynamic_pointer_cast( - theFeature->attribute(SketchPlugin_Circle::CENTER_ID())); - double aRadius = theFeature->real(SketchPlugin_Circle::RADIUS_ID())->value(); - - std::shared_ptr aDir(new GeomAPI_Dir2d(1.0, 0.0)); - std::shared_ptr aCircle(new GeomAPI_Circ2d(aCenter->pnt(), aDir, aRadius)); - - std::shared_ptr aProjected = aCircle->project(thePoint->pnt()); - thePoint->setValue(aProjected); - } - else if (theFeature->getKind() == SketchPlugin_Arc::ID()) { - // project point on arc - std::shared_ptr aCenter = std::dynamic_pointer_cast( - theFeature->attribute(SketchPlugin_Arc::CENTER_ID())); - std::shared_ptr aStart = std::dynamic_pointer_cast( - theFeature->attribute(SketchPlugin_Arc::START_ID())); - - std::shared_ptr aCircle(new GeomAPI_Circ2d(aCenter->pnt(), aStart->pnt())); - std::shared_ptr aProjected = aCircle->project(thePoint->pnt()); - thePoint->setValue(aProjected); - } -} diff --git a/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.h b/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.h index c9deb1e35..ffc4ce1b9 100644 --- a/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.h +++ b/src/SketchPlugin/SketchPlugin_ConstraintCoincidence.h @@ -44,10 +44,6 @@ class SketchPlugin_ConstraintCoincidence : public SketchPlugin_ConstraintBase /// \brief Request for initialization of data model of the feature: adding all attributes SKETCHPLUGIN_EXPORT virtual void initAttributes(); - /// Called on change of any argument-attribute of this object - /// \param theID identifier of changed attribute - SKETCHPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID); - /// \brief Use plugin manager for features creation SketchPlugin_ConstraintCoincidence(); }; diff --git a/src/SketchPlugin/Test/TestConstraintConcidence.py b/src/SketchPlugin/Test/TestConstraintConcidence.py index bf8a2b71d..a0a7bc3cc 100644 --- a/src/SketchPlugin/Test/TestConstraintConcidence.py +++ b/src/SketchPlugin/Test/TestConstraintConcidence.py @@ -204,7 +204,7 @@ checkPointOnArc(aCircleCenter, aSketchArc) #========================================================================= # Check center of circle is still in origin #========================================================================= -#assert (aCircleCenter.x() == 0. and aCircleCenter.y() == 0.) +assert (aCircleCenter.x() == 0. and aCircleCenter.y() == 0.) #========================================================================= # End of test #========================================================================= -- 2.39.2