9#include "../../system/system_utils.h"
31 const std::vector<NodeGraph::NodeId>& nodeIds,
36 if (nodeIds.empty() ||
doc ==
nullptr) {
42 for (
size_t i = 0;
i < nodeIds.size(); ++
i) {
53 if (nodeData !=
nullptr) {
69 if (nodeData ==
nullptr) {
81 cn.originalId =
it->first;
87 const std::vector<NodeGraph::LinkData>&
allLinks =
doc->GetLinks();
109 <<
m_links.size() <<
" links" << std::endl;
117 const std::vector<NodeGraph::NodeId>& nodeIds,
120 if (
doc ==
nullptr) {
128 for (
size_t i = 0;
i < nodeIds.size(); ++
i) {
129 doc->DeleteNode(nodeIds[
i]);
132 SYSTEM_LOG <<
"[Clipboard] Cut " << nodeIds.size() <<
" nodes" << std::endl;
150 std::map<uint32_t, NodeGraph::NodeId>
idMap;
162 if (nodeData !=
nullptr) {
188 doc->ConnectPins(fromPin, toPin);
Clipboard system for AI Editor (Cut/Copy/Paste)
ComponentTypeID GetComponentTypeID_Static()
Singleton clipboard manager for AI Editor.
void Cut(const std::vector< NodeGraph::NodeId > &nodeIds, NodeGraph::GraphDocument *doc)
Cut selected nodes (copy + delete)
void Clear()
Clear clipboard.
static AIEditorClipboard & Get()
Get singleton instance.
void Copy(const std::vector< NodeGraph::NodeId > &nodeIds, NodeGraph::GraphDocument *doc)
Copy selected nodes to clipboard.
std::vector< NodeGraph::NodeId > Paste(NodeGraph::GraphDocument *doc, Vector pasteOffset)
Paste clipboard nodes into active graph.
bool IsEmpty() const
Check if clipboard has data.
std::vector< ClipboardNode > m_nodes
Copied nodes.
std::vector< ClipboardLink > m_links
Copied links.
Main document class for a node graph.
constexpr uint32_t PIN_ID_INPUT_OFFSET
Offset for input pin: nodeId * 1000 + 0.
constexpr uint32_t PIN_ID_OUTPUT_OFFSET
Offset for output pin: nodeId * 1000 + 1.
constexpr uint32_t PIN_ID_MULTIPLIER
Multiplier for pin IDs from node IDs.
< Provides AssetID and INVALID_ASSET_ID
@ Vector
3-component vector (Vector from vector.h)
Represents a connection between nodes in the clipboard.
uint32_t parentOriginalId
Parent node's original ID.
Represents a node in the clipboard.
std::string type
Node type (e.g., "BT_Selector")
std::map< std::string, std::string > parameters