#3268 MSW Fracture Export : Add activeFishbonesSubs

This commit is contained in:
Magne Sjaastad
2018-09-07 12:41:04 +02:00
parent 32e6a409b7
commit eefb131701
8 changed files with 43 additions and 41 deletions

View File

@@ -87,7 +87,7 @@ void RicfExportMsw::execute()
std::vector<RimFishbonesMultipleSubs*> fishbonesSubs;
for (RimFishbonesMultipleSubs* fishbones : wellPath->fishbonesCollection()->fishbonesSubs())
for (RimFishbonesMultipleSubs* fishbones : wellPath->fishbonesCollection()->activeFishbonesSubs())
{
fishbonesSubs.push_back(fishbones);
}

View File

@@ -78,10 +78,8 @@ void RicExportFishbonesLateralsFeature::onActionTriggered(bool isChecked)
// separate laterals using -999 on a single line
QTextStream stream(&exportFile);
for (RimFishbonesMultipleSubs* fishbone : fishbonesCollection->fishbonesSubs())
for (RimFishbonesMultipleSubs* fishbone : fishbonesCollection->activeFishbonesSubs())
{
if (!fishbone->isActive()) continue;
const QString fishboneName = fishbone->generatedName();
for (auto& sub : fishbone->installedLateralIndices())

View File

@@ -89,13 +89,10 @@ void RicExportFishbonesWellSegmentsFeature::onActionTriggered(bool isChecked)
{
RiaApplication::instance()->setLastUsedDialogDirectory("COMPLETIONS", QFileInfo(exportSettings.folder).absolutePath());
std::vector<RimFishbonesMultipleSubs*> fishbonesSubs;
for (RimFishbonesMultipleSubs* subs : fishbonesCollection->fishbonesSubs())
if (!fishbonesCollection->activeFishbonesSubs().empty())
{
fishbonesSubs.push_back(subs);
exportWellSegments(wellPath, fishbonesCollection->activeFishbonesSubs(), exportSettings);
}
exportWellSegments(wellPath, fishbonesSubs, exportSettings);
}
}

View File

@@ -168,8 +168,8 @@ void RicFishbonesTransmissibilityCalculationFeatureImp::findFishboneLateralsWell
if (!wellPath) return;
// Generate data
const RigEclipseCaseData* caseData = settings.caseToApply()->eclipseCaseData();
RicMswExportInfo exportInfo =
const RigEclipseCaseData* caseData = settings.caseToApply()->eclipseCaseData();
RicMswExportInfo exportInfo =
RicWellPathExportCompletionDataFeatureImpl::generateFishbonesMswExportInfo(settings.caseToApply(), wellPath);
RiaEclipseUnitTools::UnitSystem unitSystem = caseData->unitsType();
@@ -209,18 +209,15 @@ void RicFishbonesTransmissibilityCalculationFeatureImp::findFishboneLateralsWell
double holeRadius = wellPath->fishbonesCollection()->mainBoreDiameter(unitSystem) / 2.0;
double skinFactor = wellPath->fishbonesCollection()->mainBoreSkinFactor();
for (const auto& fishboneDefinition : wellPath->fishbonesCollection()->fishbonesSubs())
for (const auto& fishboneDefinition : wellPath->fishbonesCollection()->activeFishbonesSubs())
{
if (fishboneDefinition->isActive())
{
appendMainWellBoreParts(wellBorePartsInCells,
wellPath,
settings,
skinFactor,
holeRadius,
fishboneDefinition->startOfSubMD(),
fishboneDefinition->endOfSubMD());
}
appendMainWellBoreParts(wellBorePartsInCells,
wellPath,
settings,
skinFactor,
holeRadius,
fishboneDefinition->startOfSubMD(),
fishboneDefinition->endOfSubMD());
}
}
}

View File

@@ -384,7 +384,7 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions(const std::ve
for (const auto wellPath : wellPaths)
{
auto fishbones = wellPath->fishbonesCollection()->fishbonesSubs();
auto fishbones = wellPath->fishbonesCollection()->activeFishbonesSubs();
exportWellSegments(exportSettings.caseToApply,
exportFile,
wellPath, fishbones);
@@ -1561,18 +1561,7 @@ std::vector<RigCompletionData> RicWellPathExportCompletionDataFeatureImpl::gener
RicMswExportInfo RicWellPathExportCompletionDataFeatureImpl::generateFishbonesMswExportInfo(const RimEclipseCase* caseToApply,
const RimWellPath* wellPath)
{
std::vector<RimFishbonesMultipleSubs*> fishbonesSubs;
if (wellPath->fishbonesCollection()->isChecked())
{
for (RimFishbonesMultipleSubs* subs : wellPath->fishbonesCollection()->fishbonesSubs())
{
if (subs->isActive())
{
fishbonesSubs.push_back(subs);
}
}
}
std::vector<RimFishbonesMultipleSubs*> fishbonesSubs = wellPath->fishbonesCollection()->activeFishbonesSubs();
return generateFishbonesMswExportInfo(caseToApply, wellPath, fishbonesSubs);
}

View File

@@ -152,7 +152,7 @@ void RivWellPathPartMgr::appendFishboneSubsPartsToModel(cvf::ModelBasicList* mod
{
if ( !m_rimWellPath || !m_rimWellPath->fishbonesCollection()->isChecked() ) return;
for (const auto& rimFishboneSubs : m_rimWellPath->fishbonesCollection()->fishbonesSubs() )
for (const auto& rimFishboneSubs : m_rimWellPath->fishbonesCollection()->activeFishbonesSubs() )
{
cvf::ref<RivFishbonesSubsPartMgr> fishbSubPartMgr = new RivFishbonesSubsPartMgr(rimFishboneSubs);
fishbSubPartMgr->appendGeometryPartsToModel(model, displayCoordTransform, characteristicCellSize);

View File

@@ -180,6 +180,27 @@ const RimMswCompletionParameters* RimFishbonesCollection::mswParameters() const
return m_mswParameters;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimFishbonesMultipleSubs*> RimFishbonesCollection::activeFishbonesSubs() const
{
std::vector<RimFishbonesMultipleSubs*> active;
if (isChecked())
{
for (const auto& f : fishbonesSubs())
{
if (f->isActive())
{
active.push_back(f);
}
}
}
return active;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -42,15 +42,15 @@ class RimFishbonesCollection : public RimCheckableNamedObject
CAF_PDM_HEADER_INIT;
public:
RimFishbonesCollection();
RimFishboneWellPathCollection* wellPathCollection() const;
void appendFishbonesSubs(RimFishbonesMultipleSubs* subs);
const RimMswCompletionParameters* mswParameters() const;
std::vector<RimFishbonesMultipleSubs*> activeFishbonesSubs() const;
std::vector<RimFishbonesMultipleSubs*> fishbonesSubs() const;
void recalculateStartMD();
double startMD() const;
double mainBoreSkinFactor() const { return m_skinFactor; }
@@ -58,9 +58,9 @@ public:
void setUnitSystemSpecificDefaults();
protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
virtual void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering );
virtual void initAfterRead() override;
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
void initAfterRead() override;
private:
cvf::Color3f nextFishbonesColor() const;