Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_CREATED));
}
-/*std::shared_ptr<GeomDataAPI_Point2D> PartSet_Tools::
- findAttributePoint(CompositeFeaturePtr theSketch, double theX, double theY,
- double theTolerance, const QList<FeaturePtr>& theIgnore)
-{
- std::shared_ptr<GeomAPI_Pnt2d> aClickedPoint = std::shared_ptr<GeomAPI_Pnt2d>(
- new GeomAPI_Pnt2d(theX, theY));
-
- std::list<std::shared_ptr<ModelAPI_Attribute> > anAttiributes;
- for (int i = 0; i < theSketch->numberOfSubs(); i++) {
- FeaturePtr aFeature = theSketch->subFeature(i);
- if (!theIgnore.contains(aFeature)) {
- anAttiributes = aFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
-
- std::list<std::shared_ptr<ModelAPI_Attribute> >::const_iterator anIt;
- for (anIt = anAttiributes.cbegin(); anIt != anAttiributes.cend(); ++anIt) {
- std::shared_ptr<GeomDataAPI_Point2D> aCurPoint =
- std::dynamic_pointer_cast<GeomDataAPI_Point2D>(*anIt);
- double x = aCurPoint->x();
- double y = aCurPoint->y();
- if (aCurPoint && (aCurPoint->pnt()->distance(aClickedPoint) < theTolerance)) {
- return aCurPoint;
- }
- }
- }
- }
- return std::shared_ptr<GeomDataAPI_Point2D>();
-}*/
-
-
-std::shared_ptr<GeomDataAPI_Point2D> PartSet_Tools::findFirstEqualPointInArgumentFeatures(
- const FeaturePtr& theFeature, const std::shared_ptr<GeomAPI_Pnt2d>& thePoint)
-{
- std::shared_ptr<GeomDataAPI_Point2D> aFeaturePoint;
-
- // may be feature is not updated yet, execute is not performed and references features
- // are not created. Case: rectangle macro feature
- ModuleBase_Tools::flushUpdated(theFeature);
-
- std::list<AttributePtr> anAttributes = theFeature->data()->attributes(
- ModelAPI_AttributeRefList::typeId());
- std::list<AttributePtr>::const_iterator anIt = anAttributes.begin(), aLast = anAttributes.end();
- for (; anIt != aLast && !aFeaturePoint.get(); anIt++) {
- std::shared_ptr<ModelAPI_AttributeRefList> aCurSelList =
- std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(*anIt);
- for (int i = 0, aNb = aCurSelList->size(); i < aNb && !aFeaturePoint.get(); i++) {
- ObjectPtr anObject = aCurSelList->object(i);
- FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(anObject);
- if (aFeature.get())
- aFeaturePoint = PartSet_Tools::findFirstEqualPoint(aFeature, thePoint);
- }
- }
- return aFeaturePoint;
-}
-
-std::shared_ptr<GeomDataAPI_Point2D> PartSet_Tools::findFirstEqualPoint(
- const FeaturePtr& theFeature,
- const std::shared_ptr<GeomAPI_Pnt2d>& thePoint)
-{
- std::shared_ptr<GeomDataAPI_Point2D> aFPoint;
-
- // find the given point in the feature attributes
- std::list<std::shared_ptr<ModelAPI_Attribute> > anAttiributes =
- theFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
- std::list<std::shared_ptr<ModelAPI_Attribute> >::const_iterator anIt = anAttiributes.begin(),
- aLast = anAttiributes.end();
- ModelAPI_ValidatorsFactory* aValidators = ModelAPI_Session::get()->validators();
-
- for (; anIt != aLast && !aFPoint; anIt++) {
- std::shared_ptr<GeomDataAPI_Point2D> aCurPoint =
- std::dynamic_pointer_cast<GeomDataAPI_Point2D>(*anIt);
- if (aCurPoint && aCurPoint->isInitialized() &&
- aValidators->isCase(theFeature, aCurPoint->id()) &&
- (aCurPoint->pnt()->distance(thePoint) < Precision::Confusion())) {
- aFPoint = aCurPoint;
- break;
- }
- }
- return aFPoint;
-}
-
-std::shared_ptr<GeomDataAPI_Point2D> PartSet_Tools::findFirstEqualPointInSketch(
- const CompositeFeaturePtr& theSketch,
- const std::shared_ptr<GeomDataAPI_Point2D>& theFeaturePoint,
- const std::shared_ptr<GeomAPI_Pnt2d>& thePoint)
-{
- // get all sketch features. If the point with the given coordinates belong to any sketch feature,
- // the constraint is created between the feature point and the found sketch point
- std::shared_ptr<ModelAPI_Data> aData = theSketch->data();
- std::shared_ptr<ModelAPI_AttributeRefList> aRefList = std::dynamic_pointer_cast<
- ModelAPI_AttributeRefList>(aData->attribute(SketchPlugin_Sketch::FEATURES_ID()));
-
- std::list<ObjectPtr> aFeatures = aRefList->list();
- std::list<ObjectPtr>::const_iterator anIt = aFeatures.begin(), aLast = aFeatures.end();
- std::list<std::shared_ptr<ModelAPI_Attribute> > anAttiributes;
-
- FeaturePtr aFeatureOfPoint = ModelAPI_Feature::feature(theFeaturePoint->owner());
- std::shared_ptr<GeomDataAPI_Point2D> aFPoint;
- for (; anIt != aLast; anIt++) {
- FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(*anIt);
- if (!aFeature.get() || aFeatureOfPoint == aFeature)
- continue;
- aFPoint = PartSet_Tools::findFirstEqualPoint(aFeature, thePoint);
- if (aFPoint.get())
- break;
- }
- return aFPoint;
-}
-
std::shared_ptr<GeomAPI_Pln> PartSet_Tools::sketchPlane(CompositeFeaturePtr theSketch)
{
std::shared_ptr<GeomAPI_Pln> aPlane;
// Create arc
aMyFeature = theSketch->addFeature(SketchPlugin_Arc::ID());
if (theShape.Orientation() == TopAbs_REVERSED)
- aMyFeature->boolean(SketchPlugin_Arc::INVERSED_ID())->setValue(true);
+ aMyFeature->boolean(SketchPlugin_Arc::REVERSED_ID())->setValue(true);
}
else {
// Create circle