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/nmVTKRotationCenterMarkerLa...

57 lines
2.1 KiB
C

#ifndef NMVTKROTATIONCENTERMARKERLAYER_H
#define NMVTKROTATIONCENTERMARKERLAYER_H
#include "nmVTKRenderLayer.h"
class nmVTKRotationCenterMarkerLayerPrivate;
class vtkRenderer;
/**
* @brief
*
* X/Y/Z 线
* vtkCamera::FocalPoint沿
*
* Qt GUI 线
*/
class NM_RENDER_EXPORT nmVTKRotationCenterMarkerLayer
: public nmVTKRenderLayer
{
public:
/** @brief 创建初始隐藏的旋转中心标记图层。 */
explicit nmVTKRotationCenterMarkerLayer(const QString& sLayerId);
/** @brief 先解除相机观察关系,再释放标记渲染管线。 */
virtual ~nmVTKRotationCenterMarkerLayer();
/**
* @brief Scene Renderer
* @return Renderer true
*/
bool bindRenderer(vtkRenderer* pRenderer);
/** @brief 幂等移除 Renderer/Camera 观察关系及其非所有权引用。 */
void unbindRenderer();
/**
* @brief
* @note PolyData Render
*/
bool synchronize();
/** @brief 保存独立世界坐标中心并更新已有几何,不主动渲染。 */
bool setWorldCenter(double dX, double dY, double dZ);
/** @brief 返回是否已经保存有效的独立世界坐标中心。 */
bool hasWorldCenter() const;
/** @brief 修改标记显隐;无有效中心时不会显示,也不主动渲染。 */
void setMarkerVisible(bool bVisible);
/** @brief 返回调用方最后设置的标记显隐状态。 */
bool isMarkerVisible() const;
private:
Q_DISABLE_COPY(nmVTKRotationCenterMarkerLayer)
nmVTKRotationCenterMarkerLayerPrivate* m_pPrivate; ///< 独占实现对象。
};
#endif // NMVTKROTATIONCENTERMARKERLAYER_H