mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Add support for K filter to polyline intersections (#10302)
* Add support for K filter to polyline intersections
This commit is contained in:
@@ -90,9 +90,10 @@ bool RimCellFilterIntervalTool::isNumberIncluded( size_t number ) const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
size_t RimCellFilterIntervalTool::numberFromPart( QString strVal ) const
|
||||
size_t RimCellFilterIntervalTool::numberFromPart( std::string strVal ) const
|
||||
{
|
||||
return strVal.toUInt();
|
||||
QString qStrVal = QString::fromStdString( strVal );
|
||||
return qStrVal.toUInt();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -100,13 +101,15 @@ size_t RimCellFilterIntervalTool::numberFromPart( QString strVal ) const
|
||||
// Define a range with the comma separated format A,B,C-D, etc., i.e. 1,4,5-8
|
||||
// Only positive numbers are supported.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCellFilterIntervalTool::setInterval( bool enabled, QString intervalText )
|
||||
void RimCellFilterIntervalTool::setInterval( bool enabled, std::string intervalText )
|
||||
{
|
||||
m_intervals.clear();
|
||||
|
||||
if ( !enabled ) return;
|
||||
|
||||
QStringList parts = RiaTextStringTools::splitSkipEmptyParts( intervalText, "," );
|
||||
QString qIntervalText = QString::fromStdString( intervalText );
|
||||
|
||||
QStringList parts = RiaTextStringTools::splitSkipEmptyParts( qIntervalText, "," );
|
||||
|
||||
for ( auto& part : parts )
|
||||
{
|
||||
@@ -114,10 +117,11 @@ void RimCellFilterIntervalTool::setInterval( bool enabled, QString intervalText
|
||||
switch ( minmax.size() )
|
||||
{
|
||||
case 1:
|
||||
m_intervals.push_back( RimCellFilterInterval( numberFromPart( minmax[0] ) ) );
|
||||
m_intervals.push_back( RimCellFilterInterval( numberFromPart( minmax[0].toStdString() ) ) );
|
||||
break;
|
||||
case 2:
|
||||
m_intervals.push_back( RimCellFilterInterval( numberFromPart( minmax[0] ), numberFromPart( minmax[1] ) ) );
|
||||
m_intervals.push_back(
|
||||
RimCellFilterInterval( numberFromPart( minmax[0].toStdString() ), numberFromPart( minmax[1].toStdString() ) ) );
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
#include <list>
|
||||
#include <string>
|
||||
|
||||
class RimCellFilterInterval
|
||||
{
|
||||
@@ -42,14 +42,14 @@ public:
|
||||
RimCellFilterIntervalTool( bool includeAllByDefault = true );
|
||||
~RimCellFilterIntervalTool();
|
||||
|
||||
void setInterval( bool enabled, QString intervalText );
|
||||
void setInterval( bool enabled, std::string intervalText );
|
||||
bool isNumberIncluded( size_t number ) const;
|
||||
|
||||
private:
|
||||
size_t numberFromPart( QString strVal ) const;
|
||||
size_t numberFromPart( std::string strVal ) const;
|
||||
|
||||
bool m_includeAllByDefault;
|
||||
QString m_intervalText;
|
||||
bool m_includeAllByDefault;
|
||||
std::string m_intervalText;
|
||||
|
||||
std::list<RimCellFilterInterval> m_intervals;
|
||||
};
|
||||
|
||||
@@ -812,7 +812,7 @@ void RimPolygonFilter::updateCells()
|
||||
initializeCellList();
|
||||
|
||||
// get optional k-cell filter
|
||||
m_intervalTool.setInterval( m_enableKFilter, m_kFilterStr );
|
||||
m_intervalTool.setInterval( m_enableKFilter, m_kFilterStr().toStdString() );
|
||||
|
||||
// get polyline as vector
|
||||
std::vector<cvf::Vec3d> points;
|
||||
|
||||
@@ -125,16 +125,16 @@ private:
|
||||
caf::PdmField<caf::AppEnum<PolygonIncludeType>> m_polyIncludeType;
|
||||
caf::PdmPtrField<RimCase*> m_srcCase;
|
||||
caf::PdmField<bool> m_enableFiltering;
|
||||
caf::PdmField<bool> m_enableKFilter;
|
||||
caf::PdmField<bool> m_showLines;
|
||||
caf::PdmField<bool> m_showSpheres;
|
||||
caf::PdmField<QString> m_kFilterStr;
|
||||
caf::PdmField<int> m_lineThickness;
|
||||
caf::PdmField<double> m_sphereRadiusFactor;
|
||||
caf::PdmField<cvf::Color3f> m_lineColor;
|
||||
caf::PdmField<cvf::Color3f> m_sphereColor;
|
||||
caf::PdmField<double> m_polygonPlaneDepth;
|
||||
caf::PdmField<bool> m_lockPolygonToPlane;
|
||||
caf::PdmField<bool> m_enableKFilter;
|
||||
caf::PdmField<QString> m_kFilterStr;
|
||||
|
||||
std::shared_ptr<RicPolylineTargetsPickEventHandler> m_pickTargetsEventHandler;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user