#2527 Mohr Circle: Add friction-cohesion line

This commit is contained in:
Rebecca Cox
2018-02-26 08:36:21 +01:00
parent fe301bfc11
commit 75bcf7dcf4
2 changed files with 105 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ class RimGeoMechView;
class QwtRoundScaleDraw;
class QwtPlotRescaler;
class QWidget;
class QwtPlotCurve;
//==================================================================================================
//
@@ -43,7 +44,7 @@ public:
~RiuMohrsCirclePlot();
void setPrincipals(double p1, double p2, double p3);
void setPrincipalsAndRedrawCircles(double p1, double p2, double p3);
void setPrincipalsAndRedrawPlot(double p1, double p2, double p3);
void updateOnSelectionChanged(const RiuSelectionItem* selectionItem);
void clearPlot();
@@ -55,6 +56,9 @@ protected:
void redrawCircles();
void deleteCircles();
void redrawEnvelope();
void deleteEnvelope();
void queryDataAndUpdatePlot(RimGeoMechView* geoMechView, size_t gridIndex, size_t cellIndex);
private:
@@ -67,10 +71,14 @@ private:
double radius;
double centerX;
};
private:
void setDefaults();
void createMohrCircles();
void setFrictionAngle(double frictionAngle);
void setCohesion(double cohesion);
private:
double m_principal1;
double m_principal2;
@@ -79,6 +87,12 @@ private:
std::array<MohrCircle, 3> m_mohrCircles;
std::vector<QwtPlotItem*> m_circlePlotItems;
QwtPlotCurve* m_envolopePlotItem;
double m_frictionAngle;
double m_cohesion;
double m_factorOfSafety;
QwtPlotRescaler* m_rescaler;
};