+//==================================================================================================
+void ConstructionAPI_Point::setByXYZ(const ModelHighAPI_Double& theX,
+ const ModelHighAPI_Double& theY,
+ const ModelHighAPI_Double& theZ)
+{
+ fillAttribute(ConstructionPlugin_Point::CREATION_METHOD_BY_XYZ(), mycreationMethod);
+ fillAttribute(theX, theY, theZ, mypoint);
+
+ execute(false);
+}
+
+//==================================================================================================
+void ConstructionAPI_Point::setByOffsetOnEdge(const ModelHighAPI_Selection& theEdge,
+ const ModelHighAPI_Double& theOffset,
+ const bool theUseRatio,
+ const bool theReverse)
+{
+ fillAttribute(ConstructionPlugin_Point::CREATION_METHOD_BY_DISTANCE_ON_EDGE(), mycreationMethod);
+ fillAttribute(theEdge, myedge);
+ if (theUseRatio) {
+ fillAttribute(ConstructionPlugin_Point::OFFSET_TYPE_BY_RATIO(), myoffsetType);
+ fillAttribute(theOffset, myratio);
+ }
+ else {
+ fillAttribute(ConstructionPlugin_Point::OFFSET_TYPE_BY_DISTANCE(), myoffsetType);
+ fillAttribute(theOffset, mydistance);
+ }
+ fillAttribute(theReverse, myreverse);
+
+ execute();
+}
+
+//==================================================================================================
+void ConstructionAPI_Point::setByProjectionOnEdge(const ModelHighAPI_Selection& theVertex,
+ const ModelHighAPI_Selection& theEdge)
+{
+ fillAttribute(ConstructionPlugin_Point::CREATION_METHOD_BY_PROJECTION(),
+ mycreationMethod);
+ fillAttribute(ConstructionPlugin_Point::PROJECTION_TYPE_ON_EDGE(),
+ myprojectionType);
+ fillAttribute(theVertex, mypointToProject);
+ fillAttribute(theEdge, myedgeForPointProjection);
+
+ execute();
+}
+
+//==================================================================================================
+void ConstructionAPI_Point::setByProjectionOnFace(const ModelHighAPI_Selection& theVertex,
+ const ModelHighAPI_Selection& theFace)
+{
+ fillAttribute(ConstructionPlugin_Point::CREATION_METHOD_BY_PROJECTION(),
+ mycreationMethod);
+ fillAttribute(ConstructionPlugin_Point::PROJECTION_TYPE_ON_FACE(),
+ myprojectionType);
+ fillAttribute(theVertex, mypointToProject);
+ fillAttribute(theFace, myfaceForPointProjection);
+
+ execute();
+}
+
+//==================================================================================================
+void ConstructionAPI_Point::setByLinesIntersection(const ModelHighAPI_Selection& theEdge1,
+ const ModelHighAPI_Selection& theEdge2)
+{
+ fillAttribute(ConstructionPlugin_Point::CREATION_METHOD_BY_INTERSECTION(), mycreationMethod);
+ fillAttribute(ConstructionPlugin_Point::INTERSECTION_TYPE_BY_LINES(),
+ myintersectionType);
+ fillAttribute(theEdge1, myintersectionLine1);
+ fillAttribute(theEdge2, myintersectionLine2);
+
+ execute();
+}
+
+//==================================================================================================
+void ConstructionAPI_Point::setByLineAndPlaneIntersection(const ModelHighAPI_Selection& theEdge,
+ const ModelHighAPI_Selection& theFace)
+{
+ fillAttribute(ConstructionPlugin_Point::CREATION_METHOD_BY_INTERSECTION(), mycreationMethod);
+ fillAttribute(ConstructionPlugin_Point::INTERSECTION_TYPE_BY_LINE_AND_PLANE(),
+ myintersectionType);
+ fillAttribute(theEdge, myintersectionLine);
+ fillAttribute(theFace, myintersectionPlane);
+ fillAttribute("", useOffset()); // not used by default
+ execute();
+}
+
+//==================================================================================================
+void ConstructionAPI_Point::setByPlanesIntersection(const ModelHighAPI_Selection& theFace1,
+ const ModelHighAPI_Selection& theFace2,
+ const ModelHighAPI_Selection& theFace3)