|
|
|
|
#ifndef _FITKCFDPostMacros_H_
|
|
|
|
|
#define _FITKCFDPostMacros_H_
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明属性(...为初始化值)并添加set get函数
|
|
|
|
|
*/
|
|
|
|
|
#define AddProperty(AType, AVariable, ...) private: AType _##AVariable{##__VA_ARGS__}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual void set##AVariable(AType V) {_##AVariable = V;} \
|
|
|
|
|
virtual AType get##AVariable() const {return _##AVariable;}
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明属性(...为初始化值)并添加set函数
|
|
|
|
|
*/
|
|
|
|
|
#define AddPropertyWriteOnly(AType, AVariable, ...) private: AType _##AVariable{##__VA_ARGS__}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual void set##AVariable(AType V) {_##AVariable = V;}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明属性(...为初始化值)并添加get函数
|
|
|
|
|
*/
|
|
|
|
|
#define AddPropertyReadOnly(AType, AVariable, ...) private: AType _##AVariable{##__VA_ARGS__}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual AType get##AVariable() const {return _##AVariable;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明属性(...为初始化值)并添加set get函数, get函数未实现
|
|
|
|
|
*/
|
|
|
|
|
#define AddPropertyGetOverride(AType, AVariable, ...) private: AType _##AVariable{##__VA_ARGS__}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual void set##AVariable(AType V) {_##AVariable = V;}\
|
|
|
|
|
virtual AType get##AVariable();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明属性(...为初始化值)并添加set get函数, set函数未实现
|
|
|
|
|
*/
|
|
|
|
|
#define AddPropertySetOverride(AType, AVariable, ...) private: AType _##AVariable{##__VA_ARGS__}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual void set##AVariable(AType V);\
|
|
|
|
|
virtual AType get##AVariable() {return _##AVariable;}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明属性(...为初始化值)并添加set get函数, get set函数均未实现
|
|
|
|
|
*/
|
|
|
|
|
#define AddComplexProperty(AType, AVariable, ...) private: AType _##AVariable{##__VA_ARGS__}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual void set##AVariable(AType V) ; \
|
|
|
|
|
virtual AType get##AVariable();
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明指针链表属性(...为访问权限,默认私有)
|
|
|
|
|
*/
|
|
|
|
|
#define AddPtrListProperty(AType, AVariable, ...) private: ##__VA_ARGS__ QList<AType*> _##AVariable{}; \
|
|
|
|
|
public: \
|
|
|
|
|
int get##AVariable##Count(){return _##AVariable.size();} \
|
|
|
|
|
void append##AVariable(AType* v){_##AVariable.append(v);} \
|
|
|
|
|
AType* get##AVariable##At(int index) \
|
|
|
|
|
{if(index<0 || index >= _##AVariable.size()) return nullptr;\
|
|
|
|
|
return _##AVariable.at(index); }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明对象链表属性(...为访问权限,默认私有)
|
|
|
|
|
*/
|
|
|
|
|
#define AddListProperty(AType, AVariable, ...) private: ##__VA_ARGS__ QList<AType> _##AVariable{}; \
|
|
|
|
|
public: \
|
|
|
|
|
virtual int get##AVariable##Count(){return _##AVariable.size();} \
|
|
|
|
|
virtual void append##AVariable(AType v){if(!_##AVariable.contains(v)) _##AVariable.append(v);} \
|
|
|
|
|
virtual AType get##AVariable##At(int index) \
|
|
|
|
|
{if(index<0 || index >= _##AVariable.size()) return AType();\
|
|
|
|
|
return _##AVariable.at(index); }\
|
|
|
|
|
virtual void clear##AVariable(){_##AVariable.clear();}
|
|
|
|
|
/**
|
|
|
|
|
* @brief 删除对象
|
|
|
|
|
*/
|
|
|
|
|
#define DeleteItem(item) if(item!=nullptr){delete item; item = nullptr;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 自动分配ID宏定义
|
|
|
|
|
*/
|
|
|
|
|
#define AutoDistributeID public: int getID() {return _id;} \
|
|
|
|
|
static int getMaxID() {return MaxID;} \
|
|
|
|
|
protected: int _id{ 0 }; \
|
|
|
|
|
void setID(int id) {_id = id;} \
|
|
|
|
|
private: static int MaxID;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明VTK智能指针, Type Vtk类型 Variable 变量名
|
|
|
|
|
*/
|
|
|
|
|
#define DeclarVTKSmartPtr(Type,Variable) vtkSmartPointer<Type> Variable{nullptr};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 创建VTK智能指针, Variable必须是已经声明的变量 Type Vtk类型 Variable 变量名
|
|
|
|
|
*/
|
|
|
|
|
#define CreateVTKSmartPtr(Type,Variable) Variable = vtkSmartPointer<Type>::New();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明并创建VTK智能指针, Type Vtk类型 Variable 变量名
|
|
|
|
|
*/
|
|
|
|
|
#define DecCreVTKSmartPtr(Type,Variable) vtkSmartPointer<Type> Variable = vtkSmartPointer<Type>::New();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 声明并创建VTK指针, Type Vtk类型 Variable 变量名
|
|
|
|
|
*/
|
|
|
|
|
#define DecCreVTKPtr(Type,Variable) Type* Variable = Type::New();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*QString 转char*
|
|
|
|
|
*/
|
|
|
|
|
#define QString2Char(QSTRING, CCHAR) QByteArray ba = QSTRING.toLatin1(); \
|
|
|
|
|
char* CCHAR = ba.data();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*char* 转 QString
|
|
|
|
|
*/
|
|
|
|
|
#define Char2QString(CCHAR, QSTRING) QString QSTRING = QString::fromLocal8Bit(CCHAR);
|
|
|
|
|
|
|
|
|
|
#endif
|