- MODELGEOMALGO_EXPORT void getPointsOfReference(const std::shared_ptr<ModelAPI_Object>& theObject,
- const std::string& theReferenceFeatureKind,
- std::set<std::shared_ptr<GeomDataAPI_Point2D> >& theAttributes,
- const std::string& theObjectFeatureKind = "",
- const std::string& theObjectFeatureAttribute = "",
- const bool isSkipFeatureAttributes = true);
+ static MODELGEOMALGO_EXPORT
+ void getPointsOfReference(const std::shared_ptr<ModelAPI_Object>& theObject,
+ const std::string& theReferenceFeatureKind,
+ std::set<std::shared_ptr<GeomDataAPI_Point2D> >& theAttributes,
+ const std::string& theObjectFeatureKind = "",
+ const std::string& theObjectFeatureAttribute = "",
+ const bool isSkipFeatureAttributes = true);
+
+ /// Find points of intersection between the shape of the feature and all features in the sketch
+ /// \param theBaseFeature a feature: line, arc or circle that will be intersected
+ /// \param theFeatures a container of features to intersect with the base feature
+ /// \param thePoints a container of 3D points belong to the shape
+ /// \param theObjectToPoint a container of object to point
+ typedef std::map<std::shared_ptr<GeomAPI_Pnt>,
+ std::pair<std::list<std::shared_ptr<GeomDataAPI_Point2D> >,
+ std::list<std::shared_ptr<ModelAPI_Object> > > > PointToRefsMap;
+
+ static MODELGEOMALGO_EXPORT void getPointsIntersectedShape(
+ const std::shared_ptr<ModelAPI_Feature>& theBaseFeature,
+ const std::list<std::shared_ptr<ModelAPI_Feature> >& theFeatures,
+ PointToRefsMap& thePointToAttributeOrObject);
+
+ static MODELGEOMALGO_EXPORT std::list<std::shared_ptr<GeomAPI_Pnt> > getSetOfPntIntersectedShape(
+ const std::shared_ptr<ModelAPI_Feature>& theBaseFeature,
+ const std::list<std::shared_ptr<ModelAPI_Feature> >& theFeatures);