mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2462 Add fracture template id
This commit is contained in:
parent
bbabb60ece
commit
3fc99a73bc
@ -79,9 +79,9 @@ void RicNewEllipseFractureTemplateFeature::onActionTriggered(bool isChecked)
|
||||
{
|
||||
RimEllipseFractureTemplate* ellipseFractureTemplate = new RimEllipseFractureTemplate();
|
||||
|
||||
fracDefColl->fractureDefinitions.push_back(ellipseFractureTemplate);
|
||||
fracDefColl->addFractureTemplate(ellipseFractureTemplate);
|
||||
ellipseFractureTemplate->setName("Ellipse Fracture Template");
|
||||
ellipseFractureTemplate->setFractureTemplateUnit(fracDefColl->defaultUnitsForFracTemplates());
|
||||
ellipseFractureTemplate->setFractureTemplateUnit(fracDefColl->defaultUnitSystemType());
|
||||
ellipseFractureTemplate->setDefaultValuesFromUnit();
|
||||
|
||||
selectFractureTemplateAndUpdate(fracDefColl, ellipseFractureTemplate);
|
||||
|
@ -60,7 +60,7 @@ void RicNewStimPlanFractureTemplateFeature::onActionTriggered(bool isChecked)
|
||||
if (fracDefColl)
|
||||
{
|
||||
RimStimPlanFractureTemplate* fractureDef = new RimStimPlanFractureTemplate();
|
||||
fracDefColl->fractureDefinitions.push_back(fractureDef);
|
||||
fracDefColl->addFractureTemplate(fractureDef);
|
||||
|
||||
QFileInfo stimplanfileFileInfo(fileName);
|
||||
QString name = stimplanfileFileInfo.baseName();
|
||||
|
@ -73,12 +73,12 @@ void RicPasteEllipseFractureFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
for (const auto& source : typedObjects)
|
||||
{
|
||||
auto rimReservoirView = dynamic_cast<RimEllipseFractureTemplate*>(
|
||||
auto templ = dynamic_cast<RimEllipseFractureTemplate*>(
|
||||
source->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance()));
|
||||
|
||||
fractureTemplateColl->fractureDefinitions.push_back(rimReservoirView);
|
||||
fractureTemplateColl->addFractureTemplate(templ);
|
||||
|
||||
RicNewEllipseFractureTemplateFeature::selectFractureTemplateAndUpdate(fractureTemplateColl, rimReservoirView);
|
||||
RicNewEllipseFractureTemplateFeature::selectFractureTemplateAndUpdate(fractureTemplateColl, templ);
|
||||
}
|
||||
|
||||
return;
|
||||
|
@ -76,7 +76,7 @@ void RicPasteStimPlanFractureFeature::onActionTriggered(bool isChecked)
|
||||
auto copyOfStimPlanTemplate = dynamic_cast<RimStimPlanFractureTemplate*>(
|
||||
source->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance()));
|
||||
|
||||
fractureTemplateColl->fractureDefinitions.push_back(copyOfStimPlanTemplate);
|
||||
fractureTemplateColl->addFractureTemplate(copyOfStimPlanTemplate);
|
||||
|
||||
RicNewEllipseFractureTemplateFeature::selectFractureTemplateAndUpdate(fractureTemplateColl, copyOfStimPlanTemplate);
|
||||
}
|
||||
|
@ -377,6 +377,7 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
|
||||
}
|
||||
|
||||
uiOrdering.add(&m_name);
|
||||
uiOrdering.add(&m_id);
|
||||
|
||||
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Geometry");
|
||||
geometryGroup->add(&m_halfLength);
|
||||
|
@ -416,7 +416,7 @@ QList<caf::PdmOptionItemInfo> RimFracture::calculateValueOptions(const caf::PdmF
|
||||
{
|
||||
RimFractureTemplateCollection* fracDefColl = oilField->fractureDefinitionCollection();
|
||||
|
||||
for (RimFractureTemplate* fracDef : fracDefColl->fractureDefinitions())
|
||||
for (RimFractureTemplate* fracDef : fracDefColl->fractureTemplates())
|
||||
{
|
||||
QString displayText = fracDef->nameAndUnit();
|
||||
if (fracDef->fractureTemplateUnit() != fractureUnit())
|
||||
|
@ -98,6 +98,9 @@ RimFractureTemplate::RimFractureTemplate()
|
||||
{
|
||||
CAF_PDM_InitObject("Fracture Template", ":/FractureTemplate16x16.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_id, "Id", -1, "ID", "", "", "");
|
||||
m_id.uiCapability()->setUiReadOnly(true);
|
||||
|
||||
CAF_PDM_InitField(&m_name, "UserDescription", QString("Fracture Template"), "Name", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_nameAndUnit, "NameAndUnit", "NameAndUnit", "", "", "");
|
||||
@ -170,6 +173,14 @@ RimFractureTemplate::~RimFractureTemplate()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RimFractureTemplate::id() const
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -638,6 +649,14 @@ void RimFractureTemplate::disconnectAllFracturesAndRedrawViews() const
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplate::setId(int id)
|
||||
{
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -104,6 +104,7 @@ public:
|
||||
RimFractureTemplate();
|
||||
virtual ~RimFractureTemplate();
|
||||
|
||||
int id() const;
|
||||
QString name() const;
|
||||
QString nameAndUnit() const;
|
||||
|
||||
@ -142,7 +143,7 @@ public:
|
||||
virtual void loadDataAndUpdate() = 0;
|
||||
|
||||
void disconnectAllFracturesAndRedrawViews() const;
|
||||
|
||||
void setId(int id);
|
||||
|
||||
protected:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
||||
@ -161,6 +162,7 @@ private:
|
||||
double fractureWidth() const;
|
||||
|
||||
protected:
|
||||
caf::PdmField<int> m_id;
|
||||
caf::PdmField<QString> m_name;
|
||||
caf::PdmProxyValueField<QString> m_nameAndUnit;
|
||||
|
||||
|
@ -52,12 +52,16 @@ RimFractureTemplateCollection::RimFractureTemplateCollection(void)
|
||||
{
|
||||
CAF_PDM_InitObject("Fracture Templates", ":/FractureTemplates16x16.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&defaultUnitsForFracTemplates, "DefaultUnitForTemplates",
|
||||
CAF_PDM_InitField(&m_defaultUnitsForFracTemplates, "DefaultUnitForTemplates",
|
||||
caf::AppEnum<RiaEclipseUnitTools::UnitSystem>(RiaEclipseUnitTools::UNITS_METRIC),
|
||||
"Default unit system for fracture templates", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&fractureDefinitions, "FractureDefinitions", "", "", "", "");
|
||||
fractureDefinitions.uiCapability()->setUiHidden(true);
|
||||
CAF_PDM_InitFieldNoDefault(&m_fractureDefinitions, "FractureDefinitions", "", "", "", "");
|
||||
m_fractureDefinitions.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&m_nextValidFractureTemplateId, "NextValidFractureTemplateId", 0, "", "", "", "");
|
||||
m_fractureDefinitions.uiCapability()->setUiHidden(true);
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -65,7 +69,37 @@ RimFractureTemplateCollection::RimFractureTemplateCollection(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFractureTemplateCollection::~RimFractureTemplateCollection()
|
||||
{
|
||||
fractureDefinitions.deleteAllChildObjects();
|
||||
m_fractureDefinitions.deleteAllChildObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimFractureTemplate*> RimFractureTemplateCollection::fractureTemplates() const
|
||||
{
|
||||
std::vector<RimFractureTemplate*> templates;
|
||||
for (auto& templ : m_fractureDefinitions)
|
||||
{
|
||||
templates.push_back(templ);
|
||||
}
|
||||
return templates;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplateCollection::addFractureTemplate(RimFractureTemplate* templ)
|
||||
{
|
||||
templ->setId(nextFractureTemplateId());
|
||||
m_fractureDefinitions.push_back(templ);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiaEclipseUnitTools::UnitSystemType RimFractureTemplateCollection::defaultUnitSystemType() const
|
||||
{
|
||||
return m_defaultUnitsForFracTemplates;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -73,7 +107,7 @@ RimFractureTemplateCollection::~RimFractureTemplateCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFractureTemplate* RimFractureTemplateCollection::firstFractureOfUnit(RiaEclipseUnitTools::UnitSystem unitSet) const
|
||||
{
|
||||
for (RimFractureTemplate* f : fractureDefinitions())
|
||||
for (RimFractureTemplate* f : m_fractureDefinitions())
|
||||
{
|
||||
if (f->fractureTemplateUnit() == unitSet)
|
||||
{
|
||||
@ -91,7 +125,7 @@ std::vector<std::pair<QString, QString> > RimFractureTemplateCollection::resultN
|
||||
{
|
||||
std::set<std::pair<QString, QString> > nameSet;
|
||||
|
||||
for (const RimFractureTemplate* f : fractureDefinitions())
|
||||
for (const RimFractureTemplate* f : m_fractureDefinitions())
|
||||
{
|
||||
std::vector<std::pair<QString, QString> > namesAndUnits = f->uiResultNamesWithUnit();
|
||||
|
||||
@ -115,7 +149,7 @@ void RimFractureTemplateCollection::computeMinMax(const QString& uiResultName, c
|
||||
MinMaxAccumulator minMaxAccumulator;
|
||||
PosNegAccumulator posNegAccumulator;
|
||||
|
||||
for (const RimFractureTemplate* f : fractureDefinitions())
|
||||
for (const RimFractureTemplate* f : m_fractureDefinitions())
|
||||
{
|
||||
if (f)
|
||||
{
|
||||
@ -138,7 +172,7 @@ void RimFractureTemplateCollection::createAndAssignTemplateCopyForNonMatchingUni
|
||||
|
||||
std::vector<RimFractureTemplate*> templatesToBeAdded;
|
||||
|
||||
for (RimFractureTemplate* fractureTemplate : fractureDefinitions())
|
||||
for (RimFractureTemplate* fractureTemplate : m_fractureDefinitions())
|
||||
{
|
||||
if (fractureTemplate)
|
||||
{
|
||||
@ -188,7 +222,7 @@ void RimFractureTemplateCollection::createAndAssignTemplateCopyForNonMatchingUni
|
||||
|
||||
for (auto templateWithMatchingUnit : templatesToBeAdded)
|
||||
{
|
||||
fractureDefinitions.push_back(templateWithMatchingUnit);
|
||||
m_fractureDefinitions.push_back(templateWithMatchingUnit);
|
||||
}
|
||||
}
|
||||
|
||||
@ -197,7 +231,7 @@ void RimFractureTemplateCollection::createAndAssignTemplateCopyForNonMatchingUni
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplateCollection::loadAndUpdateData()
|
||||
{
|
||||
for (RimFractureTemplate* f : fractureDefinitions())
|
||||
for (RimFractureTemplate* f : m_fractureDefinitions())
|
||||
{
|
||||
RimStimPlanFractureTemplate* stimPlanFracture = dynamic_cast<RimStimPlanFractureTemplate*>(f);
|
||||
if (stimPlanFracture)
|
||||
@ -212,7 +246,7 @@ void RimFractureTemplateCollection::loadAndUpdateData()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplateCollection::setDefaultConductivityResultIfEmpty()
|
||||
{
|
||||
for (RimFractureTemplate* f : fractureDefinitions())
|
||||
for (RimFractureTemplate* f : m_fractureDefinitions())
|
||||
{
|
||||
RimStimPlanFractureTemplate* stimPlanFracture = dynamic_cast<RimStimPlanFractureTemplate*>(f);
|
||||
if (stimPlanFracture)
|
||||
@ -227,7 +261,7 @@ void RimFractureTemplateCollection::setDefaultConductivityResultIfEmpty()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplateCollection::updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath)
|
||||
{
|
||||
for (RimFractureTemplate* f : fractureDefinitions())
|
||||
for (RimFractureTemplate* f : m_fractureDefinitions())
|
||||
{
|
||||
RimStimPlanFractureTemplate* stimPlanFracture = dynamic_cast<RimStimPlanFractureTemplate*>(f);
|
||||
if (stimPlanFracture)
|
||||
@ -248,6 +282,12 @@ void RimFractureTemplateCollection::updateFilePathsFromProjectPath(const QString
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplateCollection::initAfterRead()
|
||||
{
|
||||
// Assign template id if not already assigned
|
||||
for (auto& templ : m_fractureDefinitions)
|
||||
{
|
||||
if (templ->id() < 0) templ->setId(nextFractureTemplateId());
|
||||
}
|
||||
|
||||
RimProject* proj = nullptr;
|
||||
this->firstAncestorOrThisOfType(proj);
|
||||
if (proj && proj->isProjectFileVersionEqualOrOlderThan("2018.1.0.103"))
|
||||
@ -347,3 +387,12 @@ void RimFractureTemplateCollection::initAfterRead()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RimFractureTemplateCollection::nextFractureTemplateId()
|
||||
{
|
||||
int newId = m_nextValidFractureTemplateId;
|
||||
m_nextValidFractureTemplateId = m_nextValidFractureTemplateId + 1;
|
||||
return newId;
|
||||
}
|
||||
|
@ -38,10 +38,11 @@ public:
|
||||
RimFractureTemplateCollection(void);
|
||||
virtual ~RimFractureTemplateCollection(void);
|
||||
|
||||
std::vector<RimFractureTemplate*> fractureTemplates() const;
|
||||
void addFractureTemplate(RimFractureTemplate* templ);
|
||||
RiaEclipseUnitTools::UnitSystemType defaultUnitSystemType() const;
|
||||
|
||||
RimFractureTemplate* firstFractureOfUnit(RiaEclipseUnitTools::UnitSystem unitSet) const;
|
||||
|
||||
caf::PdmChildArrayField<RimFractureTemplate*> fractureDefinitions;
|
||||
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > defaultUnitsForFracTemplates;
|
||||
|
||||
std::vector<std::pair<QString, QString> > resultNamesAndUnits() const;
|
||||
void computeMinMax(const QString& uiResultName, const QString& unit, double* minValue, double* maxValue, double* posClosestToZero, double* negClosestToZero) const;
|
||||
@ -52,6 +53,13 @@ public:
|
||||
|
||||
void updateFilePathsFromProjectPath(const QString& newProjectPath, const QString& oldProjectPath);
|
||||
protected:
|
||||
virtual void initAfterRead() override;
|
||||
virtual void initAfterRead() override;
|
||||
|
||||
private:
|
||||
int nextFractureTemplateId();
|
||||
|
||||
caf::PdmChildArrayField<RimFractureTemplate*> m_fractureDefinitions;
|
||||
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > m_defaultUnitsForFracTemplates;
|
||||
caf::PdmField<int> m_nextValidFractureTemplateId; // Unique fracture template ID within a project, used to identify a fracture template
|
||||
|
||||
};
|
||||
|
@ -734,6 +734,7 @@ std::vector<cvf::Vec3f> RimStimPlanFractureTemplate::fractureBorderPolygon()
|
||||
void RimStimPlanFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
uiOrdering.add(&m_name);
|
||||
uiOrdering.add(&m_id);
|
||||
|
||||
caf::PdmUiGroup* fileGroup = uiOrdering.addNewGroup("Input");
|
||||
fileGroup->add(&m_stimPlanFileName);
|
||||
|
@ -1385,7 +1385,7 @@ void RimEclipseView::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering
|
||||
|
||||
if (oilfield && oilfield->fractureDefinitionCollection().notNull())
|
||||
{
|
||||
if (!oilfield->fractureDefinitionCollection()->fractureDefinitions.empty())
|
||||
if (!oilfield->fractureDefinitionCollection()->fractureTemplates().empty())
|
||||
{
|
||||
uiTreeOrdering.add(fractureColors());
|
||||
}
|
||||
|
@ -959,7 +959,7 @@ std::vector<RimFractureTemplate*> RimProject::allFractureTemplates() const
|
||||
allOilFields(oilFields);
|
||||
for (RimFractureTemplateCollection* templColl : allFractureTemplateCollections())
|
||||
{
|
||||
for (RimFractureTemplate* templ : templColl->fractureDefinitions)
|
||||
for (RimFractureTemplate* templ : templColl->fractureTemplates())
|
||||
{
|
||||
templates.push_back(templ);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user