This commit is contained in:
codeboss 2025-06-29 20:30:32 +08:00
parent c250d01042
commit f0abd3bc92
2 changed files with 33 additions and 31 deletions

View File

@ -127,18 +127,18 @@ void LogicalNode::setParent(std::weak_ptr<LogicalNode> pnode)
this->_parent_bind = pnode; this->_parent_bind = pnode;
} }
NodeKind LogicalNode::kind() const NodeKind LogicalNode::nodeKind() const
{ {
return _node_type; return _node_type;
} }
std::shared_ptr<LogicalNode> LogicalNode::bindParentMap() const std::shared_ptr<LogicalNode> LogicalNode::bindMap() const
{ {
auto node_temp = this->getBackwards().lock(); auto node_temp = this->parent().lock();
if (!node_temp) return nullptr; if (!node_temp) return nullptr;
while (node_temp->kind() != NodeKind::MAPNODE) { while (node_temp->nodeKind() != NodeKind::MAPNODE) {
node_temp = node_temp->getBackwards().lock(); node_temp = node_temp->parent().lock();
} }
return node_temp; return node_temp;
} }
@ -158,7 +158,7 @@ QString LogicalNode::runtimeName() const
return QString("%1(%2)").arg(this->typeName()).arg(getID()); return QString("%1(%2)").arg(this->typeName()).arg(getID());
} }
std::weak_ptr<LogicalNode> LogicalNode::getBackwards() const std::weak_ptr<LogicalNode> LogicalNode::parent() const
{ {
return this->_parent_bind; return this->_parent_bind;
} }

View File

@ -10,6 +10,20 @@ class CompareKernel;
class ConvertKernel; class ConvertKernel;
class LogicalNode; class LogicalNode;
/// <summary>
/// 通用数据类型
/// </summary>
struct COMPONENTBASIC_EXPORT GeneralData : public TopicData {
QJsonObject _element_bind;
QString topicString() const override;
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
// ==================================================================================
/// <summary> /// <summary>
/// 行为树实例化节点 /// 行为树实例化节点
/// </summary> /// </summary>
@ -114,7 +128,6 @@ public:
void saveTo(QJsonObject& obj) const override{} void saveTo(QJsonObject& obj) const override{}
}; };
/// <summary> /// <summary>
/// 比较关系实例 /// 比较关系实例
/// </summary> /// </summary>
@ -129,6 +142,7 @@ public:
QString name() const; QString name() const;
bool compare(std::shared_ptr<TopicData> vleft, std::shared_ptr<TopicData> vright); bool compare(std::shared_ptr<TopicData> vleft, std::shared_ptr<TopicData> vright);
}; };
/// <summary> /// <summary>
/// 数据转换实例 /// 数据转换实例
/// </summary> /// </summary>
@ -187,6 +201,9 @@ private:
std::pair<DATA_TOPIC_STRING, QString> _output_appoint; std::pair<DATA_TOPIC_STRING, QString> _output_appoint;
}; };
/// <summary> /// <summary>
/// 执行结果 /// 执行结果
/// </summary> /// </summary>
@ -195,7 +212,6 @@ enum class LogicalResult {
SUCCESS, // 成功 SUCCESS, // 成功
FAILURE // 失败 FAILURE // 失败
}; };
/// <summary> /// <summary>
/// 逻辑节点类型 /// 逻辑节点类型
/// </summary> /// </summary>
@ -207,20 +223,6 @@ enum class NodeKind {
COMPARENODE, // 比较节点 COMPARENODE, // 比较节点
ACTIONNODE, // 动作节点 ACTIONNODE, // 动作节点
}; };
/// <summary>
/// 通用数据类型
/// </summary>
struct COMPONENTBASIC_EXPORT GeneralData : public TopicData {
QJsonObject _element_bind;
QString topicString() const override;
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary> /// <summary>
/// 所有逻辑节点的基类 /// 所有逻辑节点的基类
/// </summary> /// </summary>
@ -235,22 +237,27 @@ public:
LogicalNode(NodeKind t = NodeKind::ACTIONNODE); LogicalNode(NodeKind t = NodeKind::ACTIONNODE);
virtual ~LogicalNode() = default; virtual ~LogicalNode() = default;
/// <summary>
/// 获取节点类型
/// </summary>
/// <returns></returns>
NodeKind nodeKind() const;
/// <summary> /// <summary>
/// 重置父节点 /// 重置父节点
/// </summary> /// </summary>
/// <param name="pnode"></param> /// <param name="pnode"></param>
void setParent(std::weak_ptr<LogicalNode> pnode); void setParent(std::weak_ptr<LogicalNode> pnode);
/// <summary> /// <summary>
/// 获取节点类型 /// 回退节点
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
NodeKind kind() const; std::weak_ptr<LogicalNode> parent() const;
/// <summary> /// <summary>
/// 获取包含树图节点 /// 获取包含树图节点
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
std::shared_ptr<LogicalNode> bindParentMap() const; std::shared_ptr<LogicalNode> bindMap() const;
/// <summary> /// <summary>
/// 设置节点id /// 设置节点id
@ -267,11 +274,6 @@ public:
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
QString runtimeName() const; QString runtimeName() const;
/// <summary>
/// 回退节点
/// </summary>
/// <returns></returns>
std::weak_ptr<LogicalNode> getBackwards() const;
/// <summary> /// <summary>
/// 重置内部状态 /// 重置内部状态