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/nmRender/nmVTKPlanarScaleGridLayer.h

42 lines
1.4 KiB
C++

#ifndef NMVTKPLANARSCALEGRIDLAYER_H
#define NMVTKPLANARSCALEGRIDLAYER_H
#include "nmVTKRenderLayer.h"
class nmVTKPlanarScaleGridLayerPrivate;
/**
* @brief 在世界坐标 XY 平面中显示比例网格、坐标轴和数值标签。
*
* 图层只复制 X/Y 边界和所在平面的 Z 值,不引用业务网格。浅色底板、
* 背景比例线、坐标轴及刻度均使用世界坐标几何;数值标签由世界坐标
* 刻度点逐帧投影为屏幕 Overlay。绘制前根据相机所在平面侧别调整深度
* 顺序,但不管理相机,也不注册 Interactor 或 Camera Observer。
*/
class NM_RENDER_EXPORT nmVTKPlanarScaleGridLayer : public nmVTKRenderLayer
{
public:
explicit nmVTKPlanarScaleGridLayer(const QString& sLayerId);
virtual ~nmVTKPlanarScaleGridLayer();
/**
* @brief 设置真实 X/Y 边界和网格所在平面的 Z 值,不主动渲染。
* @return 参数均有限且 X/Y 范围严格递增时返回 true。
*/
bool setBounds(double dXMinimum,
double dXMaximum,
double dYMinimum,
double dYMaximum,
double dPlaneZ);
/** @brief 返回未经显示偏移处理的真实 X/Y 边界。 */
bool getBounds(double dBounds[4]) const;
private:
Q_DISABLE_COPY(nmVTKPlanarScaleGridLayer)
nmVTKPlanarScaleGridLayerPrivate* m_pPrivate;
};
#endif // NMVTKPLANARSCALEGRIDLAYER_H