Salome HOME
Update copyrights
[modules/shaper.git] / src / SketchSolver / SolveSpaceSolver / SolveSpaceSolver_Storage.cpp
index 805e458dd301fbbb755f47052317e27714872ff5..3aabbecbd177487891e926fd0931df7c3d7d46d1 100644 (file)
@@ -1,8 +1,21 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File:    SolveSpaceSolver_Storage.cpp
-// Created: 18 Mar 2015
-// Author:  Artem ZHIDKOV
+// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+//
+// 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 <SolveSpaceSolver_Storage.h>
 #include <SolveSpaceSolver_ConstraintWrapper.h>
@@ -36,7 +49,8 @@ static bool IsNotEqual(const Slvs_Param& theParam1, const Slvs_Param& theParam2)
 /// \brief Compare two entities to be different
 static bool IsNotEqual(const Slvs_Entity& theEntity1, const Slvs_Entity& theEntity2);
 /// \brief Compare two constraints to be different
-static bool IsNotEqual(const Slvs_Constraint& theConstraint1, const Slvs_Constraint& theConstraint2);
+static bool IsNotEqual(const Slvs_Constraint& theConstraint1,
+                       const Slvs_Constraint& theConstraint2);
 
 
 SolveSpaceSolver_Storage::SolveSpaceSolver_Storage(const GroupID& theGroup)
