#pragma once

namespace xtr::core {

class SelectableSet {
protected:
  ccl::SetOfEntities selection{};

public:
  void ResetSelection() noexcept;
  void Select(EntityUID uid);
  void SetSelection(const SetOfEntities& newSelection);

  [[nodiscard]] const ccl::SetOfEntities& Selection() const noexcept { return selection; }
  [[nodiscard]] BOOL IsSelected(EntityUID uid) const;
};

} // namespace xtr::core