File world.h
Go to the documentation of this file
#pragma once
#include <uipc/core/scene.h>
#include <uipc/core/feature_collection.h>
namespace uipc::backend
{
class WorldVisitor;
}
namespace uipc::core::internal
{
class World;
}
namespace uipc::core
{
class Engine;
class UIPC_CORE_API World final
{
friend class backend::WorldVisitor;
friend class SanityChecker;
public:
World(Engine& e) noexcept;
~World();
World(const World&) = delete;
World(World&&) = default;
World& operator=(const World&) = delete;
World& operator=(World&&) = default;
void init(Scene& s);
void advance();
void sync();
void retrieve();
void backward();
bool dump();
bool recover(SizeT aim_frame = ~0ull);
bool is_valid() const;
SizeT frame() const;
const FeatureCollection& features() const;
private:
// Allow create a core::World from a core::internal::World
World(S<internal::World> w) noexcept;
S<internal::World> m_internal;
};
} // namespace uipc::core