33 std::shared_ptr<const data::MeshRuntimeAsset>
asset;
67 const std::vector<sequence::SequenceMeshRenderItem>& items);
69 [[
nodiscard]] std::expected<std::size_t, World3DProjectionError>
82 const sequence::SequenceBounds3D& bounds,
86 void refreshBounds(SequenceWorld3DObject&
object)
noexcept;
89 std::map<sequence::SequenceNodeId, SequenceWorld3DObject> objects_;
90 std::
vector<sequence::SequenceNodeId> order_;
91 std::
optional<World3DProjectionState> view_;
static constexpr RenderSlot slot() noexcept
const SequenceWorld3DObject * find(sequence::SequenceNodeId node) const noexcept
std::vector< sequence::SequenceNodeId > visibleOrder() const
std::expected< SequenceWorld3DSyncStats, SequenceWorld3DSlotError > sync(const std::vector< sequence::SequenceMeshRenderItem > &items)
void clearView() noexcept
const std::optional< World3DProjectionState > & view() const noexcept
bool boundsVisible(const sequence::SequenceBounds3D &bounds, const sequence::Matrix3D &worldTransform) const noexcept
std::expected< std::size_t, World3DProjectionError > configureView(World3DRect viewport, World3DCamera camera={})
std::vector< sequence::SequenceNodeId > order() const
std::size_t size() const noexcept
std::optional< World3DCamera > resolveWorld3DCamera(const sequence::SetCameraCommand &command, const sequence::SequenceRuntime &runtime) noexcept
SequenceWorld3DSlotErrorCode
World3DCamera world3DCameraFromSequence(const sequence::SequenceCamera3DView &camera) noexcept
std::uint64_t SequenceNodeId
sequence::Matrix3D worldTransform
sequence::SequenceNodeId node
std::shared_ptr< const data::MeshRuntimeAsset > asset
std::optional< sequence::SequenceBounds3D > sequenceBounds
std::optional< World3DRect > screenBounds
data::DataId contentsDataId
std::shared_ptr< const data::MeshRenderData > renderData
sequence::SequenceNodeId node
SequenceWorld3DSlotErrorCode code