Polygonfilter updates2 (#7286)

* Make sure all contourmap copies are getting the correct case set for cell filters when creating/copying maps.

* Rewrite polyline part manager to be more generic, not just linked to annotations.
* Add new partmgr for cell filters to draw polygon filter outlines in both eclipse and geomech views
* Show lines/spheres for polygon filter outline
* Add color edit for line and spheres
* Add support for z plane lock in poygon filter outline
* Add new flags for enabling filter and/or polyline display

* Add K range filter to polygon filter

* Enable picking automatically when creating a new polygon filter
This commit is contained in:
jonjenssen
2021-01-26 13:08:21 +01:00
committed by GitHub
parent 4866794f2b
commit 05aceef936
32 changed files with 1218 additions and 348 deletions

View File

@@ -1,7 +1,6 @@
#include "RigPolyLinesData.h"
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2018- Equinor ASA
// Copyright (C) 2021 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -22,7 +21,16 @@
///
//--------------------------------------------------------------------------------------------------
RigPolyLinesData::RigPolyLinesData()
: m_showLines( true )
, m_showSpheres( true )
, m_lineThickness( 4 )
, m_sphereRadiusFactor( 0.1 )
, m_lockToZPlane( false )
, m_lockedZValue( 0.0 )
, m_closePolyline( true )
{
m_sphereColor.set( 200, 200, 200 );
m_lineColor.set( 200, 200, 200 );
}
//--------------------------------------------------------------------------------------------------
@@ -31,3 +39,144 @@ RigPolyLinesData::RigPolyLinesData()
RigPolyLinesData::~RigPolyLinesData()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<std::vector<cvf::Vec3d>>& RigPolyLinesData::polyLines() const
{
return m_polylines;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::setPolyLines( const std::vector<std::vector<cvf::Vec3d>>& polyLines )
{
m_polylines = polyLines;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::setPolyLine( const std::vector<cvf::Vec3d>& polyline )
{
m_polylines = { polyline };
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::addPolyLine( const std::vector<cvf::Vec3d>& polyline )
{
m_polylines.push_back( polyline );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::setVisibility( bool showLines, bool showSpheres )
{
m_showLines = showLines;
m_showSpheres = showSpheres;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::setLineAppearance( int lineThickness, cvf::Color3f color, bool closePolyline )
{
m_lineThickness = lineThickness;
m_lineColor = color;
m_closePolyline = closePolyline;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::setSphereAppearance( double radiusFactor, cvf::Color3f color )
{
m_sphereRadiusFactor = radiusFactor;
m_sphereColor = color;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RigPolyLinesData::showLines() const
{
return m_showLines;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RigPolyLinesData::showSpheres() const
{
return m_showSpheres;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RigPolyLinesData::lineThickness() const
{
return m_lineThickness;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Color3f RigPolyLinesData::lineColor() const
{
return m_lineColor;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RigPolyLinesData::closePolyline() const
{
return m_closePolyline;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Color3f RigPolyLinesData::sphereColor() const
{
return m_sphereColor;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RigPolyLinesData::sphereRadiusFactor() const
{
return m_sphereRadiusFactor;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RigPolyLinesData::lockedZValue() const
{
return m_lockedZValue;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RigPolyLinesData::lockToZPlane() const
{
return m_lockToZPlane;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigPolyLinesData::setZPlaneLock( bool lockToZ, double lockZValue )
{
m_lockToZPlane = lockToZ;
m_lockedZValue = lockZValue;
}

View File

@@ -18,6 +18,7 @@
#pragma once
#include "cvfColor3.h"
#include "cvfObject.h"
#include "cvfVector3.h"
@@ -33,10 +34,40 @@ public:
RigPolyLinesData();
~RigPolyLinesData() override;
const std::vector<std::vector<cvf::Vec3d>>& polyLines() const { return m_polylines; }
void setPolyLines( const std::vector<std::vector<cvf::Vec3d>>& polyLines ) { m_polylines = polyLines; }
void setPolyLine( const std::vector<cvf::Vec3d>& polyline ) { m_polylines = { polyline }; }
const std::vector<std::vector<cvf::Vec3d>>& polyLines() const;
void setPolyLines( const std::vector<std::vector<cvf::Vec3d>>& polyLines );
void setPolyLine( const std::vector<cvf::Vec3d>& polyline );
void addPolyLine( const std::vector<cvf::Vec3d>& polyline );
void setVisibility( bool showLines, bool showSpheres );
void setLineAppearance( int lineThickness, cvf::Color3f color, bool closePolyline );
void setSphereAppearance( double radiusFactor, cvf::Color3f color );
void setZPlaneLock( bool lockToZ, double lockZValue );
bool showLines() const;
bool showSpheres() const;
int lineThickness() const;
bool closePolyline() const;
cvf::Color3f lineColor() const;
cvf::Color3f sphereColor() const;
double sphereRadiusFactor() const;
double lockedZValue() const;
bool lockToZPlane() const;
private:
std::vector<std::vector<cvf::Vec3d>> m_polylines;
bool m_showLines;
int m_lineThickness;
bool m_closePolyline;
bool m_showSpheres;
double m_sphereRadiusFactor;
bool m_lockToZPlane;
double m_lockedZValue;
cvf::Color3f m_lineColor;
cvf::Color3f m_sphereColor;
};