SceneStream
The SceneStream class provides an interface for synchronous and asynchronous loading and saving of scene objects, including nodes, graphs, meshes, breps, and entire scenes. It supports a wide range of processing flags to customize behavior such as geometry optimization, resource embedding, and output format selection. Callback functions can be used to monitor and handle loading and saving operations.
#include <scene/TellusimSceneStream.h>
Constructors
SceneStream()
Methods
Stream flags.
Flags getFlags() const
bool hasFlag(Flags flags) const
bool hasFlags(Flags flags) const
String getFlagsName() const
Mesh stream.
Graph createGraph(Scene &scene, const Mesh &mesh, Material *material = nullptr, Flags flags = FlagNone, Async *async = nullptr) const
uint32_t loadMesh(Scene &scene, const char *name, Material *material, const GraphCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t loadMesh(Scene &scene, const String &name, Material *material, const GraphCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t loadMesh(Scene &scene, Stream &stream, Material *material, const GraphCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
Mesh createMesh(const Graph &graph, Flags flags = FlagNone) const
Mesh createMesh(Array<Graph> graphs, Flags flags = FlagNone) const
uint32_t saveMesh(const char *name, const Graph &graph, const SavedCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t saveMesh(const String &name, const Graph &graph, const SavedCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t saveMesh(Stream &stream, const Graph &graph, const SavedCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
Brep stream.
Graph createGraph(Scene &scene, const Brep &brep, Material *material = nullptr, Flags flags = FlagNone, Async *async = nullptr) const
uint32_t loadBrep(Scene &scene, const char *name, Material *material, const GraphCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t loadBrep(Scene &scene, const String &name, Material *material, const GraphCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t loadBrep(Scene &scene, Stream &stream, Material *material, const GraphCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
Brep createBrep(const Graph &graph, Flags flags = FlagNone) const
Brep createBrep(Array<Graph> graphs, Flags flags = FlagNone) const
uint32_t saveBrep(const char *name, const Graph &graph, const SavedCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t saveBrep(const String &name, const Graph &graph, const SavedCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
uint32_t saveBrep(Stream &stream, const Graph &graph, const SavedCallback &func, Flags flags = FlagNone, float32_t scale = 1.0f, Basis basis = BasisUnknown, uint32_t priority = 0)
Node stream.
Node loadNode(Graph &graph, const char *name, Flags flags = FlagNone, Async *async = nullptr) const
Node loadNode(Graph &graph, const String &name, Flags flags = FlagNone, Async *async = nullptr) const
Node loadNode(Graph &graph, Stream &stream, Flags flags = FlagNone, Async *async = nullptr) const
uint32_t loadNode(Graph &graph, const char *name, const NodeCallback &func, Flags flags, uint32_t priority = 0)
uint32_t loadNode(Graph &graph, const String &name, const NodeCallback &func, Flags flags, uint32_t priority = 0)
uint32_t loadNode(Graph &graph, Stream &stream, const NodeCallback &func, Flags flags, uint32_t priority = 0)
static bool saveNode(const char *name, const Node &node, Flags flags = FlagNone)
static bool saveNode(const String &name, const Node &node, Flags flags = FlagNone)
static bool saveNode(Stream &stream, const Node &node, Flags flags = FlagNone)
uint32_t saveNode(const char *name, const Node &node, const SavedCallback &func, Flags flags, uint32_t priority = 0)
uint32_t saveNode(const String &name, const Node &node, const SavedCallback &func, Flags flags, uint32_t priority = 0)
uint32_t saveNode(Stream &stream, const Node &node, const SavedCallback &func, Flags flags, uint32_t priority = 0)
Graph stream.
Graph loadGraph(Scene &scene, const char *name, Flags flags = FlagNone, Async *async = nullptr) const
Graph loadGraph(Scene &scene, const String &name, Flags flags = FlagNone, Async *async = nullptr) const
Graph loadGraph(Scene &scene, Stream &stream, Flags flags = FlagNone, Async *async = nullptr) const
uint32_t loadGraph(Scene &scene, const char *name, const GraphCallback &func, Flags flags, uint32_t priority = 0)
uint32_t loadGraph(Scene &scene, const String &name, const GraphCallback &func, Flags flags, uint32_t priority = 0)
uint32_t loadGraph(Scene &scene, Stream &stream, const GraphCallback &func, Flags flags, uint32_t priority = 0)
static bool saveGraph(const char *name, const Graph &graph, Flags flags = FlagNone)
static bool saveGraph(const String &name, const Graph &graph, Flags flags = FlagNone)
static bool saveGraph(Stream &stream, const Graph &graph, Flags flags = FlagNone)
uint32_t saveGraph(const char *name, const Graph &graph, const SavedCallback &func, Flags flags, uint32_t priority = 0)
uint32_t saveGraph(const String &name, const Graph &graph, const SavedCallback &func, Flags flags, uint32_t priority = 0)
uint32_t saveGraph(Stream &stream, const Graph &graph, const SavedCallback &func, Flags flags, uint32_t priority = 0)
Scene stream.
Scene loadScene(const char *name, Flags flags = FlagNone, Async *async = nullptr) const
Scene loadScene(const String &name, Flags flags = FlagNone, Async *async = nullptr) const
Scene loadScene(Stream &stream, Flags flags = FlagNone, Async *async = nullptr) const
uint32_t loadScene(const char *name, const SceneCallback &func, Flags flags, uint32_t priority = 0)
uint32_t loadScene(const String &name, const SceneCallback &func, Flags flags, uint32_t priority = 0)
uint32_t loadScene(Stream &stream, const SceneCallback &func, Flags flags, uint32_t priority = 0)
static bool saveScene(const char *name, const Scene &scene, Flags flags = FlagNone)
static bool saveScene(const String &name, const Scene &scene, Flags flags = FlagNone)
static bool saveScene(Stream &stream, const Scene &scene, Flags flags = FlagNone)
uint32_t saveScene(const char *name, const Scene &scene, const SavedCallback &func, Flags flags, uint32_t priority = 0)
uint32_t saveScene(const String &name, const Scene &scene, const SavedCallback &func, Flags flags, uint32_t priority = 0)
uint32_t saveScene(Stream &stream, const Scene &scene, const SavedCallback &func, Flags flags, uint32_t priority = 0)
Remove stream.
bool removeStream(uint32_t stream_id)
bool isStream(uint32_t stream_id)
Types
using NodeCallback = Function<void(uint32_t stream_id, Node node)>
using GraphCallback = Function<void(uint32_t stream_id, Graph graph)>
using SceneCallback = Function<void(uint32_t stream_id, Scene scene)>
using SavedCallback = Function<void(uint32_t stream_id, bool status)>
Enums
Flags
Stream flags.
Name | Value | Description |
---|---|---|
FlagNone | 0 | |
FlagVerbose | (1 << 0) | Verbose processing. |
FlagLights | (1 << 1) | Create light nodes. |
FlagCameras | (1 << 2) | Create camera nodes. |
FlagTracing | (1 << 3) | Create object tracing. |
FlagOptimize | (1 << 4) | Optimize geometries. |
FlagEmptyNode | (1 << 5) | Create empty nodes. |
FlagMeshAnimation | (1 << 6) | Create mesh animation. |
FlagMeshTessellation | (1 << 7) | Create mesh tessellation pipeline. |
FlagMeshMeshlet | (1 << 8) | Create mesh meshlet pipeline. |
FlagMeshSpatial | (1 << 9) | Create mesh spatial. |
FlagMeshBasis | (1 << 10) | Create mesh basis attributes. |
FlagMeshNormal | (1 << 11) | Create mesh normal attributes. |
FlagMeshSkinned | (1 << 12) | Create mesh skinned attributes. |
FlagMeshTexCoord | (1 << 13) | Create mesh texcoord attributes. |
FlagMeshColor | (1 << 14) | Create mesh vertex color attributes. |
FlagMeshMorph | (1 << 15) | Create mesh morph targets. |
FlagMeshPack | (1 << 16) | Create mesh packed attributes. |
FlagBrepCurve2 | (1 << 17) | Maximum brep curve degree is 2. |
FlagBrepSurface2 | (1 << 18) | Maximum brep surface degree is 2. |
FlagRemap | (1 << 19) | Remap identifiers. |
FlagEmbed | (1 << 20) | Embed resources. |
FlagUpdate | (1 << 21) | Update scene. |
FlagDisable | (1 << 22) | Disable node or graph. |
FlagCompact | (1 << 23) | Compact xml or json format. |
FlagFormatXml | (1 << 24) | Xml file format. |
FlagFormatJson | (1 << 25) | Json file format. |
DefaultMeshFlags | (FlagMeshBasis | FlagMeshTexCoord | FlagMeshColor | FlagMeshMorph | FlagMeshPack) | |
DefaultFlags | (FlagLights | FlagCameras | DefaultMeshFlags) | |
NumFlags | 26 |
Basis
Stream basis.
Name | Value | Description |
---|---|---|
BasisUnknown | 0 | Front right up. |
BasisXUpRight | 1 | +Y +Z +X. |
BasisYUpRight | 2 | +Z +X +Y. |
BasisZUpRight | 3 | +X +Y +Z. |
BasisXUpLeft | 4 | +Y -Z +X. |
BasisYUpLeft | 5 | +Z -X +Y. |
BasisZUpLeft | 6 | +X -Y +Z. |
BasisZUpMaya | 7 | -Y +X +Z. |
NumBases | 8 |