]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #1834: Fix length of lines
authorvsv <vitaly.smetannikov@opencascade.com>
Wed, 2 Nov 2016 14:49:41 +0000 (17:49 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Wed, 2 Nov 2016 14:50:08 +0000 (17:50 +0300)
45 files changed:
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Builder.cpp
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Builder.h
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_EntityWrapper.h
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.h
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Storage.cpp
src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Storage.h
src/SketchSolver/SketchSolver_Builder.cpp
src/SketchSolver/SketchSolver_Builder.h
src/SketchSolver/SketchSolver_Constraint.cpp
src/SketchSolver/SketchSolver_Constraint.h
src/SketchSolver/SketchSolver_ConstraintAngle.cpp
src/SketchSolver/SketchSolver_ConstraintCoincidence.cpp
src/SketchSolver/SketchSolver_ConstraintCollinear.cpp
src/SketchSolver/SketchSolver_ConstraintCollinear.h
src/SketchSolver/SketchSolver_ConstraintDistance.cpp
src/SketchSolver/SketchSolver_ConstraintDistance.h
src/SketchSolver/SketchSolver_ConstraintEqual.cpp
src/SketchSolver/SketchSolver_ConstraintFixed.cpp
src/SketchSolver/SketchSolver_ConstraintFixed.h
src/SketchSolver/SketchSolver_ConstraintFixedArcRadius.cpp
src/SketchSolver/SketchSolver_ConstraintFixedArcRadius.h
src/SketchSolver/SketchSolver_ConstraintLength.cpp
src/SketchSolver/SketchSolver_ConstraintMiddle.cpp
src/SketchSolver/SketchSolver_ConstraintMiddle.h
src/SketchSolver/SketchSolver_ConstraintMirror.cpp
src/SketchSolver/SketchSolver_ConstraintMovement.cpp
src/SketchSolver/SketchSolver_ConstraintMovement.h
src/SketchSolver/SketchSolver_ConstraintMulti.cpp
src/SketchSolver/SketchSolver_ConstraintMulti.h
src/SketchSolver/SketchSolver_ConstraintMultiRotation.cpp
src/SketchSolver/SketchSolver_ConstraintMultiTranslation.cpp
src/SketchSolver/SketchSolver_ConstraintTangent.cpp
src/SketchSolver/SketchSolver_Error.h
src/SketchSolver/SketchSolver_Group.cpp
src/SketchSolver/SketchSolver_Group.h
src/SketchSolver/SketchSolver_Manager.cpp
src/SketchSolver/SketchSolver_Manager.h
src/SketchSolver/SketchSolver_Storage.cpp
src/SketchSolver/SketchSolver_Storage.h
src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Builder.cpp
src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Builder.h
src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Solver.h
src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Storage.cpp
src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Storage.h

index fd02a9d20d5905d659227d51b722143564940da0..dd044ca69f870391657ce0692d24f68c14f1eab1 100644 (file)
@@ -387,7 +387,8 @@ std::list<ConstraintWrapperPtr> PlaneGCSSolver_Builder::createMirror(
     aResult.insert(aResult.end(), aMrrList.begin(), aMrrList.end());
   }
   else if (theEntity1->type() == ENTITY_ARC) {
-    // Do not allow mirrored arc recalculate its position until coordinated of all points recalculated
+    // Do not allow mirrored arc recalculate its position until 
+    // coordinated of all points recalculated
     FeaturePtr aMirrArc = theEntity2->baseFeature();
     aMirrArc->data()->blockSendAttributeUpdated(true);
 
@@ -403,7 +404,8 @@ std::list<ConstraintWrapperPtr> PlaneGCSSolver_Builder::createMirror(
     aMrrList = createMirror(theConstraint, theGroupID, theSketchID, *anIt1, *anIt2, theMirrorLine);
     aResult.insert(aResult.end(), aMrrList.begin(), aMrrList.end());
 
-    // make symmetric last point of original arc and first point of mirrored arc without additional constraint
+    // make symmetric last point of original arc and first point of 
+    // mirrored arc without additional constraint
     ++anIt1;
     --anIt2;
     makeMirrorPoints(*anIt1, *anIt2, theMirrorLine);
@@ -620,7 +622,8 @@ std::shared_ptr<PlaneGCSSolver_ScalarWrapper> createScalar(
     const GroupID& theGroupID,
     AttributeDoublePtr theDoubleAttr)
 {
-  ParameterWrapperPtr aParam = createParameter(theGroupID, theDoubleAttr ? theDoubleAttr->value() : 0.0);
+  ParameterWrapperPtr aParam = 
+    createParameter(theGroupID, theDoubleAttr ? theDoubleAttr->value() : 0.0);
   return std::shared_ptr<PlaneGCSSolver_ScalarWrapper>(
       new PlaneGCSSolver_ScalarWrapper(theDoubleAttr, aParam));
 }
@@ -660,7 +663,8 @@ EntityWrapperPtr createLine(FeaturePtr theFeature,
   aLine->p2 = *(aEndEnt->point());
 
   aNewEntity = EntityWrapperPtr(new PlaneGCSSolver_EntityWrapper(theFeature, aLine));
-  aNewEntity->setGroup(theGroupID); // sub-entities should not change their groups, therefore they are added later
+  // sub-entities should not change their groups, therefore they are added later
+  aNewEntity->setGroup(theGroupID); 
   aNewEntity->setSubEntities(aSubs);
   return aNewEntity;
 }
@@ -697,7 +701,8 @@ EntityWrapperPtr createCircle(FeaturePtr theFeature,
   aCircle->rad = aRadiusEnt->scalar();
 
   aNewEntity = EntityWrapperPtr(new PlaneGCSSolver_EntityWrapper(theFeature, aCircle));
-  aNewEntity->setGroup(theGroupID); // sub-entities should not change their groups, therefore they are added later
+  // sub-entities should not change their groups, therefore they are added later
+  aNewEntity->setGroup(theGroupID); 
   aNewEntity->setSubEntities(aSubs);
   return aNewEntity;
 }
@@ -753,7 +758,8 @@ EntityWrapperPtr createArc(FeaturePtr theFeature,
   anArc->rad        = aRadius->scalar();
 
   aNewEntity = EntityWrapperPtr(new PlaneGCSSolver_EntityWrapper(theFeature, anArc));
-  aNewEntity->setGroup(theGroupID); // sub-entities should not change their groups, therefore they are added later
+  // sub-entities should not change their groups, therefore they are added later
+  aNewEntity->setGroup(theGroupID); 
   aNewEntity->setSubEntities(aSubs);
   return aNewEntity;
 }
@@ -807,7 +813,8 @@ ConstraintWrapperPtr createConstraintPointOnEntity(
     }
   case ENTITY_ARC:
   case ENTITY_CIRCLE: {
-    std::shared_ptr<GCS::Circle> aCirc = std::dynamic_pointer_cast<GCS::Circle>(theEntity->entity());
+    std::shared_ptr<GCS::Circle> aCirc = 
+      std::dynamic_pointer_cast<GCS::Circle>(theEntity->entity());
     aNewConstr = GCSConstraintPtr(
         new GCS::ConstraintP2PDistance(*(thePoint->point()), aCirc->center, aCirc->rad));
     break;
@@ -856,7 +863,8 @@ ConstraintWrapperPtr createConstraintMiddlePoint(
   aConstrList.push_back(GCSConstraintPtr(new GCS::ConstraintPointOnLine(*aPoint, *aLine)));
   double aDist = lineLength(*aLine);
   std::shared_ptr<PlaneGCSSolver_ParameterWrapper> aDistance =
-      std::dynamic_pointer_cast<PlaneGCSSolver_ParameterWrapper>(createParameter(theGroupID, aDist * 0.5));
+      std::dynamic_pointer_cast<PlaneGCSSolver_ParameterWrapper>(
+      createParameter(theGroupID, aDist * 0.5));
   aConstrList.push_back(GCSConstraintPtr(
       new GCS::ConstraintP2PDistance(*aPoint, aLine->p1, aDistance->parameter())));
   aConstrList.push_back(GCSConstraintPtr(
@@ -931,7 +939,8 @@ ConstraintWrapperPtr createConstraintRadius(
     std::shared_ptr<PlaneGCSSolver_ParameterWrapper> theValue,
     std::shared_ptr<PlaneGCSSolver_EntityWrapper> theEntity)
 {
-  std::shared_ptr<GCS::Circle> aCircle = std::dynamic_pointer_cast<GCS::Circle>(theEntity->entity());
+  std::shared_ptr<GCS::Circle> aCircle = 
+    std::dynamic_pointer_cast<GCS::Circle>(theEntity->entity());
   GCSConstraintPtr aNewConstr(new GCS::ConstraintEqual(aCircle->rad, theValue->parameter()));
 
   std::shared_ptr<PlaneGCSSolver_ConstraintWrapper> aResult(
@@ -1111,13 +1120,18 @@ ConstraintWrapperPtr createConstraintTangent(
 {
   GCSConstraintPtr aNewConstr;
   if (theType == CONSTRAINT_TANGENT_ARC_LINE || theType == CONSTRAINT_TANGENT_CIRCLE_LINE) {
-    std::shared_ptr<GCS::Circle> aCirc = std::dynamic_pointer_cast<GCS::Circle>(theEntity1->entity());
-    std::shared_ptr<GCS::Line> aLine = std::dynamic_pointer_cast<GCS::Line>(theEntity2->entity());
+    std::shared_ptr<GCS::Circle> aCirc = 
+      std::dynamic_pointer_cast<GCS::Circle>(theEntity1->entity());
+    std::shared_ptr<GCS::Line> aLine = 
+      std::dynamic_pointer_cast<GCS::Line>(theEntity2->entity());
 
-    aNewConstr = GCSConstraintPtr(new GCS::ConstraintP2LDistance(aCirc->center, *aLine, aCirc->rad));
+    aNewConstr = 
+      GCSConstraintPtr(new GCS::ConstraintP2LDistance(aCirc->center, *aLine, aCirc->rad));
   } else {
-    std::shared_ptr<GCS::Circle> aCirc1 = std::dynamic_pointer_cast<GCS::Circle>(theEntity1->entity());
-    std::shared_ptr<GCS::Circle> aCirc2 = std::dynamic_pointer_cast<GCS::Circle>(theEntity2->entity());
+    std::shared_ptr<GCS::Circle> aCirc1 = 
+      std::dynamic_pointer_cast<GCS::Circle>(theEntity1->entity());
+    std::shared_ptr<GCS::Circle> aCirc2 = 
+      std::dynamic_pointer_cast<GCS::Circle>(theEntity2->entity());
 
     double aDX = *(aCirc1->center.x) - *(aCirc2->center.x);
     double aDY = *(aCirc1->center.y) - *(aCirc2->center.y);
@@ -1160,9 +1174,11 @@ void makeMirrorPoints(EntityWrapperPtr theOriginal,
     (*aMIt)->setValue(aCoord[i]);
 
   // update corresponding attribute
-  AttributePtr anAttr = std::dynamic_pointer_cast<PlaneGCSSolver_PointWrapper>(theMirrored)->baseAttribute();
+  AttributePtr anAttr = 
+    std::dynamic_pointer_cast<PlaneGCSSolver_PointWrapper>(theMirrored)->baseAttribute();
   if (anAttr) {
-    std::shared_ptr<GeomDataAPI_Point2D> aMirroredPnt = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(anAttr);
+    std::shared_ptr<GeomDataAPI_Point2D> aMirroredPnt = 
+      std::dynamic_pointer_cast<GeomDataAPI_Point2D>(anAttr);
     aMirroredPnt->setValue(aCoord[0], aCoord[1]);
   }
 }
index a1402237c2918e59369428827686e2abe948ee37..5f59b6a25f8cc4e2288ae303a5d5b1daa5e50e93 100644 (file)
@@ -40,7 +40,8 @@ public:
   /// \param theGroupID    [in]  group the constraint belongs to
   /// \param theSketchID   [in]  sketch the constraint belongs to
   /// \param theType       [in]  type of constraint
-  /// \param theValue      [in]  numeric characteristic of constraint (e.g. distance or radius) if applicable
+  /// \param theValue      [in]  numeric characteristic of constraint 
+  ///                            (e.g. distance or radius) if applicable
   /// \param theEntity1    [in]  first attribute of constraint
   /// \param theEntity2    [in]  second attribute of constraint
   /// \param theEntity3    [in]  third attribute of constraint
@@ -64,8 +65,10 @@ public:
   /// \param theGroupID    [in]  group the constraint belongs to
   /// \param theSketchID   [in]  sketch the constraint belongs to
   /// \param theType       [in]  type of constraint
-  /// \param theValue      [in]  numeric characteristic of constraint (angle for multi-rotation) if applicable
-  /// \param theFullValue  [in]  indicates theValue shows full translation delta/rotation angle or delta/angle between neighbor entities
+  /// \param theValue      [in]  numeric characteristic of constraint (angle for multi-rotation) 
+  ///                            if applicable
+  /// \param theFullValue  [in]  indicates theValue shows full translation delta/rotation 
+  ///                            angle or delta/angle between neighbor entities
   /// \param thePoint1     [in]  center for multi-rotation or start point for multi-translation
   /// \param thePoint2     [in]  end point for multi-translation (empty for multi-rotation)
   /// \param theTrsfEnt    [in]  list of transformed entities
index cb107b7d71d6dedfef54445b810ce07365693f36..976299a60f3be97160e0d6c30b879675fd83e925 100644 (file)
@@ -16,7 +16,8 @@
 class PlaneGCSSolver_EntityWrapper : public SketchSolver_IEntityWrapper
 {
 public:
-  PlaneGCSSolver_EntityWrapper(const FeaturePtr theFeature, const GCSCurvePtr theEntity = GCSCurvePtr());
+  PlaneGCSSolver_EntityWrapper(const FeaturePtr theFeature, 
+                               const GCSCurvePtr theEntity = GCSCurvePtr());
 
   /// \brief Return PlaneGCS geometric entity
   const GCSCurvePtr& entity() const
index 01aa0da3887e3b18168d37365039e09fcd2f40b0..7522367f6719bd9252e370695ee77e0683eefaf0 100644 (file)
@@ -91,7 +91,8 @@ SketchSolver_SolveStatus PlaneGCSSolver_Solver::solve()
 
   GCS::VEC_I aRedundantID;
 
-  // Workaround: the system with tangent constraint may fail if the tangent entities are connected smoothly.
+  // Workaround: the system with tangent constraint 
+  // may fail if the tangent entities are connected smoothly.
   // Investigate this situation and move constraints to redundant list
   if (aResult == GCS::Failed && !myTangent.empty()) {
     GCS::VEC_I aConflictingID;
@@ -127,7 +128,8 @@ SketchSolver_SolveStatus PlaneGCSSolver_Solver::solve()
           }
       }
     }
-    // The system with tangent constraints may show redundant constraints if the entities are coupled smoothly.
+    // The system with tangent constraints may show redundant constraints 
+    // if the entities are coupled smoothly.
     // Sometimes tangent constraints are fall to both conflicting and redundant constraints.
     // Need to check if there are redundant constraints without these tangencies.
     if (!aRedundantID.empty())
index c3b4b61104516a39e0ca8b617285d0a87b7606f2..b9016cecada3975f59dded241397a8490a94ee20 100644 (file)
@@ -79,13 +79,18 @@ private:
   typedef std::map<GCS::Constraint*, SketchSolver_ConstraintType> ConstraintMap;
 
   GCS::VEC_pD                  myParameters;     ///< list of unknowns
-  ConstraintMap                myConstraints;    ///< list of constraints already processed by the system
+
+  /// list of constraints already processed by the system
+  ConstraintMap                myConstraints;    
   std::shared_ptr<GCS::System> myEquationSystem; ///< set of equations for solving in FreeGCS
 
   GCS::SET_I                   myConflictingIDs; ///< list of IDs of conflicting constraints
-  bool                         myConfCollected;  ///< specifies the conflicting constraints are already collected
 
-  GCS::SET_I                   myTangent;        ///< list of tangent IDs to check incorrect redundant constraints
+  /// specifies the conflicting constraints are already collected
+  bool                         myConfCollected;  
+
+  /// list of tangent IDs to check incorrect redundant constraints
+  GCS::SET_I                   myTangent;
 };
 
 #endif
index 2b83759b82ce4ddada533dfc4b174cd4e76e36bb..79341324d9ceeb6d7d4ce28b875aedc47aeb8c59 100644 (file)
@@ -390,9 +390,11 @@ void PlaneGCSSolver_Storage::processArc(const EntityWrapperPtr& theArc)
   std::list<EntityWrapperPtr>::const_iterator aSubIt = aSubs.begin();
   while ((*aSubIt)->type() == ENTITY_POINT) // search scalar entities
     ++aSubIt;
-  double* aStartAngle = std::dynamic_pointer_cast<PlaneGCSSolver_ScalarWrapper>(*aSubIt++)->scalar();
-  double* aEndAngle   = std::dynamic_pointer_cast<PlaneGCSSolver_ScalarWrapper>(*aSubIt++)->scalar();
-  double* aRadius     = std::dynamic_pointer_cast<PlaneGCSSolver_ScalarWrapper>(*aSubIt)->scalar();
+  double* aStartAngle = 
+    std::dynamic_pointer_cast<PlaneGCSSolver_ScalarWrapper>(*aSubIt++)->scalar();
+  double* aEndAngle =
+    std::dynamic_pointer_cast<PlaneGCSSolver_ScalarWrapper>(*aSubIt++)->scalar();
+  double* aRadius = std::dynamic_pointer_cast<PlaneGCSSolver_ScalarWrapper>(*aSubIt)->scalar();
 
   std::shared_ptr<SketchPlugin_Feature> anArcFeature =
       std::dynamic_pointer_cast<SketchPlugin_Feature>(theArc->baseFeature());
@@ -573,7 +575,8 @@ bool PlaneGCSSolver_Storage::isRedundant(
 
     std::list<std::set<double*> >::iterator aCoincIt, aFound1, aFound2;
     aFound1 = aFound2 = theCoincidentPoints.end();
-    for (aCoincIt = theCoincidentPoints.begin(); aCoincIt != theCoincidentPoints.end(); ++aCoincIt) {
+    for (aCoincIt = theCoincidentPoints.begin(); 
+         aCoincIt != theCoincidentPoints.end(); ++aCoincIt) {
       if (aFound1 == theCoincidentPoints.end() && aCoincIt->find(aParams[0]) != aCoincIt->end())
         aFound1 = aCoincIt;
       if (aFound2 == theCoincidentPoints.end() && aCoincIt->find(aParams[1]) != aCoincIt->end())
@@ -773,8 +776,10 @@ EntityWrapperPtr PlaneGCSSolver_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;
@@ -795,8 +800,10 @@ EntityWrapperPtr PlaneGCSSolver_Storage::calculateMiddlePoint(
   aParameters.push_back(aBuilder->createParameter(myGroupID, aMidPoint->y()));
   // Create entity (parameters are not filled)
   GCSPointPtr aPnt(new GCS::Point);
-  aPnt->x = std::dynamic_pointer_cast<PlaneGCSSolver_ParameterWrapper>(aParameters.front())->parameter();
-  aPnt->y = std::dynamic_pointer_cast<PlaneGCSSolver_ParameterWrapper>(aParameters.back())->parameter();
+  aPnt->x = 
+    std::dynamic_pointer_cast<PlaneGCSSolver_ParameterWrapper>(aParameters.front())->parameter();
+  aPnt->y = 
+    std::dynamic_pointer_cast<PlaneGCSSolver_ParameterWrapper>(aParameters.back())->parameter();
 
   EntityWrapperPtr aResult(new PlaneGCSSolver_PointWrapper(AttributePtr(), aPnt));
   aResult->setGroup(myGroupID);
index 75e0b725e5b34860d9940aa7562cd6f97c4630b8..882cffa12ea619fb3a21fcb7a0e7e77e35eb9980 100644 (file)
@@ -117,10 +117,12 @@ private:
   EntityID                         myEntityLastID;       ///< identifier of last added entity
   ConstraintID                     myConstraintLastID;   ///< identifier of last added constraint
 
+  /// additional constraints for correct processing of the arcs
   std::map<EntityWrapperPtr, std::vector<GCSConstraintPtr> >
-                                   myArcConstraintMap;   ///< additional constraints for correct processing of the arcs
+                                   myArcConstraintMap;   
 
-  std::list<GCSConstraintPtr>      myRemovedConstraints; ///< list of removed constraints to notify solver
+  /// list of removed constraints to notify solver
+  std::list<GCSConstraintPtr>      myRemovedConstraints; 
 };
 
 #endif
index 451e2141ff9f5778f1d3f0814ed51bd47586086f..7cb7425fe109ee542547fd97a471a154aa91a572 100644 (file)
@@ -61,7 +61,8 @@ SolverConstraintPtr SketchSolver_Builder::createConstraint(ConstraintPtr theCons
         ResultConstructionPtr aRC =
             std::dynamic_pointer_cast<ModelAPI_ResultConstruction>(aRefAttr->object());
         if (!aRC)
-          Events_InfoMessage("SketchSolver_Builder", SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this).send();
+          Events_InfoMessage("SketchSolver_Builder", 
+                             SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this).send();
       }
       continue;
     }
@@ -73,7 +74,8 @@ SolverConstraintPtr SketchSolver_Builder::createConstraint(ConstraintPtr theCons
         ResultConstructionPtr aRC =
             std::dynamic_pointer_cast<ModelAPI_ResultConstruction>(*aListIter);
         if (*aListIter && !aRC)
-          Events_InfoMessage("SketchSolver_Builder", SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this).send();
+          Events_InfoMessage("SketchSolver_Builder", 
+            SketchSolver_Error::NEED_OBJECT_NOT_FEATURE(), this).send();
       }
     }
   }
index fe34cb06e59db903ac594f557d2d74603f9c6306..f7775ea91922ec5fe19f5267968acc335f476239 100644 (file)
@@ -43,7 +43,8 @@ public:
   /// \param theGroupID    [in]  group the constraint belongs to
   /// \param theSketchID   [in]  sketch the constraint belongs to
   /// \param theType       [in]  type of constraint
-  /// \param theValue      [in]  numeric characteristic of constraint (e.g. distance or radius) if applicable
+  /// \param theValue      [in]  numeric characteristic of constraint 
+  /// (e.g. distance or radius) if applicable
   /// \param theEntity1    [in]  first attribute of constraint
   /// \param theEntity2    [in]  second attribute of constraint
   /// \param theEntity3    [in]  third attribute of constraint
@@ -67,8 +68,10 @@ public:
   /// \param theGroupID    [in]  group the constraint belongs to
   /// \param theSketchID   [in]  sketch the constraint belongs to
   /// \param theType       [in]  type of constraint
-  /// \param theValue      [in]  numeric characteristic of constraint (angle for multi-rotation) if applicable
-  /// \param theFullValue  [in]  indicates theValue shows full translation delta/rotation angle or delta/angle between neighbor entities
+  /// \param theValue      [in]  numeric characteristic of constraint (angle for multi-rotation) 
+  ///                            if applicable
+  /// \param theFullValue  [in]  indicates theValue shows full translation delta/rotation angle or 
+  ///  delta/angle between neighbor entities
   /// \param thePoint1     [in]  center for multi-rotation or start point for multi-translation
   /// \param thePoint2     [in]  end point for multi-translation (empty for multi-rotation)
   /// \param theTrsfEnt    [in]  list of transformed entities
@@ -116,8 +119,8 @@ public:
 
   /// \brief Check if two connected arcs have centers
   ///        in same direction relatively to connection point
-  SKETCHSOLVER_EXPORT virtual bool isArcArcTangencyInternal(EntityWrapperPtr theArc1, EntityWrapperPtr theArc2) const
-  { return false; }
+  SKETCHSOLVER_EXPORT virtual bool isArcArcTangencyInternal(EntityWrapperPtr theArc1, 
+    EntityWrapperPtr theArc2) const { return false; }
 };
 
 typedef std::shared_ptr<SketchSolver_Builder> BuilderPtr;
index c402ec7dd8adf39f515464d760625ba65f64518d..13396b8cf43602a9e834f4b986d5808e3d8e5133 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_Constraint.h>
 #include <SketchSolver_Group.h>
 #include <SketchSolver_Error.h>
@@ -256,7 +258,8 @@ bool SketchSolver_Constraint::isUsed(FeaturePtr theFeature) const
     if ((*aCIt)->isUsed(theFeature))
       return true;
 
-  std::list<AttributePtr> anAttrList = theFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
+  std::list<AttributePtr> anAttrList = 
+    theFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
   std::list<AttributePtr>::const_iterator anAttrIt = anAttrList.begin();
   for (; anAttrIt != anAttrList.end(); ++ anAttrIt)
     if (isUsed(*anAttrIt))
index dbb64762394677943d612f1cf8faa6e13257b0f1..2b4a30b0d8d01454030d264df40ed9eda6aa3658 100644 (file)
@@ -47,7 +47,8 @@ public:
   SKETCHSOLVER_EXPORT virtual void update();
 
   /// \brief Tries to remove constraint
-  /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence)
+  /// \return \c false, if current constraint contains another SketchPlugin constraints 
+  /// (like for multiple coincidence)
   SKETCHSOLVER_EXPORT virtual bool remove();
 
   /// \brief Obtain a type of SketchPlugin constraint
@@ -67,8 +68,8 @@ public:
   virtual bool isUsed(AttributePtr theAttribute) const;
 
   /// \brief Notify constraint, that coincidence appears or removed
-  virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, EntityWrapperPtr theCoincAttr2)
-  { /* implement in derived class */ }
+  virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, 
+    EntityWrapperPtr theCoincAttr2) { /* implement in derived class */ }
 
   /// \brief Shows error message
   const std::string& error() const
@@ -96,7 +97,9 @@ protected:
   GroupID       myGroupID;  ///< identifier of the group, the constraint belongs to
   EntityID      mySketchID; ///< identifier of the sketch, the constraint belongs to
   ConstraintPtr myBaseConstraint; ///< base SketchPlugin constraint
-  StoragePtr    myStorage; ///< storage, which contains all information about entities and constraints
+
+  /// storage, which contains all information about entities and constraints
+  StoragePtr    myStorage; 
   SketchSolver_ConstraintType myType; ///< type of constraint
   std::list<EntityWrapperPtr> myAttributes; ///< attributes of constraint
 
index 6138e3062cf3cb2f0b00ca4d6935a7edd35900b2..7a6a4ac0f3efc3d059b2862a147de0abaa3b7dc3 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintAngle.h>
 #include <SketchSolver_Manager.h>
 
index 934966b523121cc8800b88d63e369fc1a6d3cf39..18594018c4f38fe3c38f00aa468eae76d1d478d2 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintCoincidence.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
index 6827826248153c3eedbe7113e2db54b1a83a20ce..194d47aa012ddbb9ab0b4ef7ef732f3e12b54f55 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintCollinear.h>
 #include <SketchSolver_Manager.h>
 
index 6299740dd14eb6d654ed4a355f09b28127863a7b..6e06053ae0916016f937f7540705dc658ddddad7 100644 (file)
@@ -22,7 +22,8 @@ public:
   virtual ~SketchSolver_ConstraintCollinear() {}
 
   /// \brief Notify constraint, that coincidence appears or removed
-  virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, EntityWrapperPtr theCoincAttr2);
+  virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, 
+                                        EntityWrapperPtr theCoincAttr2);
 };
 
 #endif
index 5bbcd791977b6d9736ec7ee7d50cfec2a4d7d8c4..afe792932bd99f06b85e9d2a49e76bb7b774b388 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintDistance.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
index b11e0a8a55d730345d30c641502df30ecb52f0f7..9448b3c5dbb3b29ca4e6a6687c036a3499c636a3 100644 (file)
@@ -38,7 +38,9 @@ protected:
 
 private:
   double myPrevValue; ///< previous value of distance (for correct calculation of a distance sign)
-  bool myIsNegative;  ///< \c true, if the point if placed rightside of line direction (SLVS_C_PT_LINE_DISTANCE only)
+
+  /// \c true, if the point if placed rightside of line direction (SLVS_C_PT_LINE_DISTANCE only)
+  bool myIsNegative;  
 };
 
 #endif
index a6120533ecb1a46f21b0a1673071e8aa8b3a4410..33cb9f5dd5755d8c686b19402dcf8dd547155a88 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintEqual.h>
 #include <SketchSolver_Error.h>
 
index 73c1a52202dbe1dece1003a9518798178f9cac4e..ca14864cb5cf8f5b00013eaaf8f25d444f9970cf 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintFixed.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
index 87bdd6d358757085d5a2199a6dee9ebf6819ce72..57f2d50d88c814aecff0c3efd10100b28dfb7a28 100644 (file)
@@ -29,7 +29,8 @@ public:
   SketchSolver_ConstraintFixed(FeaturePtr theFeature);
 
   /// \brief Tries to remove constraint
-  /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence)
+  /// \return \c false, if current constraint contains another 
+  /// SketchPlugin constraints (like for multiple coincidence)
   virtual bool remove();
 
 protected:
@@ -39,7 +40,8 @@ protected:
   /// \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(ParameterWrapperPtr& theValue, std::vector<EntityWrapperPtr>& theAttributes);
+  virtual void getAttributes(ParameterWrapperPtr& theValue, 
+                             std::vector<EntityWrapperPtr>& theAttributes);
 
   /// \brief Fixed feature basing on its type
   /// \param theFeature [in]  feature, converted to solver specific format
index 05f071f4ff60b403f830fb950063d7ee913afca8..af32f1943a568b798a9ebb5ee69040ee1b680b71 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintFixedArcRadius.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
index f4fc805c311e3b69d450f08d8bd4834c5a35a19a..70f6e8295d598525c75625f049388da5f8443388 100644 (file)
@@ -21,7 +21,8 @@ public:
   SketchSolver_ConstraintFixedArcRadius(FeaturePtr theFeature);
 
   /// \brief Tries to remove constraint
-  /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence)
+  /// \return \c false, if current constraint contains another SketchPlugin constraints 
+  /// (like for multiple coincidence)
   virtual bool remove();
 
 protected:
