c++ 用巨集代替常用的函式
阿新 • • 發佈:2020-12-13
原文: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 #defineDISTANCEPOLYDATA_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