@@ -122,7 +136,7 @@ bool SolveSpaceSolver_Storage::update(ConstraintWrapperPtr theConstraint)
 bool SolveSpaceSolver_Storage::update(EntityWrapperPtr theEntity)
 {
   bool isUpdated = false;
-  std::shared_ptr<SolveSpaceSolver_EntityWrapper> anEntity = 
+  std::shared_ptr<SolveSpaceSolver_EntityWrapper> anEntity =
       std::dynamic_pointer_cast<SolveSpaceSolver_EntityWrapper>(theEntity);
   Slvs_Entity aSlvsEnt = getEntity((Slvs_hEntity)anEntity->id());
   if (aSlvsEnt.h == SLVS_E_UNKNOWN)
@@ -203,14 +217,15 @@ bool SolveSpaceSolver_Storage::update(EntityWrapperPtr theEntity)
 
 bool SolveSpaceSolver_Storage::update(ParameterWrapperPtr theParameter)
 {
-  std::shared_ptr<SolveSpaceSolver_ParameterWrapper> aParameter = 
+  std::shared_ptr<SolveSpaceSolver_ParameterWrapper> aParameter =
       std::dynamic_pointer_cast<SolveSpaceSolver_ParameterWrapper>(theParameter);
   const Slvs_Param& aParam = getParameter((Slvs_hParam)aParameter->id());
   if (aParam.h != SLVS_E_UNKNOWN && fabs(aParam.val - aParameter->value()) < tolerance)
     return false;
   Slvs_Param aParamToUpd = aParameter->parameter();
   if (aParamToUpd.group == SLVS_G_UNKNOWN)
-    aParamToUpd.group = aParameter->isParametric() ? (Slvs_hGroup)GID_OUTOFGROUP : (Slvs_hGroup)myGroupID;
+    aParamToUpd.group = aParameter->isParametric() ? (Slvs_hGroup)GID_OUTOFGROUP :
+                                                     (Slvs_hGroup)myGroupID;
   Slvs_hParam anID = updateParameter(aParamToUpd);
   if (aParam.h == SLVS_E_UNKNOWN) // new parameter
     aParameter->changeParameter() = getParameter(anID);
@@ -329,9 +344,9 @@ void SolveSpaceSolver_Storage::addCoincidentPoints(
     if (theMaster->id() != theSlave->id())
       removeEntity((Slvs_hEntity)theSlave->id());
 
-    std::shared_ptr<SolveSpaceSolver_EntityWrapper> aPointMaster = 
+    std::shared_ptr<SolveSpaceSolver_EntityWrapper> aPointMaster =
         std::dynamic_pointer_cast<SolveSpaceSolver_EntityWrapper>(theMaster);
-    std::shared_ptr<SolveSpaceSolver_EntityWrapper> aPointSlave = 
+    std::shared_ptr<SolveSpaceSolver_EntityWrapper> aPointSlave =
         std::dynamic_pointer_cast<SolveSpaceSolver_EntityWrapper>(theSlave);
     aPointSlave->changeEntity() = aPointMaster->entity();
     aPointSlave->setParameters(aPointMaster->parameters());
@@ -447,7 +462,7 @@ void SolveSpaceSolver_Storage::replaceInConstraints(
               addSameConstraints(*aCIt2, aWrapper);
               break;
             }
-      } else 
+      } else
         aConstr.h = updateConstraint(aConstr);
       aWrapper->changeConstraint() = aConstr;
 
@@ -557,8 +572,10 @@ EntityWrapperPtr SolveSpaceSolver_Storage::calculateMiddlePoint(
       theX = anArcPoint[0][0] + anArcPoint[2][0];
       theY = anArcPoint[0][1] + anArcPoint[2][1];
     } else {
-      std::shared_ptr<GeomAPI_Dir2d> aStartDir(new GeomAPI_Dir2d(anArcPoint[1][0], anArcPoint[1][1]));
-      std::shared_ptr<GeomAPI_Dir2d> aEndDir(new GeomAPI_Dir2d(anArcPoint[2][0], anArcPoint[2][1]));
+      std::shared_ptr<GeomAPI_Dir2d>
+        aStartDir(new GeomAPI_Dir2d(anArcPoint[1][0], anArcPoint[1][1]));
+      std::shared_ptr<GeomAPI_Dir2d>
+        aEndDir(new GeomAPI_Dir2d(anArcPoint[2][0], anArcPoint[2][1]));
       double anAngle = aStartDir->angle(aEndDir);
       if (anAngle < 0)
         anAngle += 2.0 * PI;
@@ -821,7 +838,8 @@ Slvs_hConstraint SolveSpaceSolver_Storage::updateConstraint(const Slvs_Constrain
       Slvs_Entity aNewLine2 = Slvs_MakeLineSegment(SLVS_E_UNKNOWN, (Slvs_hGroup)myGroupID,
           myWorkplaneID, aLine.point[1], aConstraint.ptA);
       aNewLine2.h = addEntity(aNewLine2);
-      aConstraint = Slvs_MakeConstraint(SLVS_E_UNKNOWN, (Slvs_hGroup)myGroupID, SLVS_C_EQUAL_LENGTH_LINES,
+      aConstraint = Slvs_MakeConstraint(SLVS_E_UNKNOWN, (Slvs_hGroup)myGroupID,
+          SLVS_C_EQUAL_LENGTH_LINES,
           myWorkplaneID, 0.0, SLVS_E_UNKNOWN, SLVS_E_UNKNOWN, aNewLine1.h, aNewLine2.h);
     }
   }
@@ -856,7 +874,8 @@ bool SolveSpaceSolver_Storage::removeConstraint(const Slvs_hConstraint& theConst
   return true;
 }
 
-const Slvs_Constraint& SolveSpaceSolver_Storage::getConstraint(const Slvs_hConstraint& theConstraintID) const
+const Slvs_Constraint& SolveSpaceSolver_Storage::
+  getConstraint(const Slvs_hConstraint& theConstraintID) const
 {
   int aPos = Search(theConstraintID, myConstraints);
   if (aPos >= 0 && aPos < (int)myConstraints.size())
@@ -953,7 +972,7 @@ bool SolveSpaceSolver_Storage::remove(EntityWrapperPtr theEntity)
     }
   }
 
-  std::shared_ptr<SolveSpaceSolver_EntityWrapper> anEntity = 
+  std::shared_ptr<SolveSpaceSolver_EntityWrapper> anEntity =
         std::dynamic_pointer_cast<SolveSpaceSolver_EntityWrapper>(theEntity);
   bool isFullyRemoved = isCoincide ? true : removeEntity((Slvs_hEntity)anEntity->id());
   return (SketchSolver_Storage::remove(theEntity) || isCoincide) && isFullyRemoved;
@@ -975,10 +994,10 @@ void SolveSpaceSolver_Storage::refresh(bool theFixedOnly) const
   for (; anIt != myAttributeMap.end(); ++anIt) {
     if (!anIt->second)
       continue;
-    // the external feature always should keep the up to date values, so, 
+    // the external feature always should keep the up to date values, so,
     // refresh from the solver is never needed
     if (anIt->first.get()) {
-      std::shared_ptr<SketchPlugin_Feature> aSketchFeature = 
+      std::shared_ptr<SketchPlugin_Feature> aSketchFeature =
         std::dynamic_pointer_cast<SketchPlugin_Feature>(anIt->first->owner());
       if (aSketchFeature.get() && aSketchFeature->isExternal())
         continue;
@@ -995,7 +1014,7 @@ void SolveSpaceSolver_Storage::refresh(bool theFixedOnly) const
     bool isUpd[3] = {false};
     int i = 0;
     for (aParIt = aParams.begin(); i < 3 && aParIt != aParams.end(); ++aParIt, ++i) {
-      std::shared_ptr<SolveSpaceSolver_ParameterWrapper> aWrapper = 
+      std::shared_ptr<SolveSpaceSolver_ParameterWrapper> aWrapper =
           std::dynamic_pointer_cast<SolveSpaceSolver_ParameterWrapper>(*aParIt);
       if (!theFixedOnly || aWrapper->group() == GID_OUTOFGROUP || aWrapper->isParametric()) {
         aWrapper->changeParameter().val = getParameter((Slvs_hParam)aWrapper->id()).val;
@@ -1016,7 +1035,7 @@ void SolveSpaceSolver_Storage::refresh(bool theFixedOnly) const
         aPoint2D->setValue(aCoords[0], aCoords[1]);
         // Find points coincident with this one (probably not in GID_OUTOFGROUP)
         std::map<AttributePtr, EntityWrapperPtr>::const_iterator aLocIt;
-        if (theFixedOnly) 
+        if (theFixedOnly)
           aLocIt = myAttributeMap.begin();
         else {
           aLocIt = anIt;
@@ -1025,7 +1044,7 @@ void SolveSpaceSolver_Storage::refresh(bool theFixedOnly) const
         for (; aLocIt != myAttributeMap.end(); ++aLocIt) {
           if (!aLocIt->second)
             continue;
-          std::shared_ptr<SketchPlugin_Feature> aSketchFeature = 
+          std::shared_ptr<SketchPlugin_Feature> aSketchFeature =
             std::dynamic_pointer_cast<SketchPlugin_Feature>(aLocIt->first->owner());
           if (aSketchFeature && aSketchFeature->isExternal())
             continue;
@@ -1100,7 +1119,7 @@ void SolveSpaceSolver_Storage::adjustArc(const Slvs_Entity& theArc)
     if (i > 0) {
       anArcPoints[i][0] -= anArcPoints[0][0];
       anArcPoints[i][1] -= anArcPoints[0][1];
-      aDist[i] = sqrt(anArcPoints[i][0] * anArcPoints[i][0] + 
+      aDist[i] = sqrt(anArcPoints[i][0] * anArcPoints[i][0] +
                       anArcPoints[i][1] * anArcPoints[i][1]);
     }
   }