#8410 Color Legend : Add option to center legend around zero

This commit is contained in:
Magne Sjaastad 2022-01-05 13:29:56 +01:00
parent 1e17da2926
commit 13425ce0e9
2 changed files with 21 additions and 0 deletions

View File

@ -212,6 +212,8 @@ RimRegularLegendConfig::RimRegularLegendConfig()
m_resetUserDefinedValuesButton.uiCapability()->setUiEditorTypeName( caf::PdmUiPushButtonEditor::uiEditorTypeName() ); m_resetUserDefinedValuesButton.uiCapability()->setUiEditorTypeName( caf::PdmUiPushButtonEditor::uiEditorTypeName() );
m_resetUserDefinedValuesButton.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN ); m_resetUserDefinedValuesButton.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
CAF_PDM_InitField( &m_centerLegendAroundZero, "CenterLegendAroundZero", false, "Center Legend Around Zero" );
updateFieldVisibility(); updateFieldVisibility();
updateLegend(); updateLegend();
} }
@ -456,6 +458,13 @@ void RimRegularLegendConfig::updateLegend()
negClosestToZero = m_globalAutoNegClosestToZero; negClosestToZero = m_globalAutoNegClosestToZero;
} }
if ( m_centerLegendAroundZero )
{
auto maxValue = std::max( std::abs( adjustedMax ), std::abs( adjustedMin ) );
adjustedMax = maxValue;
adjustedMin = -maxValue;
}
m_linDiscreteScalarMapper->setRange( adjustedMin, adjustedMax ); m_linDiscreteScalarMapper->setRange( adjustedMin, adjustedMax );
m_linSmoothScalarMapper->setRange( adjustedMin, adjustedMax ); m_linSmoothScalarMapper->setRange( adjustedMin, adjustedMax );
@ -613,6 +622,14 @@ void RimRegularLegendConfig::resetUserDefinedValues()
m_resetUserDefinedValues = true; m_resetUserDefinedValues = true;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimRegularLegendConfig::setCenterLegendAroundZero( bool enable )
{
m_centerLegendAroundZero = enable;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1226,6 +1243,8 @@ void RimRegularLegendConfig::defineUiOrdering( QString uiConfigName, caf::PdmUiO
mappingGr->add( &m_userDefinedMaxValue ); mappingGr->add( &m_userDefinedMaxValue );
mappingGr->add( &m_userDefinedMinValue ); mappingGr->add( &m_userDefinedMinValue );
mappingGr->add( &m_categoryColorMode ); mappingGr->add( &m_categoryColorMode );
mappingGr->add( &m_centerLegendAroundZero );
uiOrdering.add( &m_resetUserDefinedValuesButton ); uiOrdering.add( &m_resetUserDefinedValuesButton );
} }

View File

@ -127,6 +127,7 @@ public:
MappingType mappingMode() { return m_mappingMode(); } MappingType mappingMode() { return m_mappingMode(); }
void setTickNumberFormat( RiaNumberFormat::NumberFormatType numberFormat ); void setTickNumberFormat( RiaNumberFormat::NumberFormatType numberFormat );
void resetUserDefinedValues(); void resetUserDefinedValues();
void setCenterLegendAroundZero( bool enable );
void disableAllTimeStepsRange( bool doDisable ); void disableAllTimeStepsRange( bool doDisable );
@ -231,6 +232,7 @@ private:
caf::PdmField<caf::AppEnum<MappingType>> m_mappingMode; caf::PdmField<caf::AppEnum<MappingType>> m_mappingMode;
caf::PdmField<caf::AppEnum<CategoryColorModeType>> m_categoryColorMode; caf::PdmField<caf::AppEnum<CategoryColorModeType>> m_categoryColorMode;
caf::PdmField<bool> m_resetUserDefinedValuesButton; caf::PdmField<bool> m_resetUserDefinedValuesButton;
caf::PdmField<bool> m_centerLegendAroundZero;
caf::PdmPtrField<RimColorLegend*> m_colorLegend; caf::PdmPtrField<RimColorLegend*> m_colorLegend;
caf::PdmField<bool> m_selectColorLegendButton; caf::PdmField<bool> m_selectColorLegendButton;