diff --git a/ApplicationCode/ModelVisualization/RivWellFracturesPartMgr.cpp b/ApplicationCode/ModelVisualization/RivWellFracturesPartMgr.cpp index 5e434fcdd4..fb6003be68 100644 --- a/ApplicationCode/ModelVisualization/RivWellFracturesPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivWellFracturesPartMgr.cpp @@ -68,18 +68,17 @@ void RivWellFracturesPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicL if (fractures.size() > 0) { - caf::PdmObjectHandle* objHandle = dynamic_cast(fractures.at(0)); - if (!objHandle) return; + caf::PdmObjectHandle* objHandle = dynamic_cast(fractures.at(0)); + if (!objHandle) return; - RimEclipseView* mainView = nullptr; - objHandle->firstAncestorOrThisOfType(mainView); - if (!mainView) return; + RimEclipseView* mainView = nullptr; + objHandle->firstAncestorOrThisOfType(mainView); + if (!mainView) return; - cvf::ref transForm = mainView->displayCoordTransform(); + cvf::ref transForm = mainView->displayCoordTransform(); - appendFracturePartsToModel(fractures, model, transForm.p()); + appendFracturePartsToModel(fractures, model, transForm.p()); } - } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimFracture.cpp b/ApplicationCode/ProjectDataModel/RimFracture.cpp index 190c48c188..a9f3502b0d 100644 --- a/ApplicationCode/ProjectDataModel/RimFracture.cpp +++ b/ApplicationCode/ProjectDataModel/RimFracture.cpp @@ -34,6 +34,8 @@ RimFracture::RimFracture(void) { CAF_PDM_InitObject("Fracture", "", "", ""); + CAF_PDM_InitField(&azimuth, "Azimuth", 0.0, "Azimuth", "", "", ""); + m_rigFracture = new RigFracture; m_recomputeGeometry = true; } @@ -83,9 +85,9 @@ void RimFracture::computeGeometry() } // TODO: Modify coords by fracture center and orientation - for (int i = 0; i < nodeCoords.size(); i++ ) + for (cvf::Vec3f& v : nodeCoords) { - nodeCoords[i] = nodeCoords[i] + static_cast(center); + v = v + static_cast(center); } m_rigFracture->setGeometry(polygonIndices, nodeCoords); @@ -109,6 +111,15 @@ bool RimFracture::isRecomputeGeometryFlagSet() return m_recomputeGeometry; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) +{ + caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Properties"); + geometryGroup->add(&azimuth); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimFracture.h b/ApplicationCode/ProjectDataModel/RimFracture.h index 0947e5e980..dea15e3c94 100644 --- a/ApplicationCode/ProjectDataModel/RimFracture.h +++ b/ApplicationCode/ProjectDataModel/RimFracture.h @@ -40,9 +40,11 @@ public: RimFracture(void); virtual ~RimFracture(void); + caf::PdmField azimuth; + virtual cvf::Vec3d centerPointForFracture() = 0; virtual RimFractureDefinition* attachedFractureDefinition() = 0; - + bool hasValidGeometry() const; void computeGeometry(); @@ -51,12 +53,17 @@ public: const std::vector& polygonIndices() const; const std::vector& nodeCoords() const; +protected: + virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; + private: bool isRecomputeGeometryFlagSet(); // cvf::Vec3d fracturePositionForUi() const; private: + cvf::ref m_rigFracture; bool m_recomputeGeometry; + }; diff --git a/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp b/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp index 319dc2487f..852a460f64 100644 --- a/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp +++ b/ApplicationCode/ProjectDataModel/RimSimWellFracture.cpp @@ -193,6 +193,8 @@ void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi { uiOrdering.add(&name); + RimFracture::defineUiOrdering(uiConfigName, uiOrdering); + caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Fractures"); geometryGroup->add(&fractureDefinition);