mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4207 Allow changing color of plot symbol edges and update cross plots
* Cross plots have same color as the symbol itself.
This commit is contained in:
@@ -466,6 +466,7 @@ void RimGridCrossPlotCurveSet::createCurves(const RigEclipseCrossPlotResult& res
|
||||
int colorIndex = indexInPlot();
|
||||
curve->setColor(colors.cycledColor3f(colorIndex));
|
||||
}
|
||||
curve->setSymbolEdgeColor(curve->color());
|
||||
curve->setGroupingInformation(indexInPlot(), 0);
|
||||
curve->setSamples(result.xValues, result.yValues);
|
||||
curve->updateCurveAppearance();
|
||||
@@ -522,6 +523,7 @@ void RimGridCrossPlotCurveSet::createCurves(const RigEclipseCrossPlotResult& res
|
||||
{
|
||||
curve->setColor(cvf::Color3f(legendConfig()->scalarMapper()->mapToColor(tickValues[it->first])));
|
||||
}
|
||||
curve->setSymbolEdgeColor(curve->color());
|
||||
curve->setSamples(it->second.xValues, it->second.yValues);
|
||||
curve->showLegend(m_crossPlotCurves.empty());
|
||||
curve->setLegendEntryText(createAutoName());
|
||||
|
||||
@@ -109,6 +109,7 @@ RimPlotCurve::RimPlotCurve()
|
||||
CAF_PDM_InitFieldNoDefault(&m_curveInterpolation, "CurveInterpolation", "Interpolation", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_lineStyle, "LineStyle", "Line Style", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_pointSymbol, "PointSymbol", "Symbol", "", "", "");
|
||||
CAF_PDM_InitField(&m_symbolEdgeColor, "SymbolEdgeColor", cvf::Color3f(cvf::Color3::BLACK), "Symbol Edge Color", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_symbolSkipPixelDistance, "SymbolSkipPxDist", 0.0f, "Symbol Skip Distance", "", "Minimum pixel distance between symbols", "");
|
||||
|
||||
@@ -162,7 +163,8 @@ void RimPlotCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, con
|
||||
|| &m_lineStyle == changedField
|
||||
|| &m_symbolSkipPixelDistance == changedField
|
||||
|| &m_curveInterpolation == changedField
|
||||
|| &m_symbolSize == changedField)
|
||||
|| &m_symbolSize == changedField
|
||||
|| &m_symbolEdgeColor == changedField)
|
||||
{
|
||||
updateCurveAppearance();
|
||||
|
||||
@@ -467,6 +469,7 @@ void RimPlotCurve::appearanceUiOrdering(caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
uiOrdering.add(&m_curveColor);
|
||||
uiOrdering.add(&m_pointSymbol);
|
||||
uiOrdering.add(&m_symbolEdgeColor);
|
||||
uiOrdering.add(&m_symbolSize);
|
||||
uiOrdering.add(&m_symbolSkipPixelDistance);
|
||||
uiOrdering.add(&m_lineStyle);
|
||||
@@ -538,7 +541,6 @@ void RimPlotCurve::updateCurveAppearance()
|
||||
CVF_ASSERT(m_qwtPlotCurve);
|
||||
|
||||
QColor curveColor(m_curveColor.value().rByte(), m_curveColor.value().gByte(), m_curveColor.value().bByte());
|
||||
|
||||
QwtSymbol* symbol = nullptr;
|
||||
|
||||
if (m_pointSymbol() != RiuQwtSymbol::SYMBOL_NONE)
|
||||
@@ -547,6 +549,10 @@ void RimPlotCurve::updateCurveAppearance()
|
||||
symbol = new RiuQwtSymbol(m_pointSymbol(), m_symbolLabel, m_symbolLabelPosition);
|
||||
symbol->setSize(m_symbolSize, m_symbolSize);
|
||||
symbol->setColor(curveColor);
|
||||
|
||||
QColor symbolEdgeColor(m_symbolEdgeColor.value().rByte(), m_symbolEdgeColor.value().gByte(), m_symbolEdgeColor.value().bByte());
|
||||
|
||||
symbol->setPen(symbolEdgeColor);
|
||||
}
|
||||
|
||||
m_qwtPlotCurve->setAppearance(m_lineStyle(), m_curveInterpolation(), m_curveThickness(), curveColor);
|
||||
@@ -675,6 +681,22 @@ RiuQwtSymbol::PointSymbolEnum RimPlotCurve::symbol()
|
||||
return m_pointSymbol();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::Color3f RimPlotCurve::symbolEdgeColor() const
|
||||
{
|
||||
return m_symbolEdgeColor;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPlotCurve::setSymbolEdgeColor(const cvf::Color3f& edgeColor)
|
||||
{
|
||||
m_symbolEdgeColor = edgeColor;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -713,6 +735,7 @@ void RimPlotCurve::setLineThickness(int thickness)
|
||||
void RimPlotCurve::resetAppearance()
|
||||
{
|
||||
setColor(cvf::Color3f(cvf::Color3::BLACK));
|
||||
setSymbolEdgeColor(cvf::Color3f(cvf::Color3::BLACK));
|
||||
setLineThickness(2);
|
||||
setLineStyle(RiuQwtPlotCurve::STYLE_SOLID);
|
||||
setSymbol(RiuQwtSymbol::SYMBOL_NONE);
|
||||
|
||||
@@ -62,6 +62,8 @@ public:
|
||||
void setLineStyle(RiuQwtPlotCurve::LineStyleEnum lineStyle);
|
||||
void setSymbol(RiuQwtSymbol::PointSymbolEnum symbolStyle);
|
||||
RiuQwtSymbol::PointSymbolEnum symbol();
|
||||
cvf::Color3f symbolEdgeColor() const;
|
||||
void setSymbolEdgeColor(const cvf::Color3f& edgeColor);
|
||||
void setSymbolSkipDistance(float distance);
|
||||
void setSymbolLabel(const QString& label);
|
||||
void setSymbolSize(int sizeInPixels);
|
||||
@@ -140,6 +142,7 @@ protected:
|
||||
caf::PdmField<LineStyle> m_lineStyle;
|
||||
caf::PdmField<CurveInterpolation> m_curveInterpolation;
|
||||
RiuQwtSymbol::LabelPosition m_symbolLabelPosition;
|
||||
caf::PdmField<cvf::Color3f> m_symbolEdgeColor;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user