From 7af4659bde2f9bad6b1d5cdd17e80589c93b03f3 Mon Sep 17 00:00:00 2001 From: vsv Date: Mon, 2 Jul 2018 11:47:44 +0300 Subject: [PATCH] Merging of points interface --- src/ConstructionAPI/ConstructionAPI_Point.h | 74 ++++++------------ src/ModelHighAPI/ModelHighAPI_Macro.h | 85 +++++++++++++++++++++ 2 files changed, 110 insertions(+), 49 deletions(-) diff --git a/src/ConstructionAPI/ConstructionAPI_Point.h b/src/ConstructionAPI/ConstructionAPI_Point.h index e02de26f0..5df24daaf 100644 --- a/src/ConstructionAPI/ConstructionAPI_Point.h +++ b/src/ConstructionAPI/ConstructionAPI_Point.h @@ -81,55 +81,31 @@ public: virtual ~ConstructionAPI_Point(); INTERFACE_25(ConstructionPlugin_Point::ID(), - point, ConstructionPlugin_Point::point3d(), GeomDataAPI_Point, /** Point attribute */, - creationMethod, ConstructionPlugin_Point::CREATION_METHOD(), - ModelAPI_AttributeString, /** Creation method */, - intersectionType, ConstructionPlugin_Point::INTERSECTION_TYPE(), - ModelAPI_AttributeString, /** Type of the intersection */, - intersectionLine1, ConstructionPlugin_Point::INTERSECTION_LINE_1(), - ModelAPI_AttributeSelection, /** Line for intersection */, - intersectionLine2, ConstructionPlugin_Point::INTERSECTION_LINE_2(), - ModelAPI_AttributeSelection, /** Line for intersection */, - intersectionLine, ConstructionPlugin_Point::INTERSECTION_LINE(), - ModelAPI_AttributeSelection, /** Line for intersection */, - intersectionPlane, ConstructionPlugin_Point::INTERSECTION_PLANE(), - ModelAPI_AttributeSelection, /** Plane for intersection */, - intersectionPlane1, ConstructionPlugin_Point::INTERSECTION_PLANE_1(), - ModelAPI_AttributeSelection, /** Plane for intersection */, - intersectionPlane2, ConstructionPlugin_Point::INTERSECTION_PLANE_2(), - ModelAPI_AttributeSelection, /** Plane for intersection */, - intersectionPlane3, ConstructionPlugin_Point::INTERSECTION_PLANE_3(), - ModelAPI_AttributeSelection, /** Plane for intersection */, - useOffset, ConstructionPlugin_Point::USE_OFFSET(), - ModelAPI_AttributeString, /** Use offset */, - offset, ConstructionPlugin_Point::OFFSET(), - ModelAPI_AttributeDouble, /** Offset */, - reverseOffset, ConstructionPlugin_Point::REVERSE_OFFSET(), - ModelAPI_AttributeBoolean, /** Reverse offset */, - edge, ConstructionPlugin_Point::EDGE(), - ModelAPI_AttributeSelection, /** Edge */, - offsetType, ConstructionPlugin_Point::OFFSET_TYPE(), - ModelAPI_AttributeString, /** Type of the offset on edge */, - distance, ConstructionPlugin_Point::DISTANCE(), - ModelAPI_AttributeDouble, /** Distance */, - ratio, ConstructionPlugin_Point::RATIO(), - ModelAPI_AttributeDouble, /** Ratio */, - reverse, ConstructionPlugin_Point::REVERSE(), - ModelAPI_AttributeBoolean, /** Reverse */, - poinToProject, ConstructionPlugin_Point::POINT_TO_PROJECT(), - ModelAPI_AttributeSelection, /** Point to project*/, - projectionType, ConstructionPlugin_Point::PROJECTION_TYPE(), - ModelAPI_AttributeString, /** Type of the point projection */, - faceForPointProjection, ConstructionPlugin_Point::FACE_FOR_POINT_PROJECTION(), - ModelAPI_AttributeSelection, /** Face for point projection */, - edgeForPointProjection, ConstructionPlugin_Point::EDGE_FOR_POINT_PROJECTION(), - ModelAPI_AttributeSelection, /** Edge for point projection */, - geometricalPropertyType, ConstructionPlugin_Point::GEOMETRICAL_PROPERTY_TYPE(), - ModelAPI_AttributeString, /** Type of the geometrical property */, - objectForCenterOfGravity, ConstructionPlugin_Point::OBJECT_FOR_CENTER_OF_GRAVITY(), - ModelAPI_AttributeSelection, /** Object for center of gravity */, - objectForCenterOfCircle, ConstructionPlugin_Point::OBJECT_FOR_CENTER_OF_CIRCLE(), - ModelAPI_AttributeSelection, /** Object for center of circle */) + point, ConstructionPlugin_Point::point3d(), GeomDataAPI_Point, /** Point attribute */, + creationMethod, ConstructionPlugin_Point::CREATION_METHOD(), ModelAPI_AttributeString, /** Creation method */, + intersectionType, ConstructionPlugin_Point::INTERSECTION_TYPE(), ModelAPI_AttributeString, /** Type of the intersection */, + intersectionLine1, ConstructionPlugin_Point::INTERSECTION_LINE_1(), ModelAPI_AttributeSelection, /** Line for intersection */, + intersectionLine2, ConstructionPlugin_Point::INTERSECTION_LINE_2(), ModelAPI_AttributeSelection, /** Line for intersection */, + intersectionLine, ConstructionPlugin_Point::INTERSECTION_LINE(), ModelAPI_AttributeSelection, /** Line for intersection */, + intersectionPlane, ConstructionPlugin_Point::INTERSECTION_PLANE(), ModelAPI_AttributeSelection, /** Plane for intersection */, + intersectionPlane1, ConstructionPlugin_Point::INTERSECTION_PLANE_1(), ModelAPI_AttributeSelection, /** Plane for intersection */, + intersectionPlane2, ConstructionPlugin_Point::INTERSECTION_PLANE_2(), ModelAPI_AttributeSelection, /** Plane for intersection */, + intersectionPlane3, ConstructionPlugin_Point::INTERSECTION_PLANE_3(), ModelAPI_AttributeSelection, /** Plane for intersection */, + useOffset, ConstructionPlugin_Point::USE_OFFSET(), ModelAPI_AttributeString, /** Use offset */, + offset, ConstructionPlugin_Point::OFFSET(), ModelAPI_AttributeDouble, /** Offset */, + reverseOffset, ConstructionPlugin_Point::REVERSE_OFFSET(), ModelAPI_AttributeBoolean, /** Reverse offset */, + edge, ConstructionPlugin_Point::EDGE(), ModelAPI_AttributeSelection, /** Edge */, + offsetType, ConstructionPlugin_Point::OFFSET_TYPE(), ModelAPI_AttributeString, /** Type of the offset on edge */, + distance, ConstructionPlugin_Point::DISTANCE(), ModelAPI_AttributeDouble, /** Distance */, + ratio, ConstructionPlugin_Point::RATIO(), ModelAPI_AttributeDouble, /** Ratio */, + reverse, ConstructionPlugin_Point::REVERSE(), ModelAPI_AttributeBoolean, /** Reverse */, + poinToProject, ConstructionPlugin_Point::POINT_TO_PROJECT(), ModelAPI_AttributeSelection, /** Point to project*/, + projectionType, ConstructionPlugin_Point::PROJECTION_TYPE(), ModelAPI_AttributeString, /** Type of the point projection */, + faceForPointProjection, ConstructionPlugin_Point::FACE_FOR_POINT_PROJECTION(), ModelAPI_AttributeSelection, /** Face for point projection */, + edgeForPointProjection, ConstructionPlugin_Point::EDGE_FOR_POINT_PROJECTION(), ModelAPI_AttributeSelection, /** Edge for point projection */, + geometricalPropertyType, ConstructionPlugin_Point::GEOMETRICAL_PROPERTY_TYPE(), ModelAPI_AttributeString, /** Type of the geometrical property */, + objectForCenterOfGravity, ConstructionPlugin_Point::OBJECT_FOR_CENTER_OF_GRAVITY(), ModelAPI_AttributeSelection, /** Object for center of gravity */, + objectForCenterOfCircle, ConstructionPlugin_Point::OBJECT_FOR_CENTER_OF_CIRCLE(), ModelAPI_AttributeSelection, /** Object for center of circle */) /// Set point values. CONSTRUCTIONAPI_EXPORT diff --git a/src/ModelHighAPI/ModelHighAPI_Macro.h b/src/ModelHighAPI/ModelHighAPI_Macro.h index 7ed4e9b35..6e49003f2 100644 --- a/src/ModelHighAPI/ModelHighAPI_Macro.h +++ b/src/ModelHighAPI/ModelHighAPI_Macro.h @@ -831,6 +831,91 @@ END_INIT() \ public: +//-------------------------------------------------------------------------------------- +#define INTERFACE_25(KIND, \ + N_0, AN_0, T_0, C_0, \ + N_1, AN_1, T_1, C_1, \ + N_2, AN_2, T_2, C_2, \ + N_3, AN_3, T_3, C_3, \ + N_4, AN_4, T_4, C_4, \ + N_5, AN_5, T_5, C_5, \ + N_6, AN_6, T_6, C_6, \ + N_7, AN_7, T_7, C_7, \ + N_8, AN_8, T_8, C_8, \ + N_9, AN_9, T_9, C_9, \ + N_10, AN_10, T_10, C_10, \ + N_11, AN_11, T_11, C_11, \ + N_12, AN_12, T_12, C_12, \ + N_13, AN_13, T_13, C_13, \ + N_14, AN_14, T_14, C_14, \ + N_15, AN_15, T_15, C_15, \ + N_16, AN_16, T_16, C_16, \ + N_17, AN_17, T_17, C_17, \ + N_18, AN_18, T_18, C_18, \ + N_19, AN_19, T_19, C_19, \ + N_20, AN_20, T_20, C_20, \ + N_21, AN_21, T_21, C_21, \ + N_22, AN_22, T_22, C_22, \ + N_23, AN_23, T_23, C_23, \ + N_24, AN_24, T_24, C_24) \ + public: \ + INTERFACE_COMMON(KIND) \ + DEFINE_ATTRIBUTE(N_0, T_0, C_0) \ + DEFINE_ATTRIBUTE(N_1, T_1, C_1) \ + DEFINE_ATTRIBUTE(N_2, T_2, C_2) \ + DEFINE_ATTRIBUTE(N_3, T_3, C_3) \ + DEFINE_ATTRIBUTE(N_4, T_4, C_4) \ + DEFINE_ATTRIBUTE(N_5, T_5, C_5) \ + DEFINE_ATTRIBUTE(N_6, T_6, C_6) \ + DEFINE_ATTRIBUTE(N_7, T_7, C_7) \ + DEFINE_ATTRIBUTE(N_8, T_8, C_8) \ + DEFINE_ATTRIBUTE(N_9, T_9, C_9) \ + DEFINE_ATTRIBUTE(N_10, T_10, C_10) \ + DEFINE_ATTRIBUTE(N_11, T_11, C_11) \ + DEFINE_ATTRIBUTE(N_12, T_12, C_12) \ + DEFINE_ATTRIBUTE(N_13, T_13, C_13) \ + DEFINE_ATTRIBUTE(N_14, T_14, C_14) \ + DEFINE_ATTRIBUTE(N_15, T_15, C_15) \ + DEFINE_ATTRIBUTE(N_16, T_16, C_16) \ + DEFINE_ATTRIBUTE(N_17, T_17, C_17) \ + DEFINE_ATTRIBUTE(N_18, T_18, C_18) \ + DEFINE_ATTRIBUTE(N_19, T_19, C_19) \ + DEFINE_ATTRIBUTE(N_20, T_20, C_20) \ + DEFINE_ATTRIBUTE(N_21, T_21, C_21) \ + DEFINE_ATTRIBUTE(N_22, T_22, C_22) \ + DEFINE_ATTRIBUTE(N_23, T_23, C_23) \ + DEFINE_ATTRIBUTE(N_24, T_24, C_24) \ + protected: \ + START_INIT() \ + SET_ATTRIBUTE(N_0, T_0, AN_0) \ + SET_ATTRIBUTE(N_1, T_1, AN_1) \ + SET_ATTRIBUTE(N_2, T_2, AN_2) \ + SET_ATTRIBUTE(N_3, T_3, AN_3) \ + SET_ATTRIBUTE(N_4, T_4, AN_4) \ + SET_ATTRIBUTE(N_5, T_5, AN_5) \ + SET_ATTRIBUTE(N_6, T_6, AN_6) \ + SET_ATTRIBUTE(N_7, T_7, AN_7) \ + SET_ATTRIBUTE(N_8, T_8, AN_8) \ + SET_ATTRIBUTE(N_9, T_9, AN_9) \ + SET_ATTRIBUTE(N_10, T_10, AN_10) \ + SET_ATTRIBUTE(N_11, T_11, AN_11) \ + SET_ATTRIBUTE(N_12, T_12, AN_12) \ + SET_ATTRIBUTE(N_13, T_13, AN_13) \ + SET_ATTRIBUTE(N_14, T_14, AN_14) \ + SET_ATTRIBUTE(N_15, T_15, AN_15) \ + SET_ATTRIBUTE(N_16, T_16, AN_16) \ + SET_ATTRIBUTE(N_17, T_17, AN_17) \ + SET_ATTRIBUTE(N_18, T_18, AN_18) \ + SET_ATTRIBUTE(N_19, T_19, AN_19) \ + SET_ATTRIBUTE(N_20, T_20, AN_20) \ + SET_ATTRIBUTE(N_21, T_21, AN_21) \ + SET_ATTRIBUTE(N_22, T_22, AN_22) \ + SET_ATTRIBUTE(N_23, T_23, AN_23) \ + SET_ATTRIBUTE(N_24, T_24, AN_24) \ + END_INIT() \ + public: + + //-------------------------------------------------------------------------------------- #define INTERFACE_27(KIND, \ N_0, AN_0, T_0, C_0, \ -- 2.39.2