SHAPER 9.16.0
SketchPlugin_ConstraintMiddle.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef SketchPlugin_ConstraintMiddle_H_
21#define SketchPlugin_ConstraintMiddle_H_
22
23#include "SketchPlugin.h"
24#include <SketchPlugin_Sketch.h>
25#include "SketchPlugin_ConstraintBase.h"
26
28
37{
38 public:
40 inline static const std::string& ID()
41 {
42 static const std::string MY_CONSTRAINT_MIDDLE_ID("SketchConstraintMiddle");
43 return MY_CONSTRAINT_MIDDLE_ID;
44 }
45
47 inline static const std::string& MIDDLE_TYPE()
48 {
49 static const std::string MY_TYPE_ID("middle_type");
50 return MY_TYPE_ID;
51 }
52
54 inline static const std::string& MIDDLE_TYPE_BY_LINE_AND_POINT()
55 {
56 static const std::string MY_TYPE_ID("middle_type_by_line_and_point");
57 return MY_TYPE_ID;
58 }
59
61 inline static const std::string& MIDDLE_TYPE_BY_LINE()
62 {
63 static const std::string MY_TYPE_ID("middle_type_by_line");
64 return MY_TYPE_ID;
65 }
66
68 inline static const std::string& POINT_REF_ID()
69 {
70 static const std::string MY_POINT_REF("point");
71 return MY_POINT_REF;
72 }
73
75 SKETCHPLUGIN_EXPORT virtual const std::string& getKind()
76 {
77 static std::string MY_KIND = SketchPlugin_ConstraintMiddle::ID();
78 return MY_KIND;
79 }
80
82 SKETCHPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
83
85 SKETCHPLUGIN_EXPORT virtual void execute();
86
88 SKETCHPLUGIN_EXPORT virtual void initAttributes();
89
91 SKETCHPLUGIN_EXPORT virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious);
92
95
96private:
97 void CreatePoint();
98
99 std::shared_ptr<ModelAPI_Feature> myPoint;
100 bool myBlockAttribInit;
101};
102
103#endif
Feature function that represents the particular functionality of this operation.
Definition: ModelAPI_Feature.h:41
Feature for creation of a new constraint between other features.
Definition: SketchPlugin_ConstraintBase.h:56
Feature for creation of a new constraint which places a point in the middle of a line.
Definition: SketchPlugin_ConstraintMiddle.h:37
virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious)
Returns the AIS preview.
Definition: SketchPlugin_ConstraintMiddle.cpp:173
virtual void attributeChanged(const std::string &theID)
Called on change of any argument-attribute of this object.
Definition: SketchPlugin_ConstraintMiddle.cpp:150
static const std::string & MIDDLE_TYPE()
Middle constraint kind.
Definition: SketchPlugin_ConstraintMiddle.h:47
virtual void execute()
Creates a new part document if needed.
Definition: SketchPlugin_ConstraintMiddle.cpp:132
SketchPlugin_ConstraintMiddle()
Use plugin manager for features creation.
Definition: SketchPlugin_ConstraintMiddle.cpp:51
static const std::string & MIDDLE_TYPE_BY_LINE_AND_POINT()
Middle constraint type by line and point.
Definition: SketchPlugin_ConstraintMiddle.h:54
static const std::string & MIDDLE_TYPE_BY_LINE()
Middle constraint type by line.
Definition: SketchPlugin_ConstraintMiddle.h:61
virtual const std::string & getKind()
Returns the kind of a feature.
Definition: SketchPlugin_ConstraintMiddle.h:75
static const std::string & ID()
Parallel constraint kind.
Definition: SketchPlugin_ConstraintMiddle.h:40
virtual void initAttributes()
Request for initialization of data model of the feature: adding all attributes.
Definition: SketchPlugin_ConstraintMiddle.cpp:93
static const std::string & POINT_REF_ID()
Created points for middle type by line.
Definition: SketchPlugin_ConstraintMiddle.h:68