mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Moved several fields to RimFracture
This commit is contained in:
parent
caba8e97ad
commit
b25f630a7e
@ -75,8 +75,6 @@ void RicNewSimWellFractureAtPosFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
fracture->name = "Simulation Well Fracture";
|
fracture->name = "Simulation Well Fracture";
|
||||||
fracture->setIJK(simWellItem->i, simWellItem->j, simWellItem->k);
|
fracture->setIJK(simWellItem->i, simWellItem->j, simWellItem->k);
|
||||||
fracture->setCellCenterPosition();
|
|
||||||
|
|
||||||
|
|
||||||
RimOilField* oilfield = nullptr;
|
RimOilField* oilfield = nullptr;
|
||||||
objHandle->firstAncestorOrThisOfType(oilfield);
|
objHandle->firstAncestorOrThisOfType(oilfield);
|
||||||
@ -85,7 +83,7 @@ void RicNewSimWellFractureAtPosFeature::onActionTriggered(bool isChecked)
|
|||||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||||
fracture->fractureDefinition = fracDef;
|
fracture->setFractureTemplate(fracDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,11 +69,10 @@ void RicNewSimWellFractureFeature::onActionTriggered(bool isChecked)
|
|||||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||||
fracture->fractureDefinition = fracDef;
|
fracture->setFractureTemplate(fracDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
fracture->setIJK(0, 0, 0);
|
fracture->setIJK(0, 0, 0);
|
||||||
fracture->setCellCenterPosition();
|
|
||||||
|
|
||||||
fractureCollection->updateConnectedEditors();
|
fractureCollection->updateConnectedEditors();
|
||||||
RiuMainWindow::instance()->selectAsCurrentItem(fracture);
|
RiuMainWindow::instance()->selectAsCurrentItem(fracture);
|
||||||
|
@ -81,7 +81,7 @@ void RicNewWellPathFractureAtPosFeature::onActionTriggered(bool isChecked)
|
|||||||
fractureCollection->fractures.push_back(fracture);
|
fractureCollection->fractures.push_back(fracture);
|
||||||
|
|
||||||
fracture->name = "Well Path Fracture";
|
fracture->name = "Well Path Fracture";
|
||||||
fracture->positionAtWellpath = wellPathItem->m_pipeCenterlineIntersectionInDomainCoords;
|
fracture->setAnchorPosition(wellPathItem->m_pipeCenterlineIntersectionInDomainCoords);
|
||||||
fracture->measuredDepth = wellPathItem->m_measuredDepth;
|
fracture->measuredDepth = wellPathItem->m_measuredDepth;
|
||||||
|
|
||||||
RimOilField* oilfield = nullptr;
|
RimOilField* oilfield = nullptr;
|
||||||
@ -91,7 +91,7 @@ void RicNewWellPathFractureAtPosFeature::onActionTriggered(bool isChecked)
|
|||||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||||
fracture->fractureDefinition = fracDef;
|
fracture->setFractureTemplate(fracDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ void RicNewWellPathFractureFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
||||||
cvf::Vec3d positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(md_default);
|
cvf::Vec3d positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(md_default);
|
||||||
fracture->positionAtWellpath = positionAtWellpath;
|
fracture->setAnchorPosition(positionAtWellpath);
|
||||||
|
|
||||||
RimOilField* oilfield = nullptr;
|
RimOilField* oilfield = nullptr;
|
||||||
objHandle->firstAncestorOrThisOfType(oilfield);
|
objHandle->firstAncestorOrThisOfType(oilfield);
|
||||||
@ -82,7 +82,7 @@ void RicNewWellPathFractureFeature::onActionTriggered(bool isChecked)
|
|||||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||||
{
|
{
|
||||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||||
fracture->fractureDefinition = fracDef;
|
fracture->setFractureTemplate(fracDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
fractureCollection->updateConnectedEditors();
|
fractureCollection->updateConnectedEditors();
|
||||||
|
@ -18,27 +18,33 @@
|
|||||||
|
|
||||||
#include "RimFracture.h"
|
#include "RimFracture.h"
|
||||||
|
|
||||||
|
#include "RiaApplication.h"
|
||||||
|
|
||||||
|
#include "RigCell.h"
|
||||||
#include "RigFracture.h"
|
#include "RigFracture.h"
|
||||||
|
#include "RigMainGrid.h"
|
||||||
#include "RigTesselatorTools.h"
|
#include "RigTesselatorTools.h"
|
||||||
|
|
||||||
|
#include "RimEclipseView.h"
|
||||||
#include "RimEllipseFractureTemplate.h"
|
#include "RimEllipseFractureTemplate.h"
|
||||||
|
#include "RimFractureDefinitionCollection.h"
|
||||||
|
#include "RimOilField.h"
|
||||||
|
#include "RimProject.h"
|
||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
|
|
||||||
#include "cafPdmUiDoubleSliderEditor.h"
|
#include "RivWellFracturePartMgr.h"
|
||||||
|
|
||||||
|
#include "cafPdmUiDoubleSliderEditor.h"
|
||||||
|
#include "cafHexGridIntersectionTools/cafHexGridIntersectionTools.h"
|
||||||
|
|
||||||
|
#include "cvfBoundingBox.h"
|
||||||
|
#include "cvfGeometryTools.h"
|
||||||
#include "cvfMath.h"
|
#include "cvfMath.h"
|
||||||
#include "cvfMatrix4.h"
|
#include "cvfMatrix4.h"
|
||||||
#include "RiaApplication.h"
|
|
||||||
#include "RigMainGrid.h"
|
|
||||||
#include "RigCell.h"
|
|
||||||
#include "RimEclipseView.h"
|
|
||||||
#include "cvfBoundingBox.h"
|
|
||||||
#include "cvfPlane.h"
|
#include "cvfPlane.h"
|
||||||
#include "cvfGeometryTools.h"
|
|
||||||
#include "cafHexGridIntersectionTools/cafHexGridIntersectionTools.h"
|
|
||||||
#include "custom-clipper/clipper/clipper.hpp"
|
#include "custom-clipper/clipper/clipper.hpp"
|
||||||
|
|
||||||
#include "RivWellFracturePartMgr.h"
|
|
||||||
|
|
||||||
|
|
||||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimFracture, "Fracture");
|
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimFracture, "Fracture");
|
||||||
@ -50,9 +56,33 @@ RimFracture::RimFracture(void)
|
|||||||
{
|
{
|
||||||
CAF_PDM_InitObject("Fracture", "", "", "");
|
CAF_PDM_InitObject("Fracture", "", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&name, "Name", QString("Fracture Name"), "Name", "", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_fractureTemplate, "FractureDef", "Fracture Template", "", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_anchorPosition, "anchorPosition", "Anchor Position", "", "", "");
|
||||||
|
m_anchorPosition.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_uiAnchorPosition, "ui_positionAtWellpath", "Fracture Position at Well Path", "", "", "");
|
||||||
|
m_uiAnchorPosition.registerGetMethod(this, &RimFracture::fracturePositionForUi);
|
||||||
|
m_uiAnchorPosition.uiCapability()->setUiReadOnly(true);
|
||||||
CAF_PDM_InitField(&azimuth, "Azimuth", 0.0, "Azimuth", "", "", "");
|
CAF_PDM_InitField(&azimuth, "Azimuth", 0.0, "Azimuth", "", "", "");
|
||||||
|
|
||||||
azimuth.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
azimuth.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_i, "I", 1, "Fracture location cell I", "", "", "");
|
||||||
|
m_i.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_j, "J", 1, "Fracture location cell J", "", "", "");
|
||||||
|
m_j.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_k, "K", 1, "Fracture location cell K", "", "", "");
|
||||||
|
m_k.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_displayIJK, "Cell_IJK", "Cell IJK", "", "", "");
|
||||||
|
m_displayIJK.registerGetMethod(this, &RimFracture::createOneBasedIJK);
|
||||||
|
m_displayIJK.uiCapability()->setUiReadOnly(true);
|
||||||
|
|
||||||
m_rigFracture = new RigFracture;
|
m_rigFracture = new RigFracture;
|
||||||
m_recomputeGeometry = true;
|
m_recomputeGeometry = true;
|
||||||
|
|
||||||
@ -116,9 +146,10 @@ std::vector<size_t> RimFracture::getPotentiallyFracturedCells()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
if (changedField == &azimuth)
|
if (changedField == &azimuth ||
|
||||||
|
changedField == &m_fractureTemplate)
|
||||||
{
|
{
|
||||||
computeGeometry();
|
setRecomputeGeometryFlag();
|
||||||
|
|
||||||
RimView* rimView = nullptr;
|
RimView* rimView = nullptr;
|
||||||
this->firstAncestorOrThisOfType(rimView);
|
this->firstAncestorOrThisOfType(rimView);
|
||||||
@ -126,6 +157,15 @@ void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
|||||||
{
|
{
|
||||||
rimView->createDisplayModelAndRedraw();
|
rimView->createDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Can be triggered from well path, find active view
|
||||||
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
|
if (activeView)
|
||||||
|
{
|
||||||
|
activeView->createDisplayModelAndRedraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,12 +195,20 @@ void RimFracture::computeGeometry()
|
|||||||
m_recomputeGeometry = false;
|
m_recomputeGeometry = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
cvf::Vec3d RimFracture::anchorPosition()
|
||||||
|
{
|
||||||
|
return m_anchorPosition();
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
cvf::Mat4f RimFracture::transformMatrix()
|
cvf::Mat4f RimFracture::transformMatrix()
|
||||||
{
|
{
|
||||||
cvf::Vec3d center = centerPointForFracture();
|
cvf::Vec3d center = anchorPosition();
|
||||||
|
|
||||||
// Ellipsis geometry is produced in XY-plane, rotate 90 deg around X to get zero azimuth along Y
|
// Ellipsis geometry is produced in XY-plane, rotate 90 deg around X to get zero azimuth along Y
|
||||||
cvf::Mat4f rotationFromTesselator = cvf::Mat4f::fromRotation(cvf::Vec3f::X_AXIS, cvf::Math::toRadians(90.0f));
|
cvf::Mat4f rotationFromTesselator = cvf::Mat4f::fromRotation(cvf::Vec3f::X_AXIS, cvf::Math::toRadians(90.0f));
|
||||||
@ -450,13 +498,70 @@ bool RimFracture::isRecomputeGeometryFlagSet()
|
|||||||
return m_recomputeGeometry;
|
return m_recomputeGeometry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
cvf::Vec3d RimFracture::fracturePositionForUi() const
|
||||||
|
{
|
||||||
|
cvf::Vec3d v = m_anchorPosition;
|
||||||
|
|
||||||
|
v.z() = -v.z();
|
||||||
|
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QString RimFracture::createOneBasedIJK() const
|
||||||
|
{
|
||||||
|
return QString("I: %1 J: %2 K:%3 ").arg(m_i + 1).arg(m_j + 1).arg(m_k + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QList<caf::PdmOptionItemInfo> RimFracture::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
||||||
|
{
|
||||||
|
QList<caf::PdmOptionItemInfo> options;
|
||||||
|
|
||||||
|
RimProject* proj = RiaApplication::instance()->project();
|
||||||
|
CVF_ASSERT(proj);
|
||||||
|
|
||||||
|
RimOilField* oilField = proj->activeOilField();
|
||||||
|
if (oilField == nullptr) return options;
|
||||||
|
|
||||||
|
if (fieldNeedingOptions == &m_fractureTemplate)
|
||||||
|
{
|
||||||
|
RimFractureDefinitionCollection* fracDefColl = oilField->fractureDefinitionCollection();
|
||||||
|
if (fracDefColl == nullptr) return options;
|
||||||
|
|
||||||
|
for (RimEllipseFractureTemplate* fracDef : fracDefColl->fractureDefinitions())
|
||||||
|
{
|
||||||
|
options.push_back(caf::PdmOptionItemInfo(fracDef->name(), fracDef));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
|
uiOrdering.add(&name);
|
||||||
|
|
||||||
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Properties");
|
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Properties");
|
||||||
geometryGroup->add(&azimuth);
|
geometryGroup->add(&azimuth);
|
||||||
|
geometryGroup->add(&m_fractureTemplate);
|
||||||
|
|
||||||
|
geometryGroup->add(&m_i);
|
||||||
|
geometryGroup->add(&m_j);
|
||||||
|
geometryGroup->add(&m_k);
|
||||||
|
geometryGroup->add(&m_uiAnchorPosition);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -475,6 +580,51 @@ void RimFracture::defineEditorAttribute(const caf::PdmFieldHandle* field, QStrin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimFracture::setAnchorPosition(const cvf::Vec3d& pos)
|
||||||
|
{
|
||||||
|
m_anchorPosition = pos;
|
||||||
|
setRecomputeGeometryFlag();
|
||||||
|
|
||||||
|
// Update ijk
|
||||||
|
{
|
||||||
|
std::vector<size_t> cellindecies;
|
||||||
|
|
||||||
|
RiaApplication* app = RiaApplication::instance();
|
||||||
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
|
if (!activeView) return;
|
||||||
|
|
||||||
|
RimEclipseView* activeRiv = dynamic_cast<RimEclipseView*>(activeView);
|
||||||
|
if (!activeRiv) return;
|
||||||
|
|
||||||
|
const RigMainGrid* mainGrid = activeRiv->mainGrid();
|
||||||
|
if (!mainGrid) return;
|
||||||
|
|
||||||
|
cvf::BoundingBox polygonBBox;
|
||||||
|
polygonBBox.add(m_anchorPosition);
|
||||||
|
|
||||||
|
mainGrid->findIntersectingCells(polygonBBox, &cellindecies);
|
||||||
|
|
||||||
|
if (cellindecies.size() > 0)
|
||||||
|
{
|
||||||
|
size_t i = cvf::UNDEFINED_SIZE_T;
|
||||||
|
size_t j = cvf::UNDEFINED_SIZE_T;
|
||||||
|
size_t k = cvf::UNDEFINED_SIZE_T;
|
||||||
|
|
||||||
|
size_t gridCellIndex = cellindecies[0];
|
||||||
|
|
||||||
|
if (mainGrid->ijkFromCellIndex(gridCellIndex, &i, &j, &k))
|
||||||
|
{
|
||||||
|
m_i = static_cast<int>(i);
|
||||||
|
m_j = static_cast<int>(j);
|
||||||
|
m_k = static_cast<int>(k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -485,6 +635,22 @@ const RigFracture* RimFracture::attachedRigFracture() const
|
|||||||
return m_rigFracture.p();
|
return m_rigFracture.p();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimFracture::setFractureTemplate(RimEllipseFractureTemplate* fractureTemplate)
|
||||||
|
{
|
||||||
|
m_fractureTemplate = fractureTemplate;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimEllipseFractureTemplate* RimFracture::attachedFractureDefinition() const
|
||||||
|
{
|
||||||
|
return m_fractureTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -27,9 +27,12 @@
|
|||||||
#include "cvfVector3.h"
|
#include "cvfVector3.h"
|
||||||
#include "cvfMatrix4.h"
|
#include "cvfMatrix4.h"
|
||||||
|
|
||||||
|
#include "cafPdmProxyValueField.h"
|
||||||
|
#include "cafPdmPtrField.h"
|
||||||
|
|
||||||
|
|
||||||
class RimEllipseFractureTemplate;
|
|
||||||
class RigFracture;
|
class RigFracture;
|
||||||
|
class RimEllipseFractureTemplate;
|
||||||
class RivWellFracturePartMgr;
|
class RivWellFracturePartMgr;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
@ -44,14 +47,19 @@ public:
|
|||||||
RimFracture(void);
|
RimFracture(void);
|
||||||
virtual ~RimFracture(void);
|
virtual ~RimFracture(void);
|
||||||
|
|
||||||
|
caf::PdmField<QString> name;
|
||||||
caf::PdmField<double> azimuth;
|
caf::PdmField<double> azimuth;
|
||||||
|
|
||||||
virtual cvf::Vec3d centerPointForFracture() = 0;
|
cvf::Vec3d anchorPosition();
|
||||||
|
void setAnchorPosition(const cvf::Vec3d& pos);
|
||||||
|
|
||||||
cvf::Mat4f transformMatrix();
|
cvf::Mat4f transformMatrix();
|
||||||
|
|
||||||
virtual RimEllipseFractureTemplate* attachedFractureDefinition() = 0;
|
|
||||||
const RigFracture* attachedRigFracture() const;
|
const RigFracture* attachedRigFracture() const;
|
||||||
|
|
||||||
|
void setFractureTemplate(RimEllipseFractureTemplate* fractureTemplate);
|
||||||
|
RimEllipseFractureTemplate* attachedFractureDefinition() const;
|
||||||
|
|
||||||
RivWellFracturePartMgr* fracturePartManager();
|
RivWellFracturePartMgr* fracturePartManager();
|
||||||
|
|
||||||
bool hasValidGeometry() const;
|
bool hasValidGeometry() const;
|
||||||
@ -68,11 +76,16 @@ public:
|
|||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
||||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override;
|
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool isRecomputeGeometryFlagSet();
|
bool isRecomputeGeometryFlagSet();
|
||||||
|
cvf::Vec3d fracturePositionForUi() const;
|
||||||
|
|
||||||
|
QString createOneBasedIJK() const;
|
||||||
|
|
||||||
//Functions for area calculations - should these be in separate class
|
//Functions for area calculations - should these be in separate class
|
||||||
bool planeCellIntersection(size_t cellindex, std::vector<std::vector<cvf::Vec3d> > & polygons);
|
bool planeCellIntersection(size_t cellindex, std::vector<std::vector<cvf::Vec3d> > & polygons);
|
||||||
@ -81,8 +94,19 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
caf::PdmPtrField<RimEllipseFractureTemplate*> m_fractureTemplate;
|
||||||
|
caf::PdmField<cvf::Vec3d> m_anchorPosition;
|
||||||
|
caf::PdmProxyValueField<cvf::Vec3d> m_uiAnchorPosition;
|
||||||
|
|
||||||
cvf::ref<RigFracture> m_rigFracture;
|
cvf::ref<RigFracture> m_rigFracture;
|
||||||
bool m_recomputeGeometry;
|
bool m_recomputeGeometry;
|
||||||
|
|
||||||
|
|
||||||
|
caf::PdmProxyValueField<QString> m_displayIJK;
|
||||||
|
|
||||||
|
caf::PdmField<int> m_i;
|
||||||
|
caf::PdmField<int> m_j;
|
||||||
|
caf::PdmField<int> m_k;
|
||||||
|
|
||||||
cvf::ref<RivWellFracturePartMgr> m_rivFracture;
|
cvf::ref<RivWellFracturePartMgr> m_rivFracture;
|
||||||
};
|
};
|
||||||
|
@ -54,22 +54,6 @@ RimSimWellFracture::RimSimWellFracture(void)
|
|||||||
{
|
{
|
||||||
CAF_PDM_InitObject("SimWellFracture", ":/FractureSymbol16x16.png", "", "");
|
CAF_PDM_InitObject("SimWellFracture", ":/FractureSymbol16x16.png", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitField(&name, "UserDescription", QString("Fracture Name"), "Name", "", "", "");
|
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_i, "I", 1, "Fracture location cell I", "", "", "");
|
|
||||||
CAF_PDM_InitField(&m_j, "J", 1, "Fracture location cell J", "", "", "");
|
|
||||||
CAF_PDM_InitField(&m_k, "K", 1, "Fracture location cell K", "", "", "");
|
|
||||||
|
|
||||||
CAF_PDM_InitField(&cellCenterPosition, "cellCenterPosition", cvf::Vec3d::ZERO, "Fracture Position cell center", "", "", "");
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&ui_cellCenterPosition, "ui_cellCenterPosition", "Fracture Position cell center", "", "", "");
|
|
||||||
ui_cellCenterPosition.registerGetMethod(this, &RimSimWellFracture::fracturePositionForUi);
|
|
||||||
ui_cellCenterPosition.uiCapability()->setUiReadOnly(true);
|
|
||||||
|
|
||||||
cellCenterPosition.uiCapability()->setUiReadOnly(true);
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&fractureDefinition, "FractureDef", "FractureDef", "", "", "");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -84,81 +68,9 @@ RimSimWellFracture::~RimSimWellFracture()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QList<caf::PdmOptionItemInfo> RimSimWellFracture::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
QList<caf::PdmOptionItemInfo> RimSimWellFracture::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
||||||
{
|
{
|
||||||
|
return RimFracture::calculateValueOptions(fieldNeedingOptions, useOptionsOnly);
|
||||||
QList<caf::PdmOptionItemInfo> options;
|
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
|
||||||
CVF_ASSERT(proj);
|
|
||||||
|
|
||||||
RimOilField* oilField = proj->activeOilField();
|
|
||||||
if (oilField == nullptr) return options;
|
|
||||||
|
|
||||||
if (fieldNeedingOptions == &fractureDefinition)
|
|
||||||
{
|
|
||||||
|
|
||||||
RimFractureDefinitionCollection* fracDefColl = oilField->fractureDefinitionCollection();
|
|
||||||
if (fracDefColl == nullptr) return options;
|
|
||||||
|
|
||||||
for (RimEllipseFractureTemplate* fracDef : fracDefColl->fractureDefinitions())
|
|
||||||
{
|
|
||||||
options.push_back(caf::PdmOptionItemInfo(fracDef->name(), fracDef));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return options;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
cvf::Vec3d RimSimWellFracture::centerPointForFracture()
|
|
||||||
{
|
|
||||||
cvf::Vec3d undef = cvf::Vec3d::UNDEFINED;
|
|
||||||
|
|
||||||
caf::PdmObjectHandle* objHandle = dynamic_cast<caf::PdmObjectHandle*>(this);
|
|
||||||
if (!objHandle) return undef;
|
|
||||||
|
|
||||||
RimEclipseView* mainView = nullptr;
|
|
||||||
objHandle->firstAncestorOrThisOfType(mainView);
|
|
||||||
if (!mainView) return undef;
|
|
||||||
|
|
||||||
const RigMainGrid* mainGrid = mainView->mainGrid();
|
|
||||||
if (!mainGrid) return undef;
|
|
||||||
|
|
||||||
size_t gridCellIndex = mainGrid->cellIndexFromIJK(m_i-1, m_j-1, m_k-1); // cellIndexFromIJK uses 0-based indexing
|
|
||||||
const RigCell& rigCell = mainGrid->cell(gridCellIndex);
|
|
||||||
cvf::Vec3d center = rigCell.center();
|
|
||||||
return center;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
RimEllipseFractureTemplate* RimSimWellFracture::attachedFractureDefinition()
|
|
||||||
{
|
|
||||||
return fractureDefinition();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimSimWellFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (changedField == &m_i || changedField == &m_j || changedField == &m_k)
|
|
||||||
{
|
|
||||||
cellCenterPosition = centerPointForFracture();
|
|
||||||
}
|
|
||||||
|
|
||||||
setRecomputeGeometryFlag();
|
|
||||||
|
|
||||||
RimProject* proj;
|
|
||||||
this->firstAncestorOrThisOfType(proj);
|
|
||||||
if (proj) proj->createDisplayModelAndRedrawAllViews();
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------------
|
||||||
// /
|
// /
|
||||||
@ -200,18 +112,12 @@ caf::PdmFieldHandle* RimSimWellFracture::userDescriptionField()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSimWellFracture::setIJK(size_t i, size_t j, size_t k)
|
void RimSimWellFracture::setIJK(size_t i, size_t j, size_t k)
|
||||||
{
|
{
|
||||||
m_i = static_cast<int>(i + 1);
|
cvf::Vec3d cellCenter = findCellCenterPosition(i, j, k);
|
||||||
m_j = static_cast<int>(j + 1);
|
this->setAnchorPosition(cellCenter);
|
||||||
m_k = static_cast<int>(k + 1);
|
|
||||||
|
|
||||||
}
|
RimProject* proj;
|
||||||
|
this->firstAncestorOrThisOfType(proj);
|
||||||
//--------------------------------------------------------------------------------------------------
|
if (proj) proj->createDisplayModelAndRedrawAllViews();
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimSimWellFracture::setCellCenterPosition()
|
|
||||||
{
|
|
||||||
cellCenterPosition = centerPointForFracture();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -219,12 +125,14 @@ void RimSimWellFracture::setCellCenterPosition()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
|
return RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
||||||
|
/*
|
||||||
uiOrdering.add(&name);
|
uiOrdering.add(&name);
|
||||||
|
|
||||||
RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
||||||
|
|
||||||
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Fractures");
|
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Fractures");
|
||||||
geometryGroup->add(&fractureDefinition);
|
geometryGroup->add(&m_fractureTemplate);
|
||||||
|
|
||||||
geometryGroup->add(&m_i);
|
geometryGroup->add(&m_i);
|
||||||
geometryGroup->add(&m_j);
|
geometryGroup->add(&m_j);
|
||||||
@ -232,17 +140,31 @@ void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi
|
|||||||
geometryGroup->add(&ui_cellCenterPosition);
|
geometryGroup->add(&ui_cellCenterPosition);
|
||||||
|
|
||||||
uiOrdering.setForgetRemainingFields(true);
|
uiOrdering.setForgetRemainingFields(true);
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
cvf::Vec3d RimSimWellFracture::fracturePositionForUi() const
|
cvf::Vec3d RimSimWellFracture::findCellCenterPosition(size_t i, size_t j, size_t k) const
|
||||||
{
|
{
|
||||||
cvf::Vec3d v = cellCenterPosition;
|
cvf::Vec3d undef = cvf::Vec3d::UNDEFINED;
|
||||||
|
|
||||||
v.z() = -v.z();
|
const caf::PdmObjectHandle* objHandle = dynamic_cast<const caf::PdmObjectHandle*>(this);
|
||||||
|
if (!objHandle) return undef;
|
||||||
|
|
||||||
return v;
|
RimEclipseView* mainView = nullptr;
|
||||||
|
objHandle->firstAncestorOrThisOfType(mainView);
|
||||||
|
if (!mainView) return undef;
|
||||||
|
|
||||||
|
const RigMainGrid* mainGrid = mainView->mainGrid();
|
||||||
|
if (!mainGrid) return undef;
|
||||||
|
|
||||||
|
size_t gridCellIndex = mainGrid->cellIndexFromIJK(i, j, k); // cellIndexFromIJK uses 0-based indexing
|
||||||
|
const RigCell& rigCell = mainGrid->cell(gridCellIndex);
|
||||||
|
cvf::Vec3d center = rigCell.center();
|
||||||
|
|
||||||
|
return center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,28 +45,14 @@ public:
|
|||||||
RimSimWellFracture(void);
|
RimSimWellFracture(void);
|
||||||
virtual ~RimSimWellFracture(void);
|
virtual ~RimSimWellFracture(void);
|
||||||
|
|
||||||
caf::PdmField<QString> name;
|
|
||||||
caf::PdmPtrField<RimEllipseFractureTemplate*> fractureDefinition;
|
|
||||||
size_t gridindex;
|
|
||||||
|
|
||||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
||||||
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
||||||
void setIJK(size_t i, size_t j, size_t k);
|
void setIJK(size_t i, size_t j, size_t k);
|
||||||
void setCellCenterPosition();
|
|
||||||
// Overrides from RimFracture
|
|
||||||
virtual cvf::Vec3d centerPointForFracture() override;
|
|
||||||
virtual RimEllipseFractureTemplate* attachedFractureDefinition() override;
|
|
||||||
|
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
|
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
|
||||||
cvf::Vec3d fracturePositionForUi() const;
|
cvf::Vec3d findCellCenterPosition(size_t i, size_t j, size_t k) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<int> m_i; //Eclipse indexing, lowest value is 1
|
|
||||||
caf::PdmField<int> m_j;
|
|
||||||
caf::PdmField<int> m_k;
|
|
||||||
caf::PdmField<cvf::Vec3d> cellCenterPosition;
|
|
||||||
caf::PdmProxyValueField<cvf::Vec3d> ui_cellCenterPosition;
|
|
||||||
};
|
};
|
||||||
|
@ -50,21 +50,7 @@ RimWellPathFracture::RimWellPathFracture(void)
|
|||||||
{
|
{
|
||||||
CAF_PDM_InitObject("Fracture", ":/FractureSymbol16x16.png", "", "");
|
CAF_PDM_InitObject("Fracture", ":/FractureSymbol16x16.png", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitField(&name, "UserDescription", QString("Fracture Name"), "Name", "", "", "");
|
|
||||||
|
|
||||||
CAF_PDM_InitField( &measuredDepth, "MeasuredDepth", 0.0f, "Measured Depth Location (if along well path)", "", "", "");
|
CAF_PDM_InitField( &measuredDepth, "MeasuredDepth", 0.0f, "Measured Depth Location (if along well path)", "", "", "");
|
||||||
CAF_PDM_InitField( &positionAtWellpath, "PositionAtWellpath", cvf::Vec3d::ZERO, "Fracture Position along Well Path", "", "", "");
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&ui_positionAtWellpath, "ui_positionAtWellpath", "Fracture Position at Well Path", "", "", "");
|
|
||||||
ui_positionAtWellpath.registerGetMethod(this, &RimWellPathFracture::fracturePositionForUi);
|
|
||||||
ui_positionAtWellpath.uiCapability()->setUiReadOnly(true);
|
|
||||||
|
|
||||||
CAF_PDM_InitField(&i, "I", 1, "Fracture location cell I", "", "", "");
|
|
||||||
CAF_PDM_InitField(&j, "J", 1, "Fracture location cell J", "", "", "");
|
|
||||||
CAF_PDM_InitField(&k, "K", 1, "Fracture location cell K", "", "", "");
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&fractureDefinition, "FractureDef", "Fracture Template", "", "", "");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -79,48 +65,7 @@ RimWellPathFracture::~RimWellPathFracture()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QList<caf::PdmOptionItemInfo> RimWellPathFracture::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
QList<caf::PdmOptionItemInfo> RimWellPathFracture::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
|
||||||
{
|
{
|
||||||
|
return RimFracture::calculateValueOptions(fieldNeedingOptions, useOptionsOnly);
|
||||||
QList<caf::PdmOptionItemInfo> options;
|
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
|
||||||
CVF_ASSERT(proj);
|
|
||||||
|
|
||||||
RimOilField* oilField = proj->activeOilField();
|
|
||||||
if (oilField == nullptr) return options;
|
|
||||||
|
|
||||||
if (fieldNeedingOptions == &fractureDefinition)
|
|
||||||
{
|
|
||||||
|
|
||||||
RimFractureDefinitionCollection* fracDefColl = oilField->fractureDefinitionCollection();
|
|
||||||
if (fracDefColl == nullptr) return options;
|
|
||||||
|
|
||||||
for (RimEllipseFractureTemplate* fracDef : fracDefColl->fractureDefinitions())
|
|
||||||
{
|
|
||||||
options.push_back(caf::PdmOptionItemInfo(fracDef->name(), fracDef));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return options;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
cvf::Vec3d RimWellPathFracture::centerPointForFracture()
|
|
||||||
{
|
|
||||||
//return cvf::Vec3d::UNDEFINED;
|
|
||||||
return positionAtWellpath;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
RimEllipseFractureTemplate* RimWellPathFracture::attachedFractureDefinition()
|
|
||||||
{
|
|
||||||
return fractureDefinition();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -128,9 +73,11 @@ RimEllipseFractureTemplate* RimWellPathFracture::attachedFractureDefinition()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimWellPathFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimWellPathFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
|
RimFracture::fieldChangedByUi(changedField, oldValue, newValue);
|
||||||
|
|
||||||
if (changedField == &measuredDepth)
|
if (changedField == &measuredDepth)
|
||||||
{
|
{
|
||||||
positionAtWellpath = cvf::Vec3d::ZERO;
|
cvf::Vec3d positionAtWellpath = cvf::Vec3d::ZERO;
|
||||||
|
|
||||||
caf::PdmObjectHandle* objHandle = dynamic_cast<caf::PdmObjectHandle*>(this);
|
caf::PdmObjectHandle* objHandle = dynamic_cast<caf::PdmObjectHandle*>(this);
|
||||||
if (!objHandle) return;
|
if (!objHandle) return;
|
||||||
@ -141,14 +88,13 @@ void RimWellPathFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
|
|||||||
|
|
||||||
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
RigWellPath* wellPathGeometry = wellPath->wellPathGeometry();
|
||||||
positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(measuredDepth);
|
positionAtWellpath = wellPathGeometry->interpolatedPointAlongWellPath(measuredDepth);
|
||||||
}
|
|
||||||
|
|
||||||
setRecomputeGeometryFlag();
|
this->setAnchorPosition(positionAtWellpath);
|
||||||
|
|
||||||
RimProject* proj;
|
RimProject* proj;
|
||||||
this->firstAncestorOrThisOfType(proj);
|
this->firstAncestorOrThisOfType(proj);
|
||||||
if (proj) proj->createDisplayModelAndRedrawAllViews();
|
if (proj) proj->createDisplayModelAndRedrawAllViews();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -164,27 +110,8 @@ caf::PdmFieldHandle* RimWellPathFracture::userDescriptionField()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimWellPathFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimWellPathFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
uiOrdering.add(&name);
|
RimFracture::defineUiOrdering(uiConfigName, uiOrdering);
|
||||||
|
|
||||||
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Fractures");
|
|
||||||
geometryGroup->add(&fractureDefinition);
|
|
||||||
|
|
||||||
geometryGroup->add(&measuredDepth);
|
|
||||||
geometryGroup->add(&ui_positionAtWellpath);
|
|
||||||
|
|
||||||
uiOrdering.setForgetRemainingFields(true);
|
|
||||||
|
|
||||||
|
uiOrdering.add(&measuredDepth);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
cvf::Vec3d RimWellPathFracture::fracturePositionForUi() const
|
|
||||||
{
|
|
||||||
cvf::Vec3d v = positionAtWellpath;
|
|
||||||
|
|
||||||
v.z() = -v.z();
|
|
||||||
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
@ -46,28 +46,13 @@ public:
|
|||||||
RimWellPathFracture(void);
|
RimWellPathFracture(void);
|
||||||
virtual ~RimWellPathFracture(void);
|
virtual ~RimWellPathFracture(void);
|
||||||
|
|
||||||
caf::PdmField<QString> name;
|
|
||||||
caf::PdmPtrField<RimEllipseFractureTemplate* > fractureDefinition;
|
|
||||||
|
|
||||||
caf::PdmField<float> measuredDepth;
|
caf::PdmField<float> measuredDepth;
|
||||||
caf::PdmField<cvf::Vec3d> positionAtWellpath;
|
|
||||||
caf::PdmProxyValueField<cvf::Vec3d> ui_positionAtWellpath;
|
|
||||||
|
|
||||||
caf::PdmField<int> i;
|
|
||||||
caf::PdmField<int> j;
|
|
||||||
caf::PdmField<int> k;
|
|
||||||
|
|
||||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
||||||
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
|
|
||||||
// Overrides from RimFracture
|
|
||||||
virtual cvf::Vec3d centerPointForFracture() override;
|
|
||||||
virtual RimEllipseFractureTemplate* attachedFractureDefinition() override;
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
|
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering);
|
||||||
cvf::Vec3d fracturePositionForUi() const;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user