27 std::array<float, 3>
location{0.0F, 0.0F, -320.0F};
28 std::array<float, 3>
forward{0.0F, 0.0F, 1.0F};
29 std::array<float, 3>
up{0.0F, 1.0F, 0.0F};
65 [[
nodiscard]] std::expected<World3DProjectionState, World3DProjectionError>
69 const data::MeshBounds& bounds,
70 const sequence::Matrix3D& worldTransform,
71 const World3DProjectionState& projection)
noexcept;
74 World3DRect
left, World3DRect
right)
noexcept;
std::atomic< float > left
std::atomic< float > right
World3DProjectionErrorCode
constexpr float MonopolyBoardFarPlane
std::optional< World3DRect > world3DMeshScreenRect(const data::MeshBounds &bounds, const sequence::Matrix3D &worldTransform, const World3DProjectionState &projection) noexcept
std::optional< World3DRect > intersectWorld3DRect(World3DRect left, World3DRect right) noexcept
std::expected< World3DProjectionState, World3DProjectionError > makeWorld3DProjectionState(World3DRect viewport, World3DCamera camera)
constexpr float MonopolyBoardNearPlane
std::array< float, 3 > location
std::array< float, 3 > forward
auto operator<=>(const World3DCamera &) const =default
std::array< float, 3 > up
World3DProjectionErrorCode code
sequence::Matrix3D projection
sequence::Matrix3D rasterProjection
sequence::Matrix3D cameraToScreen
sequence::Matrix3D viewportMatrix
bool empty() const noexcept
auto operator<=>(const World3DRect &) const =default