index 5c3bbc088637187d5ee63c0cd3d746e27c89196f..714fe0cce0623eb8c117486c14cbed9269a09d76 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintLength.h>
 #include <SketchSolver_Error.h>
 
index 362bc58ccdc301c1cf5fe676b6337c9b2e6fa0d4..69de3881e0c751381c97375320a71c41c38ac9f2 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintMiddle.h>
 
 #include <SketchSolver_Builder.h>
index b86e714f5b756816a56d5de6db9c86e76cf64157..6ab5400fb09b15808bf7cd94a4b13740083fc578 100644 (file)
@@ -22,7 +22,8 @@ public:
   virtual ~SketchSolver_ConstraintMiddle() {}
 
   /// \brief Notify constraint, that coincidence appears or removed
-  virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, EntityWrapperPtr theCoincAttr2);
+  virtual void notifyCoincidenceChanged(EntityWrapperPtr theCoincAttr1, 
+                                        EntityWrapperPtr theCoincAttr2);
 };
 
 #endif
index 63867f1c3bd7c6c7eaf3171d301a650745dbaf81..c91121d767ff46ea17f319e621e3165a1ae06e4b 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintMirror.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
index 7f4c8d78be74bc356fa3c967a41d612b9bbb1b0f..110741c5610c31908cbb3ef58e02be77d460b3d2 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintMovement.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
@@ -49,7 +51,8 @@ static std::list<EntityWrapperPtr> movedEntities(
   for (; anOldIt != anOldSubs.end() && aNewIt != aNewSubs.end(); ++anOldIt, ++aNewIt) {
     std::list<EntityWrapperPtr> aMovedSubs = movedEntities(
         *anOldIt, theOldStorage, *aNewIt, theNewStorage);
-    if ((*anOldIt)->type() == ENTITY_POINT && // check only the points to be moved (because arcs in PlaneGCS have scalar subs too)
+    // check only the points to be moved (because arcs in PlaneGCS have scalar subs too)
+    if ((*anOldIt)->type() == ENTITY_POINT && 
        (aMovedSubs.size() != 1 || aMovedSubs.front() != *anOldIt))
       isFullyMoved = false;
     aMoved.insert(aMoved.end(), aMovedSubs.begin(), aMovedSubs.end());
index 93b2ea001f756e2e41b544bb30070f773556c8c1..484b7bb56a0da1a351a7c31992d6f38786cca52c 100644 (file)
@@ -29,7 +29,8 @@ public:
   {}
 
   /// \brief Tries to remove constraint
-  /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence)
+  /// \return \c false, if current constraint contains another SketchPlugin 
+  /// constraints (like for multiple coincidence)
   virtual bool remove();
 
 protected:
@@ -38,8 +39,10 @@ protected:
 
   /// \brief Generate list of attributes of constraint in order useful for SolveSpace constraints
   /// \param[out] theValue        numerical characteristic of constraint (e.g. distance)
-  /// \param[out] theAttributes   list of attributes to be filled (list of moved entities or attributes)
-  virtual void getAttributes(ParameterWrapperPtr& theValue, std::vector<EntityWrapperPtr>& theAttributes);
+  /// \param[out] theAttributes   list of attributes to be filled 
+  /// (list of moved entities or attributes)
+  virtual void getAttributes(ParameterWrapperPtr& theValue, 
+                             std::vector<EntityWrapperPtr>& theAttributes);
 
 private:
   std::vector<EntityWrapperPtr> myMovedEntities; ///< list of entities that are moved
index 0ee95310fd3844a9d9d3cb148acebcc09400e0a7..bd0a82ad3206962483ae6a6bffa4b5d5fe5b5fa8 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintMulti.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
@@ -35,7 +37,8 @@ void SketchSolver_ConstraintMulti::getEntities(std::list<EntityWrapperPtr>& theE
   FeaturePtr aFeature;
   std::list<ObjectPtr> anObjectList = aRefList->list();
   std::list<ObjectPtr>::iterator anObjIt = anObjectList.begin();
-  if ((myNumberOfCopies + 1) * myNumberOfObjects != aRefList->size()) // execute for the feature is not called yet
+  // execute for the feature is not called yet
+  if ((myNumberOfCopies + 1) * myNumberOfObjects != aRefList->size()) 
     myNumberOfCopies = aRefList->size() / myNumberOfObjects - 1;
 
   while (anObjIt != anObjectList.end()) {
@@ -43,7 +46,8 @@ void SketchSolver_ConstraintMulti::getEntities(std::list<EntityWrapperPtr>& theE
     if (!aFeature)
       continue;
 
-    if (!myStorage->update(aFeature)) // the entity is not created, so it is a copy in "multi" constraint, force its creation
+    // the entity is not created, so it is a copy in "multi" constraint, force its creation
+    if (!myStorage->update(aFeature)) 
       myStorage->update(aFeature, myGroupID, true);
     theEntities.push_back(myStorage->entity(aFeature));
     myFeatures.insert(aFeature);
@@ -75,7 +79,8 @@ void SketchSolver_ConstraintMulti::update(bool isForce)
   AttributeIntegerPtr aNbObjects = myBaseConstraint->integer(nameNbObjects());
   if (!anInitialRefList || !aNbObjects)
     return; // the "Multi" constraint is in queue to remove
-  bool isUpdated= anInitialRefList->size() != myNumberOfObjects || aNbObjects->value()-1 != myNumberOfCopies;
+  bool isUpdated = 
+    anInitialRefList->size() != myNumberOfObjects || aNbObjects->value()-1 != myNumberOfCopies;
   if (!isUpdated) {
     // additional check that the features and their copies are changed
     AttributeRefListPtr aRefList = std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(
index 5dfc0c1a7a6446336e430fc6c34506e4f63efa7d..820d478218edd8f59389f51dc5f428e354d10b6f 100644 (file)
@@ -34,7 +34,8 @@ public:
   void update(bool isForce);
 
   /// \brief Tries to remove constraint
-  /// \return \c false, if current constraint contains another SketchPlugin constraints (like for multiple coincidence)
+  /// \return \c false, if current constraint contains another SketchPlugin 
+  /// constraints (like for multiple coincidence)
   virtual bool remove();
 
   /// \brief Check the feature is a source or a copy of Multi-constraint
@@ -80,7 +81,8 @@ protected:
 
   bool myAdjusted; ///< the constraint is already adjusted (to not do it several times)
 
-  std::set<FeaturePtr> myFeatures; ///< list of features and their copies to find whether some of them are disappeared
+  /// list of features and their copies to find whether some of them are disappeared
+  std::set<FeaturePtr> myFeatures; 
 };
 
 #endif
index bd53679d9ae635b2882bc62374c5703e5b936a76..524b29a146c0a8637188986f0f1bc710e8e6fced 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintMultiRotation.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
@@ -55,7 +57,8 @@ void SketchSolver_ConstraintMultiRotation::process()
   for (; anEntIt != aBaseEntities.end(); ++anEntIt) {
     std::list<ConstraintWrapperPtr> aNewConstraints =
         aBuilder->createConstraint(myBaseConstraint, myGroupID, mySketchID, myType,
-        myAngle, isFullValue, aRotationCenter, EntityWrapperPtr(), std::list<EntityWrapperPtr>(1, *anEntIt));
+        myAngle, isFullValue, aRotationCenter, EntityWrapperPtr(), 
+        std::list<EntityWrapperPtr>(1, *anEntIt));
     aRotConstraints.insert(aRotConstraints.end(), aNewConstraints.begin(), aNewConstraints.end());
   }
   myStorage->addConstraint(myBaseConstraint, aRotConstraints);
index 2bea9a21774d8e3765694ad8a32a3c1af603763c..32f55074a2d9b528ad8fa9ab9fb8c982cca3d2b5 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintMultiTranslation.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
@@ -60,7 +62,8 @@ void SketchSolver_ConstraintMultiTranslation::process()
     std::list<ConstraintWrapperPtr> aNewConstraints =
         aBuilder->createConstraint(myBaseConstraint, myGroupID, mySketchID, myType,
         0.0, aFullValue, aStartPoint, aEndPoint, std::list<EntityWrapperPtr>(1, *anEntIt));
-    aTransConstraints.insert(aTransConstraints.end(), aNewConstraints.begin(), aNewConstraints.end());
+    aTransConstraints.insert(aTransConstraints.end(), 
+                             aNewConstraints.begin(), aNewConstraints.end());
   }
 
   myStorage->addConstraint(myBaseConstraint, aTransConstraints);
@@ -111,7 +114,8 @@ void SketchSolver_ConstraintMultiTranslation::updateLocal()
                                                   aSLast = aConstraintEntities.end();
       EntityWrapperPtr aStartEntity = *aSIt++;
       if (aStartPointChanged) {
-        AttributePtr aStartPointAttr = aData->attribute(SketchPlugin_MultiTranslation::START_POINT_ID());
+        AttributePtr aStartPointAttr = 
+          aData->attribute(SketchPlugin_MultiTranslation::START_POINT_ID());
         myStorage->update(aStartPointAttr);
         aStartEntity = myStorage->entity(aStartPointAttr);
       }
@@ -119,7 +123,8 @@ void SketchSolver_ConstraintMultiTranslation::updateLocal()
 
       EntityWrapperPtr anEndEntity = *aSIt++;
       if (anEndPointChanged) {
-        AttributePtr anEndPointAttr = aData->attribute(SketchPlugin_MultiTranslation::END_POINT_ID());
+        AttributePtr anEndPointAttr = 
+          aData->attribute(SketchPlugin_MultiTranslation::END_POINT_ID());
         myStorage->update(anEndPointAttr);
         anEndEntity = myStorage->entity(anEndPointAttr);
       }
index 29744ea32e41f923479ccc57085fdf1b28763fb2..1a257a5307ee4a375d0363ba59ba629c272a1f79 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 #include <SketchSolver_ConstraintTangent.h>
 #include <SketchSolver_Error.h>
 #include <SketchSolver_Manager.h>
index 2e143145437364c8cce1525f00ae10bf3673cb72..148e5de066b9625db41f295f13442f3368dc54d6 100644 (file)
@@ -20,13 +20,15 @@ class SketchSolver_Error
   /// The value parameter for the constraint
   inline static const std::string& CONSTRAINTS()
   {
-    static const std::string MY_ERROR_VALUE("The constraint is conflicting with others. To fix this, you can either undo your operation or remove a conflicting constraint.");
+    static const std::string MY_ERROR_VALUE("The constraint is conflicting with others. \
+ To fix this, you can either undo your operation or remove a conflicting constraint.");
     return MY_ERROR_VALUE;
   }
   /// Constraints should use objects instead of features as attributes
   inline static const std::string& NEED_OBJECT_NOT_FEATURE()
   {
-    static const std::string MY_ERROR_VALUE("Constraint should be based on object instead of feature");
+    static const std::string 
+      MY_ERROR_VALUE("Constraint should be based on object instead of feature");
     return MY_ERROR_VALUE;
   }
   /// The entities need to have shared point, but they have not
@@ -65,10 +67,12 @@ class SketchSolver_Error
     static const std::string MY_ERROR_VALUE("Entity already fixed");
     return MY_ERROR_VALUE;
   }
-  /// Tangency constraint has been built with wrong attributes (for example, line and arc have two coincident points)
+  /// Tangency constraint has been built with wrong attributes 
+  /// (for example, line and arc have two coincident points)
   inline static const std::string& TANGENCY_FAILED()
   {
-    static const std::string MY_ERROR_VALUE("Unable to create tangency constraint on given attributes");
+    static const std::string 
+      MY_ERROR_VALUE("Unable to create tangency constraint on given attributes");
     return MY_ERROR_VALUE;
   }
   /// Crash in SolveSpace
index 5a1ff49fbc122747495399c842cf2cb7ea2c201d..67e0d6cccf0e80d795d331a98bc07d529159a4db 100644 (file)
@@ -378,7 +378,8 @@ bool SketchSolver_Group::resolveConstraints()
       }
     } catch (...) {
 //      Events_Error::send(SketchSolver_Error::SOLVESPACE_CRASH(), this);
-      getWorkplane()->string(SketchPlugin_Sketch::SOLVER_ERROR())->setValue(SketchSolver_Error::SOLVESPACE_CRASH());
+      getWorkplane()->string(SketchPlugin_Sketch::SOLVER_ERROR())
+        ->setValue(SketchSolver_Error::SOLVESPACE_CRASH());
       if (myPrevResult == STATUS_OK || myPrevResult == STATUS_UNKNOWN) {
         // the error message should be changed before sending the message
         sendMessage(EVENT_SOLVER_FAILED);
@@ -387,11 +388,13 @@ bool SketchSolver_Group::resolveConstraints()
       mySketchSolver->undo();
       return false;
     }
-    if (aResult == STATUS_OK || aResult == STATUS_EMPTYSET) {  // solution succeeded, store results into correspondent attributes
+    // solution succeeded, store results into correspondent attributes
+    if (aResult == STATUS_OK || aResult == STATUS_EMPTYSET) {  
       myStorage->setNeedToResolve(false);
       myStorage->refresh();
       updateMultiConstraints(myConstraints);
-      if (myStorage->isNeedToResolve()) // multi-constraints updated some parameters, need to store them
+      // multi-constraints updated some parameters, need to store them
+      if (myStorage->isNeedToResolve()) 
         resolveConstraints();
 
       if (myPrevResult != STATUS_OK || myPrevResult == STATUS_UNKNOWN) {
@@ -406,8 +409,11 @@ bool SketchSolver_Group::resolveConstraints()
       mySketchSolver->undo();
       if (!myConstraints.empty()) {
         // the error message should be changed before sending the message
-        getWorkplane()->string(SketchPlugin_Sketch::SOLVER_ERROR())->setValue(SketchSolver_Error::CONSTRAINTS());
-        if (myPrevResult != aResult || myPrevResult == STATUS_UNKNOWN || myPrevResult == STATUS_FAILED) {
+        getWorkplane()->string(SketchPlugin_Sketch::SOLVER_ERROR())
+          ->setValue(SketchSolver_Error::CONSTRAINTS());
+        if (myPrevResult != aResult || 
+            myPrevResult == STATUS_UNKNOWN || 
+            myPrevResult == STATUS_FAILED) {
           // Obtain list of conflicting constraints
           std::set<ObjectPtr> aConflicting = myStorage->getConflictingConstraints(mySketchSolver);
 
@@ -482,7 +488,8 @@ void SketchSolver_Group::splitGroup(std::list<SketchSolver_Group*>& theCuts)
 {
   // New storage will be used in trimmed way to store the list of constraint interacted together.
   StoragePtr aNewStorage = SketchSolver_Manager::instance()->builder()->createStorage(getId());
-  std::list<ConstraintWrapperPtr> aDummyVec; // empty vector to avoid creation of solver's constraints
+  // empty vector to avoid creation of solver's constraints
+  std::list<ConstraintWrapperPtr> aDummyVec; 
 
   // Obtain constraints, which should be separated
   std::list<ConstraintPtr> anUnusedConstraints;
@@ -494,7 +501,8 @@ void SketchSolver_Group::splitGroup(std::list<SketchSolver_Group*>& theCuts)
       anUnusedConstraints.push_back(aCIter->first);
   }
 
-  // Check the unused constraints once again, because they may become interacted with new storage since adding constraints
+  // Check the unused constraints once again, 
+  // because they may become interacted with new storage since adding constraints
   std::list<ConstraintPtr>::iterator aUnuseIt = anUnusedConstraints.begin();
   while (aUnuseIt != anUnusedConstraints.end()) {
     if (aNewStorage->isInteract(FeaturePtr(*aUnuseIt))) {
@@ -675,7 +683,8 @@ static double featureToVal(FeaturePtr theFeature)
     AttributeRefAttrPtr anAttrB = std::dynamic_pointer_cast<ModelAPI_AttributeRefAttr>(
         aConstraint->attribute(SketchPlugin_Constraint::ENTITY_B()));
     if (anAttrA && anAttrB && (anAttrA->isObject() || anAttrB->isObject()))
-      return 2.0; // point-on-line and point-on-circle should go before points coincidence constraint
+      // point-on-line and point-on-circle should go before points coincidence constraint
+      return 2.0; 
     return 2.5;
   }
   if (anID == SketchPlugin_ConstraintDistance::ID() ||
@@ -709,7 +718,8 @@ static bool isLess(FeaturePtr theFeature1, FeaturePtr theFeature2)
   return featureToVal(theFeature1) < featureToVal(theFeature2);
 }
 
-std::list<FeaturePtr> SketchSolver_Group::selectApplicableFeatures(const std::set<ObjectPtr>& theObjects)
+std::list<FeaturePtr> SketchSolver_Group::
+  selectApplicableFeatures(const std::set<ObjectPtr>& theObjects)
 {
   std::list<FeaturePtr> aResult;
   std::list<FeaturePtr>::iterator aResIt;
@@ -717,7 +727,8 @@ std::list<FeaturePtr> SketchSolver_Group::selectApplicableFeatures(const std::se
   std::set<ObjectPtr>::const_iterator anObjIter = theObjects.begin();
   for (; anObjIter != theObjects.end(); ++anObjIter) {
     // Operate sketch itself and SketchPlugin features only.
-    // Also, the Fillet and Split need to be skipped, because there are several separated constraints composing it.
+    // Also, the Fillet and Split need to be skipped, 
+    // because there are several separated constraints composing it.
     FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(*anObjIter);
     if (!aFeature)
       continue;
index ea22b03d0175aba0eea37a21841dc4424a279dcf..9312c6a5a0a43eb5bedfd788fd0c70d4f2f37347 100644 (file)
@@ -104,7 +104,8 @@ class SketchSolver_Group
   }
 
   /** \brief Update parameters of workplane. Should be called when Update event is coming.
-   *  \return \c true if workplane updated successfully, \c false if workplane parameters are not consistent
+   *  \return \c true if workplane updated successfully, 
+   *  \c false if workplane parameters are not consistent
    */
   bool updateWorkplane();
 
@@ -118,7 +119,8 @@ class SketchSolver_Group
    */
   void mergeGroups(const SketchSolver_Group& theGroup);
 
-  /** \brief Cut from the group several subgroups, which are not connected to the current one by any constraint
+  /** \brief Cut from the group several subgroups, which are not connected to 
+   * the current one by any constraint
    *  \param[out] theCuts enlarge this list by newly created groups
    */
   void splitGroup(std::list<SketchSolver_Group*>& theCuts);
@@ -166,13 +168,16 @@ private:
   CompositeFeaturePtr mySketch; ///< Sketch is equivalent to workplane
   ConstraintConstraintMap myConstraints; ///< List of constraints
   std::set<SolverConstraintPtr> myTempConstraints; ///< List of temporary constraints
-  std::map<AttributePtr, SolverConstraintPtr> myParametricConstraints; ///< List of parametric constraints
+
+  /// List of parametric constraints
+  std::map<AttributePtr, SolverConstraintPtr> myParametricConstraints; 
 
   StoragePtr myStorage; ///< Container for the set of SolveSpace constraints and their entities
 
   SolverPtr mySketchSolver;  ///< Solver for set of equations obtained by constraints
 
-  SketchSolver_SolveStatus myPrevResult; ///< Result of previous solution of the set of constraints
+  /// Result of previous solution of the set of constraints
+  SketchSolver_SolveStatus myPrevResult; 
   std::set<ObjectPtr>      myConflictingConstraints; ///< List of conflicting constraints
 };
 
index 2449d61c0bede9df7f75cc92cb5cb3d47de24e0d..52499a876506cfe26c6f6aaf612105eb615edfb8 100644 (file)
@@ -116,7 +116,8 @@ void SketchSolver_Manager::processEvent(
   const std::shared_ptr<Events_Message>& theMessage)
 {
   static const Events_ID aSketchPreparedEvent = Events_Loop::eventByName(EVENT_SKETCH_PREPARED);
-  // sketch is prepared for resolve: all the needed events are collected and must be processed by the solver
+  // sketch is prepared for resolve: all the needed events 
+  // are collected and must be processed by the solver
   if (theMessage->eventID() == aSketchPreparedEvent) {
     flushGrouped(anUpdateEvent);
     return;
@@ -153,12 +154,14 @@ void SketchSolver_Manager::processEvent(
           hasProperFeature = true;
         }
       }
-      if (!hasProperFeature) // in this iteration it will compute nothing, so, no problem with recursion
-        // it is important that solver flushes signal updated after processing move signal as there is
-        // optimization that relies on this update, might be found by key "optimization"
+      if (!hasProperFeature) 
+        // in this iteration it will compute nothing, so, no problem with recursion
+        // it is important that solver flushes signal updated after processing move signal as there
+        // is optimization that relies on this update, might be found by key "optimization"
         myIsComputed = false;
     } else {
-      std::list<FeaturePtr> aSketchFeatures = SketchSolver_Group::selectApplicableFeatures(aFeatures);
+      std::list<FeaturePtr> aSketchFeatures = 
+        SketchSolver_Group::selectApplicableFeatures(aFeatures);
       std::list<FeaturePtr>::iterator aFeatIter = aSketchFeatures.begin();
       for (; aFeatIter != aSketchFeatures.end(); ++aFeatIter) {
         if ((*aFeatIter)->getKind() == SketchPlugin_Sketch::ID()) {
@@ -195,7 +198,8 @@ void SketchSolver_Manager::processEvent(
       std::dynamic_pointer_cast<ModelAPI_ObjectDeletedMessage>(theMessage);
     const std::set<std::string>& aFeatureGroups = aDeleteMsg->groups();
 
-    // Find SketchPlugin_Sketch::ID() in groups. The constraint groups should be updated when an object removed from Sketch
+    // Find SketchPlugin_Sketch::ID() in groups. 
+    // The constraint groups should be updated when an object removed from Sketch
     std::set<std::string>::const_iterator aFGrIter;
     for (aFGrIter = aFeatureGroups.begin(); aFGrIter != aFeatureGroups.end(); aFGrIter++)
       if (aFGrIter->compare(ModelAPI_ResultConstruction::group()) == 0 ||
@@ -214,7 +218,8 @@ void SketchSolver_Manager::processEvent(
           myGroups.erase(aRemoveIt);
           continue;
         }
-        if (!(*aGroupIter)->isConsistent()) {  // some constraints were removed, try to split the group
+        if (!(*aGroupIter)->isConsistent()) {  
+          // some constraints were removed, try to split the group
           (*aGroupIter)->splitGroup(aSeparatedGroups);
           if (!(*aGroupIter)->getWorkplane()->string(
               SketchPlugin_Sketch::SOLVER_ERROR())->value().empty() ||
@@ -239,7 +244,8 @@ void SketchSolver_Manager::processEvent(
     degreesOfFreedom();
 }
 
-void SketchSolver_Manager::checkConflictingConstraints(const std::shared_ptr<Events_Message>& theMessage)
+void SketchSolver_Manager::
+  checkConflictingConstraints(const std::shared_ptr<Events_Message>& theMessage)
 {
   if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_SOLVER_REPAIRED)) {
     std::shared_ptr<ModelAPI_SolverFailedMessage> aMessage =
@@ -340,7 +346,8 @@ bool SketchSolver_Manager::changeFeature(std::shared_ptr<SketchPlugin_Feature> t
           return (*aGroupIter)->updateFeature(theFeature);
         return (*aGroupIter)->changeConstraint(aConstraint);
       }
-  } else if (aGroups.size() > 1) {  // Several groups applicable for this feature => need to merge them
+  } else if (aGroups.size() > 1) {  
+    // Several groups applicable for this feature => need to merge them
     std::set<GroupID>::const_iterator aGroupsIter = aGroups.begin();
 
     // Search first group
@@ -490,7 +497,8 @@ std::shared_ptr<ModelAPI_CompositeFeature> SketchSolver_Manager
 bool SketchSolver_Manager::resolveConstraints(const std::list<SketchSolver_Group*>& theGroups)
 {
   bool needToUpdate = false;
-  const std::list<SketchSolver_Group*>& aGroupsToResolve = theGroups.empty() ? myGroups : theGroups;
+  const std::list<SketchSolver_Group*>& aGroupsToResolve = theGroups.empty() ? 
+                                                           myGroups : theGroups;
   std::list<SketchSolver_Group*>::const_iterator aGroupIter = aGroupsToResolve.begin();
   for (; aGroupIter != aGroupsToResolve.end(); aGroupIter++)
     if ((*aGroupIter)->resolveConstraints())
@@ -500,7 +508,8 @@ bool SketchSolver_Manager::resolveConstraints(const std::list<SketchSolver_Group
 
 
 // Obtain points and their copies for Mirror, Multi-Rotation and Multi-Translation constraints
-static void collectPointsAndCopies(FeaturePtr theConstraint, std::list<std::set<AttributePtr> >& thePoints)
+static void collectPointsAndCopies(FeaturePtr theConstraint, 
+                                   std::list<std::set<AttributePtr> >& thePoints)
 {
   typedef std::list<std::string> strlist;
   static strlist aPointAttributes(1, SketchPlugin_Point::COORD_ID());
@@ -625,7 +634,8 @@ void SketchSolver_Manager::degreesOfFreedom()
 
     if (isSketchValid) {
       std::shared_ptr<GeomDataAPI_Dir> aNormal =
-          std::dynamic_pointer_cast<GeomDataAPI_Dir>(aSketch->data()->attribute(SketchPlugin_Sketch::NORM_ID()));
+          std::dynamic_pointer_cast<GeomDataAPI_Dir>(
+          aSketch->data()->attribute(SketchPlugin_Sketch::NORM_ID()));
       isSketchValid = aNormal && aNormal->isInitialized();
     }
 
@@ -711,7 +721,8 @@ void SketchSolver_Manager::degreesOfFreedom()
         } else {
           aDoF -= 1;
           if (aCoincPoint[0] && aCoincLine) {
-            // if the point is already coincident to a line (by middle point constraint), do not decrease DoF
+            // if the point is already coincident to a line 
+            // (by middle point constraint), do not decrease DoF
             std::map<AttributePtr, std::set<FeaturePtr> >::iterator
                 aPtFound = aPointOnLine.find(aCoincPoint[0]);
             if (aPtFound != aPointOnLine.end() &&
@@ -765,7 +776,8 @@ void SketchSolver_Manager::degreesOfFreedom()
             if (isExternal(anAttr))
               continue; // feature is already fixed since it is external
             aDoF -= aDoFDelta[anAttr->getKind()];
-            std::list<AttributePtr> aPtAttrs = anAttr->data()->attributes(GeomDataAPI_Point2D::typeId());
+            std::list<AttributePtr> aPtAttrs = 
+              anAttr->data()->attributes(GeomDataAPI_Point2D::typeId());
             aPoints.insert(aPtAttrs.begin(), aPtAttrs.end());
           }
         }
@@ -811,9 +823,11 @@ void SketchSolver_Manager::degreesOfFreedom()
           anAttrName = SketchPlugin_Constraint::ENTITY_B();
         else {
           if (aFeature->getKind() == SketchPlugin_MultiRotation::ID())
-            aNbCopies = aFeature->integer(SketchPlugin_MultiRotation::NUMBER_OF_OBJECTS_ID())->value() - 1;
+            aNbCopies = 
+            aFeature->integer(SketchPlugin_MultiRotation::NUMBER_OF_OBJECTS_ID())->value() - 1;
           else if (aFeature->getKind() == SketchPlugin_MultiTranslation::ID())
-            aNbCopies = aFeature->integer(SketchPlugin_MultiTranslation::NUMBER_OF_OBJECTS_ID())->value() - 1;
+            aNbCopies = 
+            aFeature->integer(SketchPlugin_MultiTranslation::NUMBER_OF_OBJECTS_ID())->value() - 1;
           anAttrName = SketchPlugin_Constraint::ENTITY_A();
         }
 
index 51581b987398b0eed4e107f534e4b58d942edc46..5eab8bc9e5d7c02c5d59ca796d684ac465cc6fd8 100644 (file)
@@ -91,9 +91,11 @@ protected:
 
   /** \brief Goes through the list of groups and solve the constraints
    *  \param[in] theGroups  list of groups to be resolved (if empty list, all groups are resolved)
-   *  \return \c true, if groups are resolved, and features should be updated (send the Update event)
+   *  \return \c true, if groups are resolved, and features should be updated 
+   *  (send the Update event)
    */
-  bool resolveConstraints(const std::list<SketchSolver_Group*>& theGroups = std::list<SketchSolver_Group*>());
+  bool resolveConstraints(const std::list<SketchSolver_Group*>& theGroups = 
+    std::list<SketchSolver_Group*>());
 
 private:
   /** \brief Searches list of groups which interact with specified feature
index c85b10a4a95bc898453c4bff3d56436064bcef01..5af9d5043d6acf6971ab469805409145a3b9a22e 100644 (file)
@@ -138,7 +138,8 @@ void SketchSolver_Storage::addEntity(FeaturePtr       theFeature,
 void SketchSolver_Storage::addEntity(AttributePtr     theAttribute,
                                      EntityWrapperPtr theSolverEntity)
 {
-  std::map<AttributePtr, EntityWrapperPtr>::const_iterator aFound = myAttributeMap.find(theAttribute);
+  std::map<AttributePtr, EntityWrapperPtr>::const_iterator aFound = 
+    myAttributeMap.find(theAttribute);
   if (aFound == myAttributeMap.end() || !aFound->second ||
      (theSolverEntity && !aFound->second->isEqual(theSolverEntity)))
     setNeedToResolve(true); // the entity is new or modified
@@ -186,8 +187,9 @@ bool SketchSolver_Storage::update(FeaturePtr theFeature, const GroupID& theGroup
     std::shared_ptr<SketchPlugin_Feature> aSketchFeature = 
         std::dynamic_pointer_cast<SketchPlugin_Feature>(theFeature);
     bool isCopy = isCopyInMulti(aSketchFeature, myConstraintMap);
+    // the feature is a copy in "Multi" constraint and does not used in other constraints
     if (!theForce && isCopy && myFeatureMap.find(theFeature) == myFeatureMap.end())
-      return false; // the feature is a copy in "Multi" constraint and does not used in other constraints
+      return false;
 
     std::list<EntityWrapperPtr> aSubs;
     // Reserve the feature in the map of features (do not want to add several copies of it)
@@ -271,7 +273,8 @@ bool SketchSolver_Storage::update(AttributePtr theAttribute, const GroupID& theG
     // Check attribute of external features
     std::shared_ptr<SketchPlugin_Feature> aSketchFeature = 
         std::dynamic_pointer_cast<SketchPlugin_Feature>(anAttribute->owner());
-    if (aSketchFeature && (aSketchFeature->isExternal() || isCopyInMulti(aSketchFeature, myConstraintMap)))
+    if (aSketchFeature && (aSketchFeature->isExternal() || 
+        isCopyInMulti(aSketchFeature, myConstraintMap)))
       aGroup = GID_OUTOFGROUP;
     aRelated = aBuilder->createAttribute(anAttribute, aGroup);
     if (!aRelated)
@@ -655,7 +658,8 @@ bool SketchSolver_Storage::removeCoincidence(ConstraintWrapperPtr theConstraint)
   return true;
 }
 
-void SketchSolver_Storage::replaceEntities(const std::map<EntityWrapperPtr, EntityWrapperPtr>& theChange)
+void SketchSolver_Storage::replaceEntities(const std::map<EntityWrapperPtr, 
+                                           EntityWrapperPtr>& theChange)
 {
   std::set<EntityWrapperPtr> anUpdFeatures;
   std::map<EntityWrapperPtr, EntityWrapperPtr>::const_iterator aSubIt;
@@ -696,7 +700,8 @@ bool SketchSolver_Storage::remove(ConstraintWrapperPtr theConstraint)
     if (aBaseFeature)
       isFullyRemoved = SketchSolver_Storage::removeEntity(aBaseFeature) && isFullyRemoved;
     else
-      isFullyRemoved = SketchSolver_Storage::removeEntity((*anIt)->baseAttribute()) && isFullyRemoved;
+      isFullyRemoved = 
+        SketchSolver_Storage::removeEntity((*anIt)->baseAttribute()) && isFullyRemoved;
   }
   return isFullyRemoved;
 }
@@ -812,7 +817,8 @@ bool SketchSolver_Storage::isFixed(EntityWrapperPtr theEntity) const
           return true;
     }
 
-  std::map<ConstraintPtr, std::list<ConstraintWrapperPtr> >::const_iterator aCIt = myConstraintMap.begin();
+  std::map<ConstraintPtr, std::list<ConstraintWrapperPtr> >::const_iterator aCIt = 
+    myConstraintMap.begin();
   std::list<ConstraintWrapperPtr>::const_iterator aCWIt;
   for (; aCIt != myConstraintMap.end(); ++aCIt) {
     if (aCIt->second.empty())
@@ -982,7 +988,8 @@ void resultToFeatureOrAttribute(const ObjectPtr& theResult,
   // if the feature has several results, we choose which one is referred
   const std::list<ResultPtr>& aResults = aFeature->results();
   if (aResults.size() > 1 && theResult != aFeature->lastResult()) {
-    // actually, the attribute refers to center of arc or circle, but not the edge, get correct attributes
+    // actually, the attribute refers to center of arc or circle, 
+    // but not the edge, get correct attributes
     std::string anAttrName;
     if (aFeature->getKind() == SketchPlugin_Arc::ID())
       anAttrName = SketchPlugin_Arc::CENTER_ID();
index c8b1e76887e651c19fa460d40245c16d0ee0a49c..6a1b1b2e817354138c24e4c018869c10a66ff6bf 100644 (file)
@@ -62,13 +62,16 @@ public:
   /// \param theGroup   [in]  id of the group where the feature should be placed
   /// \param theForce   [in]  forced feature creation
   /// \return \c true if the feature has been created or updated
-  SKETCHSOLVER_EXPORT bool update(FeaturePtr theFeature, const GroupID& theGroup = GID_UNKNOWN, bool theForce = false);
+  SKETCHSOLVER_EXPORT bool update(FeaturePtr theFeature, 
+                                  const GroupID& theGroup = GID_UNKNOWN, bool theForce = false);
+
   /// \brief Convert attribute to the form applicable for specific solver and map it
   /// \param theAttribute [in]  attribute to convert
   /// \param theGroup     [in]  id of the group where the feature should be placed
   /// \param theForce     [in]  forced feature creation
   /// \return \c true if the attribute has been created or updated
-  SKETCHSOLVER_EXPORT bool update(AttributePtr theAttribute, const GroupID& theGroup = GID_UNKNOWN, bool theForce = false);
+  SKETCHSOLVER_EXPORT bool update(AttributePtr theAttribute, 
+                                  const GroupID& theGroup = GID_UNKNOWN, bool theForce = false);
 
   /// \brief Returns constraint related to corresponding constraint
   SKETCHSOLVER_EXPORT
@@ -166,7 +169,8 @@ protected:
     void addEntity(FeaturePtr       theFeature,
                    EntityWrapperPtr theSolverEntity);
 
-  /// \brief Change mapping attribute of a feature and the entity applicable for corresponding solver.
+  /// \brief Change mapping attribute of a feature and the entity 
+  /// applicable for corresponding solver.
   /// \param theAttribute    [in]  original attribute
   /// \param theSolverEntity [in]  solver's entity, created outside
   SKETCHSOLVER_EXPORT
@@ -230,7 +234,8 @@ protected:
   /// map attribute to solver's entity
   std::map<AttributePtr, EntityWrapperPtr>                  myAttributeMap;
 
-  CoincidentPointsMap myCoincidentPoints; ///< lists of coincident points (first is a master point, second is a set of slaves)
+  /// lists of coincident points (first is a master point, second is a set of slaves)
+  CoincidentPointsMap myCoincidentPoints; 
 
   // to be able to update entities from constraints
   friend class SketchSolver_ConstraintDistance;
index b3fc9272e0f62435927b7e6d66d1ed19d891dff5..3d0e3884294887e34191af9e143da855621768de 100644 (file)
@@ -141,8 +141,9 @@ std::list<ConstraintWrapperPtr> SolveSpaceSolver_Builder::createConstraint(
     if (!anOriginal[i])
       continue;
     aSlvsEntities[i] = (Slvs_hEntity)anOriginal[i]->id();
+    // entity is not added into a storage, constraint can not be created
     if (aSlvsEntities[i] == SLVS_E_UNKNOWN)
-      return std::list<ConstraintWrapperPtr>(); // entity is not added into a storage, constraint can not be created
+      return std::list<ConstraintWrapperPtr>(); 
     aConstrAttrList.push_back(anOriginal[i]);
   }
 
@@ -256,7 +257,8 @@ std::list<ConstraintWrapperPtr> SolveSpaceSolver_Builder::createMirror(
     aResult.insert(aResult.end(), aMrrList.begin(), aMrrList.end());
   }
   else if (theEntity1->type() == ENTITY_ARC) {
-    // Do not allow mirrored arc recalculate its position until coordinated of all points recalculated
+    // Do not allow mirrored arc recalculate its position until 
+    // coordinated of all points recalculated
     FeaturePtr aMirrArc = theEntity2->baseFeature();
     aMirrArc->data()->blockSendAttributeUpdated(true);
 
@@ -276,7 +278,8 @@ std::list<ConstraintWrapperPtr> SolveSpaceSolver_Builder::createMirror(
     anIt1 = aBaseArcPoints.begin();
     anIt2 = aMirrorArcPoints.begin();
     for (; anIt1 != aBaseArcPoints.end(); ++anIt1, ++anIt2) {
-      aMrrList = createMirror(theConstraint, theGroupID, theSketchID, *anIt1, *anIt2, theMirrorLine);
+      aMrrList = 
+        createMirror(theConstraint, theGroupID, theSketchID, *anIt1, *anIt2, theMirrorLine);
       aResult.insert(aResult.end(), aMrrList.begin(), aMrrList.end());
     }
     // Restore event sending
@@ -337,7 +340,8 @@ EntityWrapperPtr SolveSpaceSolver_Builder::createFeature(
     AttributePtr aPoint = theFeature->attribute(SketchPlugin_Point::COORD_ID());
     if (!aPoint->isInitialized())
       return aDummy;
-    EntityWrapperPtr aSub = theAttributes.empty() ? createAttribute(aPoint, theGroupID, theSketchID) :
+    EntityWrapperPtr aSub = theAttributes.empty() ? 
+                            createAttribute(aPoint, theGroupID, theSketchID) :
                             theAttributes.front();
     if (!aSub)
       return aDummy;
@@ -388,8 +392,10 @@ EntityWrapperPtr SolveSpaceSolver_Builder::createAttribute(
     std::shared_ptr<GeomDataAPI_Point2D> aPoint2D =
       std::dynamic_pointer_cast<GeomDataAPI_Point2D>(theAttribute);
     if (aPoint2D) {
-      aParameters.push_back(createParameter(theGroupID, aPoint2D->x(), !aPoint2D->textX().empty()));
-      aParameters.push_back(createParameter(theGroupID, aPoint2D->y(), !aPoint2D->textY().empty()));
+      aParameters.push_back(createParameter(theGroupID, aPoint2D->x(), 
+                            !aPoint2D->textX().empty()));
+      aParameters.push_back(createParameter(theGroupID, aPoint2D->y(), 
+                            !aPoint2D->textY().empty()));
       // Create entity (parameters are not filled)
       anEntity = Slvs_MakePoint2d(SLVS_E_UNKNOWN, (Slvs_hGroup)theGroupID,
           (Slvs_hEntity)theSketchID, SLVS_E_UNKNOWN, SLVS_E_UNKNOWN);
@@ -398,7 +404,8 @@ EntityWrapperPtr SolveSpaceSolver_Builder::createAttribute(
       AttributeDoublePtr aScalar =
           std::dynamic_pointer_cast<ModelAPI_AttributeDouble>(theAttribute);
       if (aScalar) {
-        aParameters.push_back(createParameter(theGroupID, aScalar->value(), !aScalar->text().empty()));
+        aParameters.push_back(createParameter(theGroupID, aScalar->value(), 
+                              !aScalar->text().empty()));
         // Create entity (parameter is not filled)
         anEntity = Slvs_MakeDistance(SLVS_E_UNKNOWN, (Slvs_hGroup)theGroupID,
           (Slvs_hEntity)theSketchID, SLVS_E_UNKNOWN);
@@ -693,7 +700,8 @@ void adjustAngle(ConstraintWrapperPtr theConstraint)
     aConstraint->baseConstraint()->boolean(
         SketchPlugin_ConstraintAngle::ANGLE_REVERSED_SECOND_LINE_ID())->value()
   };
-  std::shared_ptr<GeomAPI_Angle2d> anAngle(new GeomAPI_Angle2d(aLine[0], isReversed[0], aLine[1], isReversed[1]));
+  std::shared_ptr<GeomAPI_Angle2d> 
+    anAngle(new GeomAPI_Angle2d(aLine[0], isReversed[0], aLine[1], isReversed[1]));
   std::shared_ptr<GeomAPI_Pnt2d> aCenter = anAngle->center();
 
   Slvs_Constraint& aSlvsConstraint = aConstraint->changeConstraint();
@@ -738,9 +746,11 @@ void makeMirrorPoints(EntityWrapperPtr theOriginal,
     (*aMIt)->setValue(aCoord[i]);
 
   // update corresponding attribute
-  AttributePtr anAttr = std::dynamic_pointer_cast<SolveSpaceSolver_EntityWrapper>(theMirrored)->baseAttribute();
+  AttributePtr anAttr = 
+    std::dynamic_pointer_cast<SolveSpaceSolver_EntityWrapper>(theMirrored)->baseAttribute();
   if (anAttr) {
-    std::shared_ptr<GeomDataAPI_Point2D> aMirroredPnt = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(anAttr);
+    std::shared_ptr<GeomDataAPI_Point2D> aMirroredPnt = 
+      std::dynamic_pointer_cast<GeomDataAPI_Point2D>(anAttr);
     aMirroredPnt->setValue(aCoord[0], aCoord[1]);
   }
 }
index d71a5662d61170f40bd35bb15404e625071d2005..def1ae81a21fdd33aa508d107c95e43e4fb580a9 100644 (file)
@@ -38,7 +38,8 @@ public:
   /// \param theGroupID    [in]  group the constraint belongs to
   /// \param theSketchID   [in]  sketch the constraint belongs to
   /// \param theType       [in]  type of constraint
-  /// \param theValue      [in]  numeric characteristic of constraint (e.g. distance or radius) if applicable
+  /// \param theValue      [in]  numeric characteristic of constraint 
+  ///                            (e.g. distance or radius) if applicable
   /// \param theEntity1    [in]  first attribute of constraint
   /// \param theEntity2    [in]  second attribute of constraint
   /// \param theEntity3    [in]  third attribute of constraint
@@ -62,8 +63,10 @@ public:
   /// \param theGroupID    [in]  group the constraint belongs to
   /// \param theSketchID   [in]  sketch the constraint belongs to
   /// \param theType       [in]  type of constraint
-  /// \param theValue      [in]  numeric characteristic of constraint (angle for multi-rotation) if applicable
-  /// \param theFullValue  [in]  indicates theValue shows full translation delta/rotation angle or delta/angle between neighbor entities
+  /// \param theValue      [in]  numeric characteristic of constraint 
+  ///                            (angle for multi-rotation) if applicable
+  /// \param theFullValue  [in]  indicates theValue shows full translation 
+  ///                            delta/rotation angle or delta/angle between neighbor entities
   /// \param thePoint1     [in]  center for multi-rotation or start point for multi-translation
   /// \param thePoint2     [in]  end point for multi-translation (empty for multi-rotation)
   /// \param theTrsfEnt    [in]  list of transformed entities
index b804217076fd3025c91ff38a7ec3737e6f81d087..b1734a71e605288b299f9452f27d1f974e17e62c 100644 (file)
@@ -9,7 +9,8 @@
 
 #include <SketchSolver_ISolver.h>
 
-// Need to be defined before including SolveSpace to avoid additional dependences on Windows platform
+// Need to be defined before including SolveSpace to avoid additional 
+// dependences on Windows platform
 #if defined(WIN32) && !defined(HAVE_C99_INTEGER_TYPES)
 typedef unsigned int UINT32;
 #else
index 805e458dd301fbbb755f47052317e27714872ff5..6cae2a9b7afeefb74ed91ea8c5b64dedc56d5cdf 100644 (file)
@@ -36,7 +36,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)
@@ -210,7 +211,8 @@ bool SolveSpaceSolver_Storage::update(ParameterWrapperPtr theParameter)
     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);
@@ -557,8 +559,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 +825,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 +861,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())
index 24cb9f323113eaae7a39de3e27f2443ff0452dfb..de15a1cd56c5331e5cbafb7e857754a5151f9d53 100644 (file)
@@ -19,7 +19,8 @@ typedef std::list< std::set<ConstraintWrapperPtr> >             SameConstraintMa
 
 /** \class   SolveSpaceSolver_Storage
  *  \ingroup Plugins
- *  \brief   Contains all necessary data in SolveSpace format to solve a single group of constraints
+ *  \brief   Contains all necessary data in SolveSpace format to solve a single 
+ *  group of constraints
  */
 class SolveSpaceSolver_Storage : public SketchSolver_Storage
 {
@@ -158,7 +159,8 @@ private:
   ///
   ///        These constraints may be different and become the same after the substitution
   ///        of point coincidence.
-  void addSameConstraints(ConstraintWrapperPtr theConstraint1, ConstraintWrapperPtr theConstraint2);
+  void addSameConstraints(ConstraintWrapperPtr theConstraint1, 
+                          ConstraintWrapperPtr theConstraint2);
 
   /// \brief Search constraint equal to the given in terms of SolveSpace notation
   bool findSameConstraint(ConstraintWrapperPtr theConstraint);
@@ -166,12 +168,21 @@ private:
 private:
   Slvs_hEntity myWorkplaneID; ///< identifier of workplane
 
-  Slvs_hParam myParamMaxID; ///< current parameter index (may differs with the number of parameters)
-  std::vector<Slvs_Param> myParameters; ///< list of parameters used in the current group of constraints (sorted by the identifier)
+  /// current parameter index (may differs with the number of parameters)
+  Slvs_hParam myParamMaxID; 
+
+  /// list of parameters used in the current group of constraints (sorted by the identifier)
+  std::vector<Slvs_Param> myParameters; 
   Slvs_hEntity myEntityMaxID; ///< current entity index (may differs with the number of entities)
-  std::vector<Slvs_Entity> myEntities; ///< list of entities used in the current group of constraints (sorted by the identifier)
-  Slvs_hConstraint myConstrMaxID; ///< current constraint index (may differs with the number of constraints)
-  std::vector<Slvs_Constraint> myConstraints; ///< list of constraints used in the current group (sorted by the identifier)
+
+  /// list of entities used in the current group of constraints (sorted by the identifier)
+  std::vector<Slvs_Entity> myEntities; 
+
+  /// current constraint index (may differs with the number of constraints)
+  Slvs_hConstraint myConstrMaxID; 
+
+  /// list of constraints used in the current group (sorted by the identifier)
+  std::vector<Slvs_Constraint> myConstraints; 
 
   bool myDuplicatedConstraint; ///< shows the storage has same constraint twice