#ifndef NMPEBIRESULTDISPLAYSETTINGS_H #define NMPEBIRESULTDISPLAYSETTINGS_H #include "nmSubWxs_global.h" #include #include /** @brief PEBI 结果颜色比例模式。 */ enum NM_PEBI_COLOR_SCALE_MODE { NM_PebiColorScale_Linear = 0, ///< 线性颜色映射。 NM_PebiColorScale_Logarithmic ///< 以 10 为底的对数颜色映射。 }; /** * @brief 一项结果属性的窗口级显示偏好纯值类型。 * * 本类型不持有 VTK 或界面对象。业务范围和 Log 可用性依赖当前快照,统一由 * SceneController 校验;这里仅校验枚举、有限数和颜色对象的结构合法性。 */ struct NM_SUB_WXS_EXPORT nmPebiResultDisplaySettings { /** @brief 初始化为 Rainbow、Linear、自动范围和关闭越界专用颜色。 */ nmPebiResultDisplaySettings(); /** @brief 返回枚举、数值和颜色是否具备可提交的基本结构。 */ bool isStructurallyValid() const; /** * @brief 返回规范化副本。 * @note 自动范围固定把手工值归零;越界颜色固定转换为不透明颜色。 */ nmPebiResultDisplaySettings normalized() const; bool operator==(const nmPebiResultDisplaySettings& oOther) const; bool operator!=(const nmPebiResultDisplaySettings& oOther) const; QString m_sColorMapId; ///< 通用色带目录中的稳定英文 ID。 NM_PEBI_COLOR_SCALE_MODE m_eScaleMode; ///< 线性或 Log10 映射。 bool m_bHasManualRange; ///< 为 true 时使用下方两个手工上下限。 double m_dManualMinimum; ///< 手工显示最小值;自动范围时规范为 0。 double m_dManualMaximum; ///< 手工显示最大值;自动范围时规范为 0。 bool m_bUseBelowRangeColor; ///< 是否显示低于范围值的专用颜色。 bool m_bUseAboveRangeColor; ///< 是否显示高于范围值的专用颜色。 QColor m_oBelowRangeColor; ///< 低于范围颜色,提交时强制 Alpha=255。 QColor m_oAboveRangeColor; ///< 高于范围颜色,提交时强制 Alpha=255。 }; #endif // NMPEBIRESULTDISPLAYSETTINGS_H