#pragma once

#include "CircuitElementNode.h"

#include "Terminal.h"

class CircleNode;

class TerminalNode : public CircuitElementNode
{
public:
	TerminalNode(const Transform& transform);

	Point getConnectionLocation(Wire* wire) const override;

	void setContent(Terminal* terminal);

	void update(SceneInfo* sceneInfo) override;

private:
	void createOrUpdateGeometry(SceneInfo* sceneInfo);
	std::unique_ptr<CircleNode> mMarker;

	Terminal* mContent{ nullptr };
	bool mContentDirty{ true };
};