* \ingroup Plugins
* \brief Feature for creation of the new part in PartSet.
*/
-class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_ICustomPrs
+class SketchPlugin_Sketch : public ModelAPI_CompositeFeature//, public GeomAPI_ICustomPrs
{
public:
/// Sketch feature kind
std::shared_ptr<GeomDataAPI_Dir> aNorm = std::dynamic_pointer_cast<GeomDataAPI_Dir>(
aData->attribute(NORM_ID()));
+ if (!aNorm->isInitialized() || !aX->isInitialized() ||
+ aNorm->dir()->cross(aX->dir())->squareModulus() < 1.e-14)
+ return std::shared_ptr<GeomAPI_Ax3>();
+
return std::shared_ptr<GeomAPI_Ax3>(new GeomAPI_Ax3(aC->pnt(), aX->dir(), aNorm->dir()));
}
SketchPlugin_Sketch* theSketch,
const std::string& theAttributeID, const int theIndex);
+ /// \brief Create a result for the segment given by a pair of attributes
+ /// \param theFeature a source feature
+ /// \param theSketch a sketch intance
+ /// \param theStartAttrID an attribute string
+ /// \param theEndAttrID an attribute string
+ /// \param theIndex an index of the result
+ static void createLine2DResult(ModelAPI_Feature* theFeature,
+ SketchPlugin_Sketch* theSketch,
+ const std::string& theStartAttrID,
+ const std::string& theEndAttrID,
+ const int theIndex = 0);
+
/// 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
static std::shared_ptr<GeomAPI_Ax3> plane(SketchPlugin_Sketch* theSketch);
/// Customize presentation of the feature
- virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
- std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs)
- {
- bool isCustomized = false;
- // apply the color of the result to the presentation
- if (theDefaultPrs.get())
- isCustomized = theDefaultPrs->customisePresentation(theResult, thePrs, theDefaultPrs);
- // set the sketch presentation bold
- isCustomized = thePrs->setWidth(2) || isCustomized;
-
- return isCustomized;
- }
+ //virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
+ // std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs)
+ //{
+ // bool isCustomized = false;
+ // // apply the color of the result to the presentation
+ // if (theDefaultPrs.get())
+ // isCustomized = theDefaultPrs->customisePresentation(theResult, thePrs, theDefaultPrs);
+ // // set the sketch presentation bold
+ // isCustomized = thePrs->setWidth(2) || isCustomized;
+
+ // return isCustomized;
+ //}
private:
/// Substitute all links to external objects by newly created features.
/// \return \c true, if all links updated.
bool removeLinksToExternal();
+
+ /// Update projected coordinate axes
+ void updateCoordinateAxis(ObjectPtr theSub, std::shared_ptr<GeomAPI_Ax3> thePlane);
+
+private:
+ std::shared_ptr<GeomAPI_Ax3> myPlane;
};
#endif