#pragma once
#include <memory>
#include <string_view>
#include <networktables/DoubleTopic.h>
#include "MechanismObject2d.h"
namespace frc {
class MechanismRoot2d : private MechanismObject2d {
friend class Mechanism2d;
struct private_init {};
public:
MechanismRoot2d(std::string_view name, double x, double y,
const private_init&);
void SetPosition(double x, double y);
using MechanismObject2d::GetName;
using MechanismObject2d::Append;
private:
void UpdateEntries(std::shared_ptr<nt::NetworkTable> table) override;
inline void Flush();
double m_x;
double m_y;
nt::DoublePublisher m_xPub;
nt::DoublePublisher m_yPub;
};
}