mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3868 Annotations. Fix polyline visualization and property editor
This commit is contained in:
@@ -65,6 +65,7 @@ RimAnnotationLineAppearance::RimAnnotationLineAppearance()
|
||||
{
|
||||
CAF_PDM_InitObject("AnnotationLineAppearance", ":/WellCollection.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_lineFieldsHidden, "LineFieldsHidden", false, "Line Fields Hidden", "", "", "");
|
||||
CAF_PDM_InitField(&m_color, "Color", cvf::Color3f(cvf::Color3f::BLACK), "Line Color", "", "", "");
|
||||
CAF_PDM_InitField(&m_thickness, "Thickness", 2, "Line Thickness", "", "", "");
|
||||
|
||||
@@ -73,6 +74,15 @@ RimAnnotationLineAppearance::RimAnnotationLineAppearance()
|
||||
m_style.uiCapability()->setUiHidden(true);
|
||||
m_style.xmlCapability()->disableIO();
|
||||
|
||||
m_lineFieldsHidden.uiCapability()->setUiHidden(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimAnnotationLineAppearance::setLineFieldsHidden(bool hidden)
|
||||
{
|
||||
m_lineFieldsHidden = hidden;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -112,9 +122,12 @@ int RimAnnotationLineAppearance::thickness() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimAnnotationLineAppearance::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
uiOrdering.add(&m_color);
|
||||
uiOrdering.add(&m_style);
|
||||
uiOrdering.add(&m_thickness);
|
||||
if (!m_lineFieldsHidden())
|
||||
{
|
||||
uiOrdering.add(&m_color);
|
||||
uiOrdering.add(&m_style);
|
||||
uiOrdering.add(&m_thickness);
|
||||
}
|
||||
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
}
|
||||
@@ -157,8 +170,19 @@ RimPolylineAppearance::RimPolylineAppearance()
|
||||
{
|
||||
CAF_PDM_InitObject("PolylineAppearance", ":/WellCollection.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_sphereFieldsHidden, "SphereFieldsHidden", false, "Sphere Fields Hidden", "", "", "");
|
||||
CAF_PDM_InitField(&m_sphereColor, "SphereColor", cvf::Color3f(cvf::Color3f::BLACK), "Sphere Color", "", "", "");
|
||||
CAF_PDM_InitField(&m_sphereRadius, "SphereRadius", 15, "Sphere Radius", "", "", "");
|
||||
CAF_PDM_InitField(&m_sphereRadiusFactor, "SphereRadiusFactor", 0.1, "Sphere Radius Factor", "", "", "");
|
||||
|
||||
m_sphereFieldsHidden.uiCapability()->setUiHidden(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolylineAppearance::setSphereFieldsHidden(bool hidden)
|
||||
{
|
||||
m_sphereFieldsHidden = hidden;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -180,17 +204,17 @@ cvf::Color3f RimPolylineAppearance::sphereColor() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolylineAppearance::setSphereRadius(int radius)
|
||||
void RimPolylineAppearance::setSphereRadiusFactor(double factor)
|
||||
{
|
||||
m_sphereRadius = radius;
|
||||
m_sphereRadiusFactor = factor;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RimPolylineAppearance::sphereRadius() const
|
||||
double RimPolylineAppearance::sphereRadiusFactor() const
|
||||
{
|
||||
return m_sphereRadius();
|
||||
return m_sphereRadiusFactor();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -200,8 +224,11 @@ void RimPolylineAppearance::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
|
||||
{
|
||||
RimAnnotationLineAppearance::defineUiOrdering(uiConfigName, uiOrdering);
|
||||
|
||||
uiOrdering.add(&m_sphereColor);
|
||||
uiOrdering.add(&m_sphereRadius);
|
||||
if (!m_sphereFieldsHidden)
|
||||
{
|
||||
uiOrdering.add(&m_sphereColor);
|
||||
uiOrdering.add(&m_sphereRadiusFactor);
|
||||
}
|
||||
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ public:
|
||||
|
||||
public:
|
||||
RimAnnotationLineAppearance();
|
||||
|
||||
void setLineFieldsHidden(bool hidden);
|
||||
|
||||
void setColor(const cvf::Color3f& newColor);
|
||||
cvf::Color3f color() const;
|
||||
bool isDashed() const;
|
||||
@@ -57,6 +60,7 @@ protected:
|
||||
caf::PdmUiEditorAttribute* attribute) override;
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_lineFieldsHidden;
|
||||
caf::PdmField<cvf::Color3f> m_color;
|
||||
caf::PdmField<LineStyle> m_style;
|
||||
caf::PdmField<int> m_thickness;
|
||||
@@ -85,16 +89,19 @@ class RimPolylineAppearance : public RimAnnotationLineAppearance
|
||||
public:
|
||||
RimPolylineAppearance();
|
||||
|
||||
void setSphereFieldsHidden(bool hidden);
|
||||
|
||||
void setSphereColor(const cvf::Color3f& color);
|
||||
cvf::Color3f sphereColor() const;
|
||||
void setSphereRadius(int radius);
|
||||
int sphereRadius() const;
|
||||
void setSphereRadiusFactor(double factor);
|
||||
double sphereRadiusFactor() const;
|
||||
|
||||
protected:
|
||||
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_sphereFieldsHidden;
|
||||
caf::PdmField<cvf::Color3f> m_sphereColor;
|
||||
caf::PdmField<int> m_sphereRadius;
|
||||
caf::PdmField<double> m_sphereRadiusFactor;
|
||||
};
|
||||
|
||||
@@ -58,9 +58,9 @@ protected:
|
||||
protected:
|
||||
caf::PdmField<bool> m_isActive;
|
||||
|
||||
caf::PdmField<bool> m_closePolyline;
|
||||
caf::PdmField<bool> m_showLines;
|
||||
caf::PdmField<bool> m_showSpheres;
|
||||
caf::PdmField<bool> m_closePolyline;
|
||||
caf::PdmField<bool> m_showLines;
|
||||
caf::PdmField<bool> m_showSpheres;
|
||||
|
||||
caf::PdmChildField<RimPolylineAppearance*> m_appearance;
|
||||
};
|
||||
|
||||
@@ -177,10 +177,16 @@ void RimPolylinesFromFileAnnotation::setDescriptionFromFileName()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPolylinesFromFileAnnotation::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
uiOrdering.add(&m_polyLinesFileName);
|
||||
uiOrdering.add(&m_closePolyline);
|
||||
appearance()->setLineFieldsHidden(!m_showLines());
|
||||
appearance()->setSphereFieldsHidden(!m_showSpheres());
|
||||
|
||||
uiOrdering.add(&m_polyLinesFileName);
|
||||
|
||||
auto appearanceGroup = uiOrdering.addNewGroup("Appearance");
|
||||
appearanceGroup->add(&m_closePolyline);
|
||||
appearanceGroup->add(&m_showLines);
|
||||
appearanceGroup->add(&m_showSpheres);
|
||||
|
||||
auto appearanceGroup = uiOrdering.addNewGroup("Line Appearance");
|
||||
appearance()->uiOrdering(uiConfigName, *appearanceGroup);
|
||||
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
@@ -204,6 +210,14 @@ void RimPolylinesFromFileAnnotation::fieldChangedByUi(const caf::PdmFieldHandle*
|
||||
QMessageBox::warning(nullptr, "Import Polylines", totalError);
|
||||
}
|
||||
}
|
||||
else if (changedField == &m_showLines)
|
||||
{
|
||||
appearance()->setLineFieldsHidden(!m_showLines());
|
||||
}
|
||||
else if (changedField == &m_showSpheres)
|
||||
{
|
||||
appearance()->setSphereFieldsHidden(!m_showSpheres());
|
||||
}
|
||||
|
||||
RimAnnotationCollection* annColl = nullptr;
|
||||
this->firstAncestorOrThisOfTypeAsserted(annColl);
|
||||
|
||||
@@ -225,15 +225,18 @@ void RimUserDefinedPolylinesAnnotation::enablePicking(bool enable)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimUserDefinedPolylinesAnnotation::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
appearance()->setLineFieldsHidden(!m_showLines);
|
||||
appearance()->setSphereFieldsHidden(!m_showSpheres);
|
||||
|
||||
uiOrdering.add(&m_name);
|
||||
uiOrdering.add(&m_targets);
|
||||
uiOrdering.add(&m_enablePicking);
|
||||
uiOrdering.add(&m_closePolyline);
|
||||
|
||||
uiOrdering.add(&m_showLines);
|
||||
uiOrdering.add(&m_showSpheres);
|
||||
|
||||
auto appearanceGroup = uiOrdering.addNewGroup("Appearance");
|
||||
appearanceGroup->add(&m_closePolyline);
|
||||
appearanceGroup->add(&m_showLines);
|
||||
appearanceGroup->add(&m_showSpheres);
|
||||
|
||||
appearance()->uiOrdering(uiConfigName, *appearanceGroup);
|
||||
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
@@ -258,6 +261,14 @@ void RimUserDefinedPolylinesAnnotation::fieldChangedByUi(const caf::PdmFieldHand
|
||||
{
|
||||
enablePicking(m_enablePicking);
|
||||
}
|
||||
else if (changedField == &m_showLines)
|
||||
{
|
||||
appearance()->setLineFieldsHidden(!m_showLines());
|
||||
}
|
||||
else if (changedField == &m_showSpheres)
|
||||
{
|
||||
appearance()->setSphereFieldsHidden(!m_showSpheres());
|
||||
}
|
||||
|
||||
updateVisualization();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user