Salome HOME
Task 2.4. Ability to modify the radius of circles and arcs of circle with the mouse
[modules/shaper.git] / src / SketchSolver / SketchSolver_ConstraintFixed.h
index 7fc02b203f7af254aa297485c47048604b87b9e3..13ec1d160c4d1dd5c1639c0a7b2ebede8f6e1c04 100644 (file)
 /** \class   SketchSolver_ConstraintFixed
  *  \ingroup Plugins
  *  \brief   Stores data of the Fixed constraint
- *
- *  Fixed constraint may have NULL basic SketchPlugin constraint,
- *  because the Fixed constraint may be temporary for correct moving of objects.
  */
 class SketchSolver_ConstraintFixed : public SketchSolver_Constraint
 {
 public:
   /// Creates constraint to manage the given constraint from plugin
   SketchSolver_ConstraintFixed(ConstraintPtr theConstraint);
+#ifndef SUPPORT_NEW_MOVE
   /// Creates temporary constraint based on feature (useful while the feature is being moved)
   SketchSolver_ConstraintFixed(FeaturePtr theFeature);
+#endif
 
   /// \brief Block or unblock events from this constraint
   virtual void blockEvents(bool isBlocked);
 
+#ifndef SUPPORT_NEW_MOVE
   /// \brief Set coordinates of fixed feature to the values where it has been dragged.
   ///        Useful when the feature is being moved.
   void moveFeature();
+#endif
 
 protected:
   /// \brief Converts SketchPlugin constraint to a list of SolveSpace constraints
   virtual void process();
 
+  /// \brief Generate list of attributes of constraint in order useful for constraints
+  /// \param[out] theValue      numerical characteristic of constraint (e.g. distance)
+  /// \param[out] theAttributes list of attributes to be filled
+  virtual void getAttributes(EntityWrapperPtr& , std::vector<EntityWrapperPtr>& )
+  {}
+
+#ifdef SUPPORT_NEW_MOVE
+  /// \brief Obtain entity to be fixed
+  virtual EntityWrapperPtr entityToFix();
+#else
   /// \brief Generate list of attributes of constraint in order useful for constraints
   /// \param[out] theBaseEntity  the entity which coordinates should be fixed
   /// \param[out] theFixedEntity the entity containing fixed values
   virtual void getAttributes(EntityWrapperPtr& theBaseEntity,
                              EntityWrapperPtr& theFixedEntity);
+#endif
 
-  /// \brief Fixed feature basing on its type
+  /// \brief Create Fixed constraint for the feature basing on its type
   /// \param theFeature [in]  feature, converted to solver specific format
-  virtual void fixFeature(EntityWrapperPtr theFeature);
+  /// \return Fixed constraint
+  virtual ConstraintWrapperPtr fixFeature(EntityWrapperPtr theFeature);
+
+#ifndef SUPPORT_NEW_MOVE
+public:
+#endif
+  /// \brief Get list of parameters of current entity
+  static GCS::VEC_pD toParameters(const EntityWrapperPtr& theEntity);
 
+#ifdef SUPPORT_NEW_MOVE
+protected:
+#else
 private:
   FeaturePtr myBaseFeature; ///< fixed feature (when it is set, myBaseConstraint should be NULL)
 
   ConstraintWrapperPtr myConstraint;
-  std::vector<double> myFixedValues;
   EntityWrapperPtr    myFixedEntity;
+#endif
+  std::vector<double> myFixedValues;
 };
 
 #endif