X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_WidgetPoint2d.cpp;h=8782a90acd49dfcecd4be4b191d7e037bf019a00;hb=ac6c4b849218e6f1a45c0a21e46c5fda401c38f0;hp=c7dde30bf0c3420ad90d6f24be573fc0a8147186;hpb=a94fc319f2aa64b43c9a73b5ff7063923648faec;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetPoint2d.cpp b/src/PartSet/PartSet_WidgetPoint2d.cpp index c7dde30bf..8782a90ac 100644 --- a/src/PartSet/PartSet_WidgetPoint2d.cpp +++ b/src/PartSet/PartSet_WidgetPoint2d.cpp @@ -244,7 +244,7 @@ bool PartSet_WidgetPoint2D::setSelectionCustom(const ModuleBase_ViewerPrsPtr& th GeomShapePtr aShape = theValue->shape(); if (aShape.get() && !aShape->isNull()) { Handle(V3d_View) aView = myWorkshop->viewer()->activeView(); - double aX, aY; + double aX = 0, aY = 0; const TopoDS_Shape& aTDShape = aShape->impl(); if (getPoint2d(aView, aTDShape, aX, aY)) { fillRefAttribute(aX, aY, theValue); @@ -307,7 +307,7 @@ bool PartSet_WidgetPoint2D::setSelection(QList& theValu GeomShapePtr aShape = aValue->shape(); if (aShape.get() && !aShape->isNull()) { Handle(V3d_View) aView = myWorkshop->viewer()->activeView(); - double aX, aY; + double aX = 0, aY = 0; const TopoDS_Shape& aTDShape = aShape->impl(); if (getPoint2d(aView, aTDShape, aX, aY)) { isDone = setPoint(aX, aY); @@ -362,7 +362,8 @@ bool PartSet_WidgetPoint2D::storeValueCustom() if (myFeature->isMacro()) { // Moving points of macro-features has been processed directly (without solver) aPoint->setValue(myXSpin->value(), myYSpin->value()); - moveObject(myFeature); + updateObject(myFeature); + } else { if (!aPoint->isInitialized()) aPoint->setValue(0., 0.); @@ -441,14 +442,17 @@ QList PartSet_WidgetPoint2D::getControls() const return aControls; } +//******************************************************************** +void PartSet_WidgetPoint2D::selectionModes(int& theModuleSelectionModes, QIntList& theModes) +{ + theModuleSelectionModes = -1; + theModes << TopAbs_VERTEX; + theModes << TopAbs_EDGE; +} +//******************************************************************** void PartSet_WidgetPoint2D::activateCustom() { - QIntList aModes; - aModes << TopAbs_VERTEX; - aModes << TopAbs_EDGE; - myWorkshop->activateSubShapesSelection(aModes); - if (!isEditingMode()) { FeaturePtr aFeature = feature(); if (aFeature.get() && aFeature->getKind() == SketchPlugin_Point::ID()) @@ -471,7 +475,6 @@ void PartSet_WidgetPoint2D::deactivate() storeValue(); ModuleBase_ModelWidget::deactivate(); - myWorkshop->deactivateSubShapesSelection(); } bool PartSet_WidgetPoint2D::getPoint2d(const Handle(V3d_View)& theView, @@ -617,11 +620,15 @@ void PartSet_WidgetPoint2D::mouseReleased(ModuleBase_IViewWindow* theWindow, QMo else { anExternal = true; if (!aFixedObject.get()) - aFixedObject = PartSet_Tools::createFixedObjectByExternal(aShape, aObject, mySketch); + { + FeaturePtr aCreatedFeature; + aFixedObject = PartSet_Tools::createFixedObjectByExternal(aGeomShape, aObject, mySketch, + false, aCreatedFeature); + } } } if (anExternal) { - double aX, aY; + double aX = 0, aY = 0; if (getPoint2d(aView, aShape, aX, aY) && isFeatureContainsPoint(myFeature, aX, aY)) { // do not create a constraint to the point, which already used by the feature // if the feature contains the point, focus is not switched @@ -668,7 +675,7 @@ void PartSet_WidgetPoint2D::mouseReleased(ModuleBase_IViewWindow* theWindow, QMo } } if (!anExternal) { - double aX, aY; + double aX = 0, aY = 0; bool isProcessed = false; if (getPoint2d(aView, aShape, aX, aY) && isFeatureContainsPoint(myFeature, aX, aY)) { // when the point is selected, the coordinates of the point should be set into the attribute @@ -721,15 +728,18 @@ void PartSet_WidgetPoint2D::mouseReleased(ModuleBase_IViewWindow* theWindow, QMo ResultPtr aFixedObject = PartSet_Tools::findFixedObjectByExternal(aShape, aAIS->object(), mySketch); if (!aFixedObject.get()) + { + FeaturePtr aCreatedFeature; aFixedObject = PartSet_Tools::createFixedByExternalCenter(aAIS->object(), aAIS->edge(), - aAIS->centerType(), mySketch); + aAIS->centerType(), mySketch, false, aCreatedFeature); + } if (aFixedObject.get()) setConstraintToObject(aFixedObject); // fignal updated should be flushed in order to visualize possible created // external objects e.g. selection of trihedron axis when input end arc point updateObject(feature()); - double aX, aY; + double aX = 0, aY = 0; if (getPoint2d(aView, aShape, aX, aY)) { // do not create a constraint to the point, which already used by the feature // if the feature contains the point, focus is not switched @@ -742,11 +752,11 @@ void PartSet_WidgetPoint2D::mouseReleased(ModuleBase_IViewWindow* theWindow, QMo else { // A case when point is taken from mouse event gp_Pnt aPoint = PartSet_Tools::convertClickToPoint(theEvent->pos(), theWindow->v3dView()); - double aX, anY; - PartSet_Tools::convertTo2D(aPoint, mySketch, aView, aX, anY); + double aX = 0, aY = 0; + PartSet_Tools::convertTo2D(aPoint, mySketch, aView, aX, aY); // if the feature contains the point, focus is not switched - if (!setPoint(aX, anY) || isFeatureContainsPoint(myFeature, aX, anY)) + if (!setPoint(aX, aY) || isFeatureContainsPoint(myFeature, aX, aY)) return; emit focusOutWidget(this); @@ -779,13 +789,13 @@ void PartSet_WidgetPoint2D::mouseMoved(ModuleBase_IViewWindow* theWindow, QMouse gp_Pnt aPoint = PartSet_Tools::convertClickToPoint(theEvent->pos(), theWindow->v3dView()); - double aX, anY; - PartSet_Tools::convertTo2D(aPoint, mySketch, theWindow->v3dView(), aX, anY); + double aX = 0, aY = 0; + PartSet_Tools::convertTo2D(aPoint, mySketch, theWindow->v3dView(), aX, aY); if (myState != ModifiedInViewer) storeCurentValue(); // we need to block the value state change bool isBlocked = blockValueState(true); - setPoint(aX, anY); + setPoint(aX, aY); blockValueState(isBlocked); setValueState(ModifiedInViewer); }