/// Converts a 2D sketch space point into point in 3D space
/// \param theX an X coordinate
/// \param theY an Y coordinate
/// Converts a 2D sketch space point into point in 3D space
/// \param theX an X coordinate
/// \param theY an Y coordinate
virtual void removeFeature(std::shared_ptr<ModelAPI_Feature> theFeature);
/// Returns the number of sub-elements
virtual void removeFeature(std::shared_ptr<ModelAPI_Feature> theFeature);
/// Returns the number of sub-elements
/// Returns the sub-feature by zero-base index
SKETCHPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Feature>
/// Returns the sub-feature by zero-base index
SKETCHPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Feature>
SKETCHPLUGIN_EXPORT virtual int subFeatureId(const int theIndex) const;
/// Returns true if feature or reuslt belong to this composite feature as subs
SKETCHPLUGIN_EXPORT virtual int subFeatureId(const int theIndex) const;
/// Returns true if feature or reuslt belong to this composite feature as subs
/// \param theAttributeID an attribute string
/// \param theIndex an index of the result
static void createPoint2DResult(ModelAPI_Feature* theFeature,
/// \param theAttributeID an attribute string
/// \param theIndex an index of the result
static void createPoint2DResult(ModelAPI_Feature* theFeature,
/// Add new feature and fill the data of the feature by the data of the parameter feature.
/// The name of the created feature stays unique.
/// \param theFeature a source feature
/// Add new feature and fill the data of the feature by the data of the parameter feature.
/// The name of the created feature stays unique.
/// \param theFeature a source feature
/// Customize presentation of the feature
virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs)
/// Customize presentation of the feature
virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs)