-// /// Make the base object is splitted by the point attributes
-// /// \param theSplitFeature a result split feature
-// /// \param theBeforeFeature a feature between start point and the 1st point of split feature
-// /// \param theAfterFeature a feature between last point of split feature and the end point
-// /// \param thePoints a list of points where coincidences will be build
-// /// \param theCreatedFeatures a container of created features
-// /// \param theModifiedAttributes a container of attribute on base
-// /// feature to attribute on new feature
- void trimLine(const std::shared_ptr<GeomAPI_Pnt2d>& theStartShapePoint,
+ /// Remove references constraints from attribute of base feature refer to the given attribute
+ /// \param theAttribute an attribute
+ /// \param theModifiedAttributes modifiable container of attributes
+ void removeReferencesToAttribute(const AttributePtr& theAttribute,
+ std::map<AttributePtr, std::list<AttributePtr> >& theBaseRefAttributes);
+
+ /// Updates line length if it exist in the list
+ /// \param theFeaturesToUpdate a constraints container
+ void updateFeaturesAfterTrim(const std::set<FeaturePtr>& theFeaturesToUpdate);
+
+ /// Make the base object is splitted by the point attributes
+ /// \param theBaseRefAttributes container of references to the attributes of base feature
+ /// \param thePoints a list of points where coincidences will be build
+ /// \param theModifiedAttributes a container of attribute on base
+ /// feature to attribute on new feature
+ /// \return new line if it was created
+ FeaturePtr trimLine(const std::shared_ptr<GeomAPI_Pnt2d>& theStartShapePoint,