ludus::content::scene_cook¶
Ludus Wiki · API overview · Browse API
Namespace
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
Related declarations¶
- ludus::content::scene_cook::AssetError
- ludus::content::scene_cook::AssetOptions
- ludus::content::scene_cook::BestEffortOptions
- ludus::content::scene_cook::BestEffortResult
- ludus::content::scene_cook::Cancellation
- ludus::content::scene_cook::CookError
- ludus::content::scene_cook::CookResult
- ludus::content::scene_cook::EditorSceneProgress
- ludus::content::scene_cook::EditorSceneRequest
- ludus::content::scene_cook::EditorSceneResult
- ludus::content::scene_cook::ImportCandidate
- ludus::content::scene_cook::ImportSummary
- ludus::content::scene_cook::UuidSource
Enumerations¶
SceneSourceFormat¶
enum class SceneSourceFormat : uint8
Related types: uint8
Unknown¶
Unknown
Pbrt¶
Pbrt
Gltf¶
Gltf
Obj¶
Obj
LudusScene¶
LudusScene
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
AssetErrorCode¶
enum class AssetErrorCode : uint8
Related types: uint8
InvalidScene¶
InvalidScene
AssetCorrupt¶
AssetCorrupt
InstallCancelled¶
InstallCancelled
Conflict¶
Conflict
Busy¶
Busy
MissingTools¶
MissingTools
UnsupportedScene¶
UnsupportedScene
StorageFailure¶
StorageFailure
RecoveryRequired¶
RecoveryRequired
DestinationExists¶
DestinationExists
OutOfMemory¶
OutOfMemory
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
DumpLayout¶
enum class DumpLayout : uint8
Related types: uint8
Canonical¶
Canonical
Indented¶
Indented
Line¶
Line
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
EditorSceneOperation¶
enum class EditorSceneOperation : uint8
Related types: uint8
Open¶
Open
Import¶
Import
CommitImport¶
CommitImport
PreviewImport¶
PreviewImport
Save¶
Save
Assemble¶
Assemble
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
Constants and variables¶
BEST_EFFORT_PROFILE¶
constexpr std::string_view ludus::content::scene_cook::BEST_EFFORT_PROFILE = "pbrt-best-effort-v1"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
GLTF_BEST_EFFORT_PROFILE¶
constexpr std::string_view ludus::content::scene_cook::GLTF_BEST_EFFORT_PROFILE = "gltf-best-effort-v1"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
OBJ_BEST_EFFORT_PROFILE¶
constexpr std::string_view ludus::content::scene_cook::OBJ_BEST_EFFORT_PROFILE = "obj-best-effort-v1"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
LUDUS_SCENE_PROFILE¶
constexpr std::string_view ludus::content::scene_cook::LUDUS_SCENE_PROFILE = "ludus-scene-v1"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
IMPORT_REPORT_SCHEMA¶
constexpr uint32 ludus::content::scene_cook::IMPORT_REPORT_SCHEMA = 1
Related types: uint32
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
MAX_SOURCE_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_SOURCE_BYTES = usize{64} * 1024 * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_SOURCE_DATA_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_SOURCE_DATA_BYTES = usize{1024} * 1024 * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_SOURCE_IMAGE_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_SOURCE_IMAGE_BYTES = usize{256} * 1024 * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_REFERENCE_DOCUMENT_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_REFERENCE_DOCUMENT_BYTES = usize{1024} * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_LICENSE_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_LICENSE_BYTES = usize{1024} * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_ASSET_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_ASSET_BYTES = usize{384} * 1024 * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_RESIDENT_CLOSURE_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_RESIDENT_CLOSURE_BYTES = usize{512} * 1024 * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_METADATA_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_METADATA_BYTES = usize{1024} * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
MAX_CATALOG_BYTES¶
constexpr usize ludus::content::scene_cook::MAX_CATALOG_BYTES = usize{64} * 1024 * 1024
Related types: usize
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/limits.h
LEVEL_PROFILE¶
constexpr std::string_view ludus::content::scene_cook::LEVEL_PROFILE = "resident-reference-v1"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
PROFILE¶
constexpr std::string_view ludus::content::scene_cook::PROFILE = "pbrt-reference-v1"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_cook.h
MATERIAL_PROFILE¶
constexpr std::string_view ludus::content::scene_cook::MATERIAL_PROFILE = "pbrt-reference-materials-v2"
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_cook.h
Functions¶
ImportPbrtBestEffort¶
bool ludus::content::scene_cook::ImportPbrtBestEffort(std::string_view entryFile, const BestEffortOptions &options, BestEffortResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
| Parameter | Description |
|---|---|
entryFile |
Native path of the .pbrt file. Its directory is the import root; Include/Import, PLY and image paths must resolve inside it.
|
options |
Dry-run selection, companion environment and decoder job system.
|
outResult |
Replaced on success. On a parse failure with diagnostics, outResult.Report still holds the report so the caller can show why.
|
outError |
Set on failure: Invalid (syntax errors or nothing drawable), NotFound/IoError (entry file), Cancelled, OutOfMemory.
|
cancelOrNull |
Optional cancellation hook polled per directive and per placement.
|
Returns
Note
Related types: BestEffortOptions · BestEffortResult · Cancellation · CookError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
ImportGltfBestEffort¶
bool ludus::content::scene_cook::ImportGltfBestEffort(std::string_view entryFile, const BestEffortOptions &options, BestEffortResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
| Parameter | Description |
|---|---|
entryFile |
Native path of the entry file. Its directory is the import root; external buffers and images must resolve inside it. Data URIs are decoded in memory.
|
options |
Dry-run selection, companion environment and decoder job system.
|
outResult |
Replaced. On a failure with diagnostics, outResult.Report still holds the report so the caller can show why.
|
outError |
Set on failure: Invalid (malformed input, unsupported required features or nothing drawable), NotFound/IoError (entry file), Cancelled, OutOfMemory.
|
cancelOrNull |
Optional cancellation hook polled per node, primitive and placement.
|
Returns
Note
Related types: BestEffortOptions · BestEffortResult · Cancellation · CookError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
ImportObjBestEffort¶
bool ludus::content::scene_cook::ImportObjBestEffort(std::string_view entryFile, const BestEffortOptions &options, BestEffortResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
| Parameter | Description |
|---|---|
entryFile |
Native path of the .obj file; its directory is the import root and material libraries and textures must resolve inside it.
|
options |
Dry-run selection, companion environment and decoder job system.
|
outResult |
Replaced; on a failure with diagnostics the report is kept.
|
outError |
Set on failure: Invalid (malformed records, zero or out-of-range indices, limits, nothing drawable), NotFound/IoError (entry file), Cancelled, OutOfMemory.
|
cancelOrNull |
Optional cancellation hook polled every few thousand lines.
|
Returns
Note
Related types: BestEffortOptions · BestEffortResult · Cancellation · CookError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
ImportLudusScene¶
bool ludus::content::scene_cook::ImportLudusScene(std::string_view entryFile, const BestEffortOptions &options, BestEffortResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
| Parameter | Description |
|---|---|
entryFile |
Native path of the entry file. Its directory is the import root; a LICENSE.txt or LICENSE.md beside it is recorded like the other importers'.
|
options |
Dry-run selection, companion environment and decoder job system.
|
outResult |
Replaced; on a failure with diagnostics the report is kept.
|
outError |
Set on failure: Invalid (an invalid document, or a scene beyond the cooked profile), NotFound/IoError (entry file), Cancelled, OutOfMemory.
|
cancelOrNull |
Optional cancellation hook polled per object.
|
Returns
Note
Related types: BestEffortOptions · BestEffortResult · Cancellation · CookError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
DetectSceneSourceFormat¶
SceneSourceFormat ludus::content::scene_cook::DetectSceneSourceFormat(std::span< const uint8 > prefix, std::string_view fileName) noexcept
"format": "ludus.scene" selects LudusScene and any other leading '{' selects Gltf; an OBJ record keyword selects Obj and a capitalised pbrt directive selects Pbrt. | Parameter | Description |
|---|---|
prefix |
Leading bytes of the file (4 KiB is plenty); may be empty.
|
fileName |
Name used only for the extension fallback.
|
Returns
Related types: SceneSourceFormat · uint8
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
DetectSceneSourceFile¶
Status ludus::content::scene_cook::DetectSceneSourceFile(std::string_view entryFile, SceneSourceFormat &outFormat) noexcept
| Parameter | Description |
|---|---|
entryFile |
Native path.
|
outFormat |
Set only on Ok.
|
Returns
Related types: Status · SceneSourceFormat
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
ImportSceneBestEffort¶
bool ludus::content::scene_cook::ImportSceneBestEffort(std::string_view entryFile, const BestEffortOptions &options, BestEffortResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
Returns
Related types: BestEffortOptions · BestEffortResult · Cancellation · CookError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
WriteBestEffortImport¶
bool ludus::content::scene_cook::WriteBestEffortImport(std::string_view output, const BestEffortResult &result, CookError &outError) noexcept
| Parameter | Description |
|---|---|
output |
Native directory; created with its parents when absent.
|
result |
A non-dry-run result.
|
outError |
Set on failure.
|
Returns
Related types: BestEffortResult · CookError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/best_effort_import.h
GetAssetErrorCodeName¶
std::string_view ludus::content::scene_cook::GetAssetErrorCodeName(AssetErrorCode code) noexcept
Related types: AssetErrorCode
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
CreateLevel¶
bool ludus::content::scene_cook::CreateLevel(std::string_view name, const AssetOptions &options, foundation::Array< uint8 > &outLevel, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
name |
Display name, stored verbatim.
|
options |
UuidsOrNull selects the UUID source.
|
outLevel |
Canonical level bytes.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError · AssetOptions
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
ValidateLevel¶
bool ludus::content::scene_cook::ValidateLevel(std::span< const uint8 > level, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
level |
Level JSON bytes.
|
outError |
Set on failure.
|
Returns
Related types: uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
ComposeLevelTransforms¶
bool ludus::content::scene_cook::ComposeLevelTransforms(std::span< const uint8 > level, foundation::Array< float32 > &outTransforms, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
level |
Level JSON bytes, validated as ValidateLevel does.
|
outTransforms |
Replaced on success with twelve values per level object, in level order: the column-major mesh-to-world basis, then the translation (content::scene_format::OBJECT_TRANSFORM_COMPONENTS).
|
outError |
Set on failure: an invalid level, a world transform outside the float32 range, or allocation failure.
|
Returns
Related types: foundation::Array · float32 · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
ReadCatalog¶
bool ludus::content::scene_cook::ReadCatalog(std::string_view root, foundation::Array< uint8 > &outCatalog, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
outCatalog |
Canonical catalog bytes.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
PrepareImport¶
bool ludus::content::scene_cook::PrepareImport(std::string_view root, std::string_view source, std::span< const uint8 > level, const AssetOptions &options, ImportCandidate &outCandidate, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
source |
Directory holding the pbrt-reference-v1 scene.
|
level |
Level the import is merged into; never saved here.
|
options |
Cancellation, UUID source and provenance override.
|
outCandidate |
Replaced on success.
|
outError |
Set on failure.
|
Returns
Related types: uint8 · AssetError · AssetOptions · ImportCandidate
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
CommitImport¶
bool ludus::content::scene_cook::CommitImport(std::string_view root, std::span< const uint8 > level, std::span< const uint8 > catalog, const Digest *publishedOrNull, std::string_view source, const AssetOptions &options, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
level |
Candidate level bytes.
|
catalog |
Candidate catalog bytes.
|
publishedOrNull |
Digest of the catalog the candidate was prepared against; nullptr when no catalog was published.
|
source |
Source directory, rechecked for changes.
|
options |
Cancellation and provenance override.
|
outError |
Set on failure.
|
Returns
Related types: uint8 · Digest · AssetError · AssetOptions
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
ImportScene¶
bool ludus::content::scene_cook::ImportScene(std::string_view root, std::string_view source, std::span< const uint8 > level, const AssetOptions &options, foundation::Array< uint8 > &outLevel, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
source |
Source scene directory.
|
level |
Level to merge into.
|
options |
Cancellation, UUID source and provenance override.
|
outLevel |
Canonical candidate level.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError · AssetOptions
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
ImportSavedLevel¶
bool ludus::content::scene_cook::ImportSavedLevel(std::string_view root, std::string_view relative, std::string_view source, const AssetOptions &options, foundation::Array< uint8 > &outLevel, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
relative |
Project-relative
.lulevel path. |
source |
Source scene directory.
|
options |
Cancellation, UUID source and provenance override.
|
outLevel |
Canonical saved level.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError · AssetOptions
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
SaveLevel¶
bool ludus::content::scene_cook::SaveLevel(std::string_view root, std::string_view relative, std::span< const uint8 > level, const foundation::Array< uint8 > *expectedOrNull, foundation::Array< uint8 > &outSaved, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
relative |
Project-relative
.lulevel path. |
level |
Level bytes.
|
expectedOrNull |
Bytes the file must still hold; nullptr requires that it does not exist.
|
outSaved |
Canonical bytes written.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
OpenLevel¶
bool ludus::content::scene_cook::OpenLevel(std::string_view root, std::string_view relative, foundation::Array< uint8 > &outLevel, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
relative |
Project-relative
.lulevel path. |
outLevel |
Canonical level bytes.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
AssembleLevel¶
bool ludus::content::scene_cook::AssembleLevel(std::string_view root, std::span< const uint8 > level, std::span< const uint8 > catalog, foundation::Array< uint8 > &outBundle, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
level |
Level bytes.
|
catalog |
Candidate catalog bytes, or empty to use the published catalog.
|
outBundle |
Bundle bytes.
|
outError |
Set on failure.
|
Returns
Related types: foundation::Array · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
DumpLevel¶
bool ludus::content::scene_cook::DumpLevel(std::string_view root, std::span< const uint8 > level, std::span< const uint8 > catalog, DumpLayout layout, foundation::Array< uint8 > &outDump, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
level |
Level bytes.
|
catalog |
Candidate catalog bytes, or empty to use the published catalog.
|
layout |
Output layout.
|
outDump |
JSON bytes.
|
outError |
Set on failure.
|
Returns
Related types: DumpLayout · foundation::Array · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
PublishLevel¶
bool ludus::content::scene_cook::PublishLevel(std::string_view root, std::span< const uint8 > level, std::string_view destination, DumpLayout layout, foundation::Array< uint8 > &outDump, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
root |
Project directory.
|
level |
Level bytes.
|
destination |
Release directory; must not exist.
|
layout |
Layout of outDump.
|
outDump |
Dump of the published release.
|
outError |
Set on failure.
|
Returns
Related types: DumpLayout · foundation::Array · uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
WriteFileAtomically¶
bool ludus::content::scene_cook::WriteFileAtomically(std::string_view path, std::span< const uint8 > data, AssetError &outError) noexcept
ludus-cook scene assemble outputs). | Parameter | Description |
|---|---|
path |
Native file path; parent directories are created.
|
data |
Bytes to write.
|
outError |
Set on failure.
|
Returns
Related types: uint8 · AssetError
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
OperateEditorScene¶
bool ludus::content::scene_cook::OperateEditorScene(const EditorSceneRequest &request, const AssetOptions &options, EditorSceneResult &outResult, AssetError &outError) noexcept
| Parameter | Description |
|---|---|
request |
Operation and inputs.
|
options |
Cancellation, UUID source and provenance override.
|
outResult |
Replaced on success; left unchanged on failure.
|
outError |
Set on failure.
|
Returns
Related types: AssetError · AssetOptions · EditorSceneRequest · EditorSceneResult
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_assets.h
Cook¶
bool ludus::content::scene_cook::Cook(std::string_view source, CookResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
| Parameter | Description |
|---|---|
source |
Native directory path; resolved before use, and its base name is recorded when the licence does not identify the staircase2 author.
|
outResult |
Replaced on success; contents are unspecified on failure.
|
outError |
Set on failure.
|
cancelOrNull |
Optional cancellation hook; nullptr disables cancellation.
|
Returns
Note
Related types: Cancellation · CookError · CookResult
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_cook.h
CookMaterials¶
bool ludus::content::scene_cook::CookMaterials(std::string_view source, CookResult &outResult, CookError &outError, const Cancellation *cancelOrNull=nullptr) noexcept
| Parameter | Description |
|---|---|
source |
Native source directory; synchronous bounded file reads, no symlinks.
|
outResult |
Replaced only on success; preserved on failure or cancellation.
|
outError |
Failure status and diagnostic; cleared on entry.
|
cancelOrNull |
Optional thread-safe cooperative cancellation hook.
|
Returns
Related types: Cancellation · CookError · CookResult
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_cook.h
WriteCook¶
bool ludus::content::scene_cook::WriteCook(std::string_view output, const CookResult &result, CookError &outError) noexcept
| Parameter | Description |
|---|---|
output |
Native directory; created with its parents when absent.
|
result |
Outputs from Cook.
|
outError |
Set on failure.
|
Returns
Related types: CookError · CookResult
Declared in modules/content/scene_cook/include/ludus/content/scene_cook/scene_cook.h