Salome HOME
Updated copyright comment
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_ConstraintWrapper.cpp
index a2be38efe0ea444771532bb37d0e1069005be4e9..d64bda1bb61278b3d56c2d24fd4c3559bcb4a468 100644 (file)
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File:    PlaneGCSSolver_ConstraintWrapper.cpp
-// Created: 14 Dec 2015
-// Author:  Artem ZHIDKOV
+// Copyright (C) 2014-2024  CEA, EDF
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #include <PlaneGCSSolver_ConstraintWrapper.h>
 
-#include <math.h>
-
 PlaneGCSSolver_ConstraintWrapper::PlaneGCSSolver_ConstraintWrapper(
-    const ConstraintPtr& theOriginal,
     const GCSConstraintPtr& theConstraint,
     const SketchSolver_ConstraintType& theType)
   : myGCSConstraints(1, theConstraint),
-    myType(theType),
-    myID(CID_UNKNOWN)
+    myType(theType)
 {
-  myBaseConstraint = theOriginal;
-  myValue = 0.0;
+  myID = CID_UNKNOWN;
 }
 
 PlaneGCSSolver_ConstraintWrapper::PlaneGCSSolver_ConstraintWrapper(
-    const ConstraintPtr& theOriginal,
     const std::list<GCSConstraintPtr>& theConstraints,
     const SketchSolver_ConstraintType& theType)
   : myGCSConstraints(theConstraints),
-    myType(theType),
-    myID(CID_UNKNOWN)
+    myType(theType)
 {
-  myBaseConstraint = theOriginal;
-  myValue = 0.0;
+  myID = CID_UNKNOWN;
 }
 
 void PlaneGCSSolver_ConstraintWrapper::setId(const ConstraintID& theID)
 {
   myID = theID;
-  std::list<GCSConstraintPtr>::iterator anIt = myGCSConstraints.begin();
-  for (; anIt != myGCSConstraints.end(); ++anIt)
-    (*anIt)->setTag((int)theID);
 }
 
-void PlaneGCSSolver_ConstraintWrapper::setValueParameter(const ParameterWrapperPtr& theValue)
+void PlaneGCSSolver_ConstraintWrapper::setValueParameter(const ScalarWrapperPtr& theValue)
 {
   myValueParam = theValue;
-  myValue = myValueParam->value();
 }
 
 void PlaneGCSSolver_ConstraintWrapper::setValue(const double& theValue)
 {
-  myValue = theValue;
   myValueParam->setValue(theValue);
 }
 
-
-void PlaneGCSSolver_ConstraintWrapper::setGroup(const GroupID& theGroup)
-{
-  myGroup = theGroup;
-  std::list<EntityWrapperPtr>::iterator aSubsIt = myConstrained.begin();
-  for (; aSubsIt != myConstrained.end(); ++aSubsIt)
-    (*aSubsIt)->setGroup(theGroup);
-}
-
-bool PlaneGCSSolver_ConstraintWrapper::isUsed(FeaturePtr theFeature) const
+double PlaneGCSSolver_ConstraintWrapper::value() const
 {
-  std::list<EntityWrapperPtr>::const_iterator anIt = myConstrained.begin();
-  for (; anIt != myConstrained.end(); ++anIt)
-    if ((*anIt)->isUsed(theFeature))
-      return true;
-  return false;
-}
-
-bool PlaneGCSSolver_ConstraintWrapper::isUsed(AttributePtr theAttribute) const
-{
-  std::list<EntityWrapperPtr>::const_iterator anIt = myConstrained.begin();
-  for (; anIt != myConstrained.end(); ++anIt)
-    if ((*anIt)->isUsed(theAttribute))
-      return true;
-  return false;
-}
-
-bool PlaneGCSSolver_ConstraintWrapper::isEqual(const ConstraintWrapperPtr& theOther)
-{
-  if (type() != theOther->type())
-    return false;
-
-  // Verify equality of values
-  if (fabs(myValue - theOther->value()) > tolerance)
-    return false;
-
-  // Verify equality of entities
-  const std::list<EntityWrapperPtr>& anOtherSubs = theOther->entities();
-  if (myConstrained.size() != anOtherSubs.size())
-    return false;
-  std::list<EntityWrapperPtr>::const_iterator aMySubsIt = myConstrained.begin();
-  std::list<EntityWrapperPtr>::const_iterator anOtherSubsIt = anOtherSubs.begin();
-  for (; aMySubsIt != myConstrained.end(); ++aMySubsIt, ++anOtherSubsIt)
-    if (!(*aMySubsIt)->isEqual(*anOtherSubsIt))
-      return false;
-  return true;
-}
-
-bool PlaneGCSSolver_ConstraintWrapper::update(const ConstraintWrapperPtr& theOther)
-{
-  bool isUpdated = false;
-
-  std::list<EntityWrapperPtr> aMySubs = entities();
-  std::list<EntityWrapperPtr> anOtherSubs = theOther->entities();
-  std::list<EntityWrapperPtr>::const_iterator aMySubsIt = aMySubs.begin();
-  std::list<EntityWrapperPtr>::const_iterator anOtherSubsIt = anOtherSubs.begin();
-  for (; aMySubsIt != aMySubs.end() && anOtherSubsIt != anOtherSubs.end();
-       ++aMySubsIt, ++anOtherSubsIt)
-     isUpdated = (*aMySubsIt)->update(*anOtherSubsIt) || isUpdated;
-
-  if (fabs(value() - theOther->value()) > tolerance) {
-    myValue = theOther->value();
-    isUpdated = true;
-  }
-  return isUpdated;
+  return myValueParam ? myValueParam->value() : 0.0;
 }