c++ 用宏代替常用的函数

原文:https://beondxin.blog.csdn.net/article/details/106742997

#define QUICK_GETSET(name,type) \
    virtual void Set_##name (const type &_arg) \
    { \
        this->name = _arg; \
    } \
    virtual type Get_##name () const{ \
        return this->name; \
    }

 

#ifndef DISTANCEPOLYDATA_H
#define DISTANCEPOLYDATA_H


#include <ArteryflowScript>

class vtkActor;
class QVtkRenderer;
class vtkScalarBarActor;

class DistancePolyData : public Script {
    Q_OBJECT
  public:
    explicit DistancePolyData(QObject *parent = nullptr);
    virtual ~DistancePolyData() override;
    virtual void Execute() override;
    virtual bool BuildView()override;
  private:
    virtual void Initial() override;
  public:
    void ViewOff();
    QUICK_GETSET_Object(vmtk_renderer_, QVtkRenderer)
    QUICK_GETSET_Object(surface_small_, vtkPolyData)
    QUICK_GETSET_Object(surface_big_, vtkPolyData)
    QUICK_GETSET_Object(surface_, vtkPolyData)
    QUICK_GETSET(target_reduction_, double)
    void SetScalarRange(double value[2]);
    void GetScalarRange(double &value1, double &value2);
  private:
    double target_reduction_;// 压缩系数
    double scalar_range_[2];// 标量范围
    vtkSmartPointer<vtkPolyData> surface_small_;// 小模型
    vtkSmartPointer<vtkPolyData> surface_big_;// 大模型
    vtkSmartPointer<vtkPolyData> surface_;// 结果模型
    QPointer<QVtkRenderer> vmtk_renderer_;
    vtkSmartPointer<vtkActor> actor_;
    vtkSmartPointer<vtkScalarBarActor> scalar_bar_actor_;
};

#endif // DISTANCEPOLYDATA_H

 

posted on 2020-12-13 14:48  liujx2019  阅读(261)  评论(0编辑  收藏  举报

导航