Sketcher: SketchObject partially redundant status

This commit is contained in:
Abdullah Tahiri
2021-01-19 11:26:13 +01:00
committed by abdullahtahiriyo
parent a3c1010800
commit b01313c0d8
2 changed files with 13 additions and 1 deletions

View File

@@ -245,9 +245,11 @@ void SketchObject::retrieveSolverDiagnostics()
{
lastHasConflict = solvedSketch.hasConflicts();
lastHasRedundancies = solvedSketch.hasRedundancies();
lastHasPartialRedundancies = solvedSketch.hasPartialRedundancies();
lastHasMalformedConstraints = solvedSketch.hasMalformedConstraints();
lastConflicting=solvedSketch.getConflicting();
lastRedundant=solvedSketch.getRedundant();
lastPartiallyRedundant=solvedSketch.getPartiallyRedundant();
lastMalformedConstraints=solvedSketch.getMalformedConstraints();
}
@@ -314,6 +316,10 @@ int SketchObject::solve(bool updateGeoAfterSolving/*=true*/)
Base::Console().Error("Sketch %s has malformed constraints!\n",this->getNameInDocument());
}
if(lastHasPartialRedundancies) {
Base::Console().Warning("Sketch %s has partially redundant constraints!\n",this->getNameInDocument());
}
lastSolveTime=solvedSketch.getSolveTime();
if (err == 0 && updateGeoAfterSolving) {
@@ -656,7 +662,7 @@ int SketchObject::setUpSketch()
retrieveSolverDiagnostics();
if(lastHasRedundancies || lastDoF < 0 || lastHasConflict || lastHasMalformedConstraints)
if(lastHasRedundancies || lastDoF < 0 || lastHasConflict || lastHasMalformedConstraints || lastHasPartialRedundancies)
Constraints.touch();
return lastDoF;

View File

@@ -350,6 +350,8 @@ public:
inline bool getLastHasConflicts() const {return lastHasConflict;}
/// gets HasRedundancies status of last solver execution
inline bool getLastHasRedundancies() const {return lastHasRedundancies;}
/// gets HasRedundancies status of last solver execution
inline bool getLastHasPartialRedundancies() const {return lastHasPartialRedundancies;}
/// gets HasMalformedConstraints status of last solver execution
inline bool getLastHasMalformedConstraints() const {return lastHasMalformedConstraints;}
/// gets solver status of last solver execution
@@ -361,6 +363,8 @@ public:
/// gets the redundant constraints of last solver execution
inline const std::vector<int> &getLastRedundant(void) const { return lastRedundant; }
/// gets the redundant constraints of last solver execution
inline const std::vector<int> &getLastPartiallyRedundant(void) const { return lastPartiallyRedundant; }
/// gets the redundant constraints of last solver execution
inline const std::vector<int> &getLastMalformedConstraints(void) const { return lastMalformedConstraints; }
public: /* Solver exposed interface */
@@ -514,12 +518,14 @@ private:
int lastDoF;
bool lastHasConflict;
bool lastHasRedundancies;
bool lastHasPartialRedundancies;
bool lastHasMalformedConstraints;
int lastSolverStatus;
float lastSolveTime;
std::vector<int> lastConflicting;
std::vector<int> lastRedundant;
std::vector<int> lastPartiallyRedundant;
std::vector<int> lastMalformedConstraints;
boost::signals2::scoped_connection constraintsRenamedConn;