CMind.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef CMIND_H
  2. #define CMIND_H
  3. #include "CNode.h"
  4. #include <QObject>
  5. class CMind : public QObject
  6. {
  7. Q_OBJECT
  8. public:
  9. explicit CMind(int projId = -1, int evalType = 0, QObject *parent = nullptr);
  10. // 节点数据
  11. QList<CNodeData> nodeList() const;
  12. void setNodeList(QList<CNodeData> list);
  13. bool isNodeValid(CNodeData n) const;
  14. CNodeData node(int number) const;
  15. bool containsNode(int number) const;
  16. /// 指定父节点, 创建节点
  17. CNodeData createNode(int pNumber = -1) const;
  18. void addNode(CNodeData n);
  19. void removeNode(int number);
  20. bool hasAncestor(int childNumber, int ancestorNumber) const;
  21. private:
  22. QList<int> numberList() const; // 节点编号列表
  23. // 最大的节点编号, 创建节点时, 编号递增
  24. int maxNumber() const;
  25. // 最小的节点编号, 由于创建节点时编号递增, 所以此为根节点
  26. int minNumber() const;
  27. private:
  28. QList<CNodeData> m_nodeList; // 节点列表
  29. int m_projectId = -1;
  30. int m_evalType = 0;
  31. };
  32. #endif // CMIND_H