#ifndef NMVOLUMESLICESETTINGS_H #define NMVOLUMESLICESETTINGS_H #include "nmSubWxs_global.h" #include #include class nmVolumeData; /** @brief 单平面切片的值类型参数;不持有 VTK 对象,可安全复制为界面草稿。 */ struct NM_SUB_WXS_EXPORT nmVolumeSliceSettings { /** @brief 初始化 Z 向平面,默认显示辅助平面、不显示原模型。 */ nmVolumeSliceSettings(); /** @brief 从完整模型边界初始化中心平面,并选取模型的默认着色属性。 */ static nmVolumeSliceSettings fromData(const nmVolumeData& oData); /** @brief 校验有限原点及非零法向;成功才原位归一化,失败不改变参数。 */ bool normalize(QString* pError = nullptr); double m_dOrigin[3]; ///< 平面经过的位置,使用数据的原始坐标,不推断单位。 double m_dNormal[3]; ///< 草稿允许任意非零向量,提交后的向量始终为单位向量。 QString m_sPropertyId; ///< 关联类型及数组名组成的属性身份;无属性模型为空。 bool m_bShowPlane; ///< 参数窗口打开时是否显示辅助平面及拖动手柄。 bool m_bShowSource; ///< 切片模式下是否显示灰色半透明的原模型。 }; Q_DECLARE_METATYPE(nmVolumeSliceSettings) #endif // NMVOLUMESLICESETTINGS_H