Salome HOME
projects
/
modules
/
shaper.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix for crash in Object Browser when object was deleted but message not sent
[modules/shaper.git]
/
src
/
SketchPlugin
/
SketchPlugin_MultiTranslation.cpp
diff --git
a/src/SketchPlugin/SketchPlugin_MultiTranslation.cpp
b/src/SketchPlugin/SketchPlugin_MultiTranslation.cpp
index e7b850ec214c9ba4bdcd6a435ce363bad2874b90..71eca57ca89f10927d685525d7996c18a3e12c82 100644
(file)
--- a/
src/SketchPlugin/SketchPlugin_MultiTranslation.cpp
+++ b/
src/SketchPlugin/SketchPlugin_MultiTranslation.cpp
@@
-18,6
+18,8
@@
#include <ModelAPI_Session.h>
#include <ModelAPI_Validator.h>
#include <ModelAPI_Session.h>
#include <ModelAPI_Validator.h>
+#include <SketcherPrs_Factory.h>
+
SketchPlugin_MultiTranslation::SketchPlugin_MultiTranslation()
{
}
SketchPlugin_MultiTranslation::SketchPlugin_MultiTranslation()
{
}
@@
-26,7
+28,7
@@
void SketchPlugin_MultiTranslation::initAttributes()
{
data()->addAttribute(START_POINT_ID(), GeomDataAPI_Point2D::typeId());
data()->addAttribute(END_POINT_ID(), GeomDataAPI_Point2D::typeId());
{
data()->addAttribute(START_POINT_ID(), GeomDataAPI_Point2D::typeId());
data()->addAttribute(END_POINT_ID(), GeomDataAPI_Point2D::typeId());
- data()->addAttribute(NUMBER_OF_COPIES_ID(), ModelAPI_Attribute
Double::typeId()/*ModelAPI_AttributeInteger::typeId()*/
);
+ data()->addAttribute(NUMBER_OF_COPIES_ID(), ModelAPI_Attribute
Integer::typeId()
);
data()->addAttribute(SketchPlugin_Constraint::ENTITY_A(), ModelAPI_AttributeRefList::typeId());
data()->addAttribute(SketchPlugin_Constraint::ENTITY_B(), ModelAPI_AttributeRefList::typeId());
AttributeSelectionListPtr aSelection =
data()->addAttribute(SketchPlugin_Constraint::ENTITY_A(), ModelAPI_AttributeRefList::typeId());
data()->addAttribute(SketchPlugin_Constraint::ENTITY_B(), ModelAPI_AttributeRefList::typeId());
AttributeSelectionListPtr aSelection =
@@
-40,8
+42,7
@@
void SketchPlugin_MultiTranslation::initAttributes()
void SketchPlugin_MultiTranslation::execute()
{
AttributeSelectionListPtr aTranslationObjectRefs = selectionList(TRANSLATION_LIST_ID());
void SketchPlugin_MultiTranslation::execute()
{
AttributeSelectionListPtr aTranslationObjectRefs = selectionList(TRANSLATION_LIST_ID());
- int aNbCopies = (int)(std::dynamic_pointer_cast<ModelAPI_AttributeDouble>(
- attribute(NUMBER_OF_COPIES_ID()))->value());
+ int aNbCopies = integer(NUMBER_OF_COPIES_ID())->value();
// Calculate shift vector
std::shared_ptr<GeomDataAPI_Point2D> aStart = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(
// Calculate shift vector
std::shared_ptr<GeomDataAPI_Point2D> aStart = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(
@@
-50,6
+51,11
@@
void SketchPlugin_MultiTranslation::execute()
attribute(END_POINT_ID()));
if (!aStart || !aEnd || !aStart->isInitialized() || !aEnd->isInitialized())
return;
attribute(END_POINT_ID()));
if (!aStart || !aEnd || !aStart->isInitialized() || !aEnd->isInitialized())
return;
+
+ // make a visible points
+ SketchPlugin_Sketch::createPoint2DResult(this, sketch(), START_POINT_ID(), 0);
+ SketchPlugin_Sketch::createPoint2DResult(this, sketch(), END_POINT_ID(), 1);
+
std::shared_ptr<GeomAPI_XY> aShiftVec(new GeomAPI_XY(aEnd->x() - aStart->x(), aEnd->y() - aStart->y()));
// Wait all objects being created, then send update events
std::shared_ptr<GeomAPI_XY> aShiftVec(new GeomAPI_XY(aEnd->x() - aStart->x(), aEnd->y() - aStart->y()));
// Wait all objects being created, then send update events
@@
-174,8
+180,7
@@
AISObjectPtr SketchPlugin_MultiTranslation::getAISObject(AISObjectPtr thePreviou
AISObjectPtr anAIS = thePrevious;
if (!anAIS) {
AISObjectPtr anAIS = thePrevious;
if (!anAIS) {
-// TODO:
-// anAIS = SketcherPrs_Factory::mirrorConstraint(this, sketch()->coordinatePlane());
+ anAIS = SketcherPrs_Factory::translateConstraint(this, sketch()->coordinatePlane());
}
return anAIS;
}
}
return anAIS;
}
@@
-208,3
+213,4
@@
ObjectPtr SketchPlugin_MultiTranslation::copyFeature(ObjectPtr theObject)
}
return ObjectPtr();
}
}
return ObjectPtr();
}
+