You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/nmNum/nmSubWxs/nmPebiResultDisplaySettings.h

52 lines
2.0 KiB
C

#ifndef NMPEBIRESULTDISPLAYSETTINGS_H
#define NMPEBIRESULTDISPLAYSETTINGS_H
#include "nmSubWxs_global.h"
#include <QColor>
#include <QString>
/** @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