19 std::shared_ptr<const data::BitmapRuntimeAsset>
asset;
30 [[
nodiscard]] std::expected<SequenceWorld2DSyncStats, std::string>
sync(
31 const std::vector<sequence::SequenceBitmapRenderItem>& items,
35 { modernSkin_ = std::move(
skin); }
37 { modernMenuSkin_ = std::move(
skin); }
41 void updateCamera(
const std::optional<sequence::SequenceCamera2DView>& camera)
noexcept;
43 {
return worldToScreen_; }
45 {
return screenToWorld_; }
54 {
const auto it = objects_.find(
id);
return it == objects_.end() ?
nullptr : &
it->second; }
58 std::array<std::int32_t, 2> cameraCenter_{400, 300};
59 float cameraRotation_{};
60 float cameraScale_{1.0F};
63 std::shared_ptr<ibar::ModernIBarSkin> modernSkin_;
64 std::shared_ptr<menu::ModernMenuSkin> modernMenuSkin_;
65 std::map<sequence::SequenceNodeId, SequenceWorld2DObject> objects_;
66 std::vector<sequence::SequenceNodeId> order_;
static std::array< std::int32_t, 2 > boundsCenter(const sequence::Matrix2D &matrix, const data::Sequence2DBoundingBoxAttribute &bounds) noexcept
std::size_t size() const noexcept
void updateCamera(const std::optional< sequence::SequenceCamera2DView > &camera) noexcept
static constexpr RenderSlot slot() noexcept
void configureModernMenuSkin(std::shared_ptr< menu::ModernMenuSkin > skin) noexcept
static constexpr std::uint8_t cameraLabel() noexcept
const sequence::Matrix2D & screenToWorld() const noexcept
const sequence::Matrix2D & worldToScreen() const noexcept
const SequenceWorld2DObject * find(sequence::SequenceNodeId id) const noexcept
static std::array< std::int32_t, 2 > transformPoint(const sequence::Matrix2D &matrix, std::int32_t x, std::int32_t y) noexcept
std::expected< SequenceWorld2DSyncStats, std::string > sync(const std::vector< sequence::SequenceBitmapRenderItem > &items, data::BitmapRuntimeCache &cache)
const std::vector< sequence::SequenceNodeId > & order() const noexcept
void configureModernIBarSkin(std::shared_ptr< ibar::ModernIBarSkin > skin) noexcept
Matrix2D identity2D() noexcept
std::uint64_t SequenceNodeId
std::shared_ptr< const data::BitmapRuntimeAsset > asset
sequence::SequenceNodeId node
data::DataId contentsDataId
sequence::Matrix2D worldTransform