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.
42 lines
1.4 KiB
C++
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
|