modelDataBaseExtend.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #ifndef _MODELSATABASEEXTEND_H_
  2. #define _MODELSATABASEEXTEND_H_
  3. #include "modelDataAPI.h"
  4. #include "modelDataBase.h"
  5. #include <QStringList>
  6. #include <QList>
  7. #include <QHash>
  8. class QDomDocument;
  9. class QDomElement;
  10. namespace DataProperty
  11. {
  12. class DataBase;
  13. class ParameterBase;
  14. class ParameterGroup;
  15. }
  16. namespace ConfigOption
  17. {
  18. class PostCurve;
  19. class ParameterObserver;
  20. }
  21. namespace Post
  22. {
  23. class Post2DWindowInterface;
  24. class Post3DWindowInterface;
  25. }
  26. namespace ModelData
  27. {
  28. class MODELDATAAPI ModelDataBaseExtend : public ModelDataBase
  29. {
  30. public:
  31. ModelDataBaseExtend(ProjectTreeType type);
  32. ~ModelDataBaseExtend();
  33. virtual void copyFormConfig() override;
  34. virtual void generateParaInfo() override;
  35. //添加报告
  36. void appendReport(QString report);
  37. //获取报告数量
  38. int getReportCount();
  39. //获取第index个报告
  40. QString getReportAt(int index);
  41. //移除第index个报告
  42. void removeReportAt(int index);
  43. //设置属性,网格组件ID与属性ID
  44. void setProperty(int setID, int pid);
  45. //获取组件的材料ID
  46. int getPropertyID(int setid);
  47. //组件是否被设置材料
  48. bool isPropertySetted(int setid);
  49. //解除属性与组件的绑定
  50. void removeProperty(int setid);
  51. virtual void setComponentIDList(QList<int> ids);
  52. virtual void removeComponentAt(int index) override;
  53. virtual QDomElement& writeToProjectFile(QDomDocument* doc, QDomElement* ele) override;
  54. virtual void writeToProjectFile1(QDomDocument* doc, QDomElement* ele) override;
  55. virtual void readDataFromProjectFile(QDomElement* e) override;
  56. virtual void writeToSolverXML(QDomDocument* doc, QDomElement* e) override;
  57. virtual void dataToStream(QDataStream* datas) override;
  58. void appendConfigData(int dataID, DataProperty::DataBase* d);
  59. DataProperty::DataBase* getConfigData(int dataid);
  60. //获取节点数量
  61. int getConfigDataCount();
  62. //获取监控文件的名称
  63. QStringList getMonitorFile();
  64. //获取监控文件的绝对路径
  65. QStringList getAbsoluteMonitorFile();
  66. //根据文件获取监控的变量列表
  67. QStringList getMonitorVariables(QString file);
  68. //获取监控曲线
  69. QList<ConfigOption::PostCurve*> getMonitorCurves();
  70. //获取第index的监控曲线
  71. ConfigOption::PostCurve* getMonitorCurveAt(const int index);
  72. //获取后处理二维曲线文件
  73. QStringList getPost2DFiles();
  74. //获取后处理二维曲线文件的绝对路径
  75. QStringList getAbsolutePost2DFiles();
  76. //根据文件获取二维曲线文件中的变量
  77. QStringList getPost2DVariables(QString f);
  78. //获取三维后处理文件
  79. QString getPost3DFile();
  80. //获取三维后处理标量
  81. void get3DScalars(QStringList &node, QStringList &ele);
  82. //获取三维后处理向量
  83. void get3DVector(QStringList &node, QStringList &ele);
  84. //添加二维后处理曲线
  85. void apppendPlotCurve(ConfigOption::PostCurve* c);
  86. //获取已绘制曲线
  87. QList<ConfigOption::PostCurve*> getPlotCurves();
  88. //移除二维曲线
  89. void removePlotCurve(int index);
  90. //清除全部二维曲线
  91. void clearPlotCurve();
  92. //后处理曲线是否存在
  93. bool isPostCurveExist(QString name);
  94. //添加标量变量名称
  95. void appendScalarVariable(QString v);
  96. //获取标量变量名称
  97. QStringList getScalarVariable();
  98. //移除第index个标量
  99. void removeScalarVariable(int index);
  100. //添加向量变量名称
  101. void appendVectorVariable(QString v);
  102. //获取向量变量名称
  103. QStringList getVectorVariable();
  104. //移除第index个向量名称
  105. void removeVectorVariable(int index);
  106. //情况三维变量
  107. void clear3DVariable();
  108. DataProperty::ParameterBase* getParameterByName(QString name) override;
  109. DataProperty::ParameterGroup* getParameterGroupByName(QString name) override;
  110. virtual void removeParameter(DataProperty::ParameterBase* p) override;
  111. virtual void removeParameterGroup(DataProperty::ParameterGroup* g) override;
  112. //设置二维绘图窗口
  113. void setPost2DWindow(Post::Post2DWindowInterface* p2d);
  114. //获取二维窗口
  115. Post::Post2DWindowInterface* getPost2DWindow();
  116. //设置三维渲染窗口
  117. void setPost3DWindow(Post::Post3DWindowInterface* p3d);
  118. //获取三维渲染窗口
  119. Post::Post3DWindowInterface* getPost3DWindow();
  120. void bindInpMaterialIds(const QList<int>&);
  121. const QList<int>& getInpMaterialIds();
  122. protected:
  123. void registerObserver();
  124. protected:
  125. QList<int> _inpMaterIds;
  126. QHash<int, int> _setProperty{};
  127. QStringList _reportList{};
  128. QHash<int, DataProperty::DataBase*> _configData{};
  129. QStringList _monitorFiles{};
  130. QList<ConfigOption::PostCurve*> _monitorCurves{};
  131. QList<ConfigOption::PostCurve*> _postCurves{};
  132. // QStringList _plot2DVariable{};
  133. QStringList _scalarVariable{};
  134. QStringList _vectorVariable{};
  135. QList<ConfigOption::ParameterObserver*> _observerList{};
  136. Post::Post2DWindowInterface* _post2DWindow{};
  137. Post::Post3DWindowInterface* _post3DWindow{};
  138. };
  139. }
  140. #endif