Curve Style : Add support for curve fitting for non-solid line styles

This commit is contained in:
Magne Sjaastad
2022-04-20 14:25:47 +02:00
committed by GitHub
parent 3a461473d0
commit 87b822a80f
9 changed files with 83 additions and 23 deletions

View File

@@ -106,6 +106,13 @@ RimPlotCurveAppearance::RimPlotCurveAppearance()
"Minimum pixel distance between symbols",
"" );
CAF_PDM_InitField( &m_curveFittingTolerance,
"CurveFittingTolerance",
1.0f,
"Curve Fitting Tolerance",
"",
"Value above 0 : Curve fitting tolerance (default 1.0), 0 : disable curve fitting" );
CAF_PDM_InitFieldNoDefault( &m_symbolLabel, "SymbolLabel", "Symbol Label" );
CAF_PDM_InitField( &m_symbolSize, "SymbolSize", 6, "Symbol Size" );
@@ -126,30 +133,23 @@ void RimPlotCurveAppearance::fieldChangedByUi( const caf::PdmFieldHandle* change
const QVariant& oldValue,
const QVariant& newValue )
{
if ( &m_curveColor == changedField || &m_curveThickness == changedField || &m_pointSymbol == changedField ||
&m_lineStyle == changedField || &m_symbolSkipPixelDistance == changedField ||
&m_curveInterpolation == changedField || &m_symbolSize == changedField || &m_symbolEdgeColor == changedField ||
&m_fillStyle == changedField || &m_fillColor == changedField )
if ( &m_pointSymbol == changedField )
{
if ( &m_pointSymbol == changedField )
{
m_symbolSize.uiCapability()->setUiReadOnly( m_pointSymbol() == RiuPlotCurveSymbol::SYMBOL_NONE );
m_symbolSkipPixelDistance.uiCapability()->setUiReadOnly( m_pointSymbol() == RiuPlotCurveSymbol::SYMBOL_NONE );
}
else if ( &m_lineStyle == changedField )
{
m_curveThickness.uiCapability()->setUiReadOnly( m_lineStyle() ==
RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_NONE );
m_curveInterpolation.uiCapability()->setUiReadOnly( m_lineStyle() ==
RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_NONE );
}
else if ( &m_fillColor == changedField )
{
fillColorChanged.send();
}
appearanceChanged.send();
m_symbolSize.uiCapability()->setUiReadOnly( m_pointSymbol() == RiuPlotCurveSymbol::SYMBOL_NONE );
m_symbolSkipPixelDistance.uiCapability()->setUiReadOnly( m_pointSymbol() == RiuPlotCurveSymbol::SYMBOL_NONE );
}
else if ( &m_lineStyle == changedField )
{
m_curveThickness.uiCapability()->setUiReadOnly( m_lineStyle() == RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_NONE );
m_curveInterpolation.uiCapability()->setUiReadOnly( m_lineStyle() ==
RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_NONE );
}
else if ( &m_fillColor == changedField )
{
fillColorChanged.send();
}
appearanceChanged.send();
}
//--------------------------------------------------------------------------------------------------
@@ -198,6 +198,9 @@ void RimPlotCurveAppearance::defineUiOrdering( QString uiConfigName, caf::PdmUiO
uiOrdering.add( &m_lineStyle );
uiOrdering.add( &m_curveThickness );
uiOrdering.add( &m_curveFittingTolerance );
m_curveFittingTolerance.uiCapability()->setUiReadOnly( m_lineStyle() ==
RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID );
uiOrdering.add( &m_fillStyle );
m_fillStyle.uiCapability()->setUiHidden( !m_fillOptionsVisible );
@@ -422,6 +425,14 @@ cvf::Color3f RimPlotCurveAppearance::fillColor() const
return m_fillColor;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimPlotCurveAppearance::curveFittingTolerance() const
{
return m_curveFittingTolerance();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------