- else {
- myFeatureMap[myBaseFeature] = anEntityID;
-
- std::list<AttributePtr> aPoints =
- myBaseFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
- std::list<AttributePtr>::iterator anIt = aPoints.begin();
- for (; anIt != aPoints.end(); ++anIt) {
- Slvs_hEntity anAttr = myGroup->getAttributeId(*anIt);
-
- // Check the attribute changes coordinates
- Slvs_Entity anAttrEnt = myStorage->getEntity(anAttr);
- double aDeltaX = myStorage->getParameter(anAttrEnt.param[0]).val;
- double aDeltaY = myStorage->getParameter(anAttrEnt.param[1]).val;
- std::shared_ptr<GeomDataAPI_Point2D> aPt =
- std::dynamic_pointer_cast<GeomDataAPI_Point2D>(*anIt);
- aDeltaX -= aPt->x();
- aDeltaY -= aPt->y();
- if (aDeltaX * aDeltaX + aDeltaY * aDeltaY >= tolerance * tolerance) {
- theAttributes.push_back(anAttr);
- // update point coordinates
- double aNewPos[2] = {aPt->x(), aPt->y()};
- for (int i = 0; i < 2; i++) {
- Slvs_Param aParam = myStorage->getParameter(anAttrEnt.param[i]);
- aParam.val = aNewPos[i];
- myStorage->updateParameter(aParam);
- }
- }
- else
- theIsFullyMoved = false;
- }