载入中...
搜索中...
未找到
VolumeFluidCodec.h
浏览该文件的文档.
13[[nodiscard]] EVENGINE_API_DOMAINS Value encodeFluidRendererSettings(const FluidRendererSettings& settings);
15[[nodiscard]] EVENGINE_API_DOMAINS Result<FluidRendererSettings> decodeFluidRendererSettings(const Value& value);
20[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidEmitterBlueprint3D> decodeVolumeFluidEmitterBlueprint3D(
26[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeGranularEmitterBlueprint3D> decodeVolumeGranularEmitterBlueprint3D(
32[[nodiscard]] EVENGINE_API_DOMAINS Value encodeVolumeFluidFoam(const VolumeFluidFoamSnapshot& snapshot);
34[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidFoamSnapshot> decodeVolumeFluidFoam(const Value& value);
36[[nodiscard]] EVENGINE_API_DOMAINS Value encodeVolumeFluidDiffuse(const VolumeFluidDiffuseSnapshot& snapshot);
38[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidDiffuseSnapshot> decodeVolumeFluidDiffuse(const Value& value);
40[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<VolumeFluidDiffuseParticle>> decodeVolumeFluidDiffuseParticles(
45[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidSnapshot> decodeVolumeFluid(const Value& value);
47[[nodiscard]] EVENGINE_API_DOMAINS Value encodeVolumeFluidEmission(const VolumeFluidEmission& emission);
49[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidEmission> decodeVolumeFluidEmission(const Value& value);
51[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<VolumeFluidParticle>> decodeVolumeFluidParticles(
54[[nodiscard]] EVENGINE_API_DOMAINS Value encodeVolumeFluidEmitterState(const VolumeFluidEmitterSnapshot& state);
56[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidEmitterSnapshot> decodeVolumeFluidEmitterState(const Value& value);
61[[nodiscard]] EVENGINE_API_DOMAINS Result<VolumeFluidEmitterCheckpoint> decodeVolumeFluidEmitterCheckpoint(
66[[nodiscard]] Result<std::vector<VolumeFluidCollider>> decodeVolumeFluidColliders(const Value& value);
70[[nodiscard]] Result<std::vector<VolumeFluidSdfCollider>> decodeVolumeFluidSdfColliders(const Value& value);
74[[nodiscard]] Result<std::vector<VolumeFluidHeightFieldCollider>> decodeVolumeFluidHeightFieldColliders(
77[[nodiscard]] Value encodeVolumeFluidHeightFieldCollider(const VolumeFluidHeightFieldCollider& collider);
79[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<VolumeFluidSdfPose>> decodeVolumeFluidSdfPoses(
82[[nodiscard]] EVENGINE_API_DOMAINS Value encodeVolumeFluidSdfPose(const VolumeFluidSdfPose& pose);
86[[nodiscard]] Value encodeVolumeFluidContactEvents(const std::vector<VolumeFluidContactEvent>& events);
88[[nodiscard]] Value encodeVolumeFluidParticles(const std::vector<VolumeFluidParticle>& particles);
94[[nodiscard]] Result<std::vector<VolumeFluidThermalRule>> decodeVolumeFluidThermalRules(const Value& value);
98[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<VolumeFluidViscosityColorKey>> decodeVolumeFluidViscosityColors(
101[[nodiscard]] Result<std::vector<VolumeFluidColorKey>> decodeVolumeFluidColorGradient(const Value& value);
103[[nodiscard]] Result<std::vector<glm::vec3>> decodeVolumeFluidFieldPositions(const Value& value);
105[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<VolumeFluidWindZone>> decodeVolumeFluidWindZones(
108[[nodiscard]] EVENGINE_API_DOMAINS Value encodeVolumeFluidWindZone(const VolumeFluidWindZone& zone);
110[[nodiscard]] Value encodeVolumeFluidFieldSamples(const std::vector<VolumeFluidFieldSample>& samples);
114[[nodiscard]] Value encodeVolumeFluidDistanceHits(const std::vector<VolumeFluidDistanceHit>& hits);
116[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<VolumeFluidQueryShape>> decodeVolumeFluidQueries(
119[[nodiscard]] EVENGINE_API_DOMAINS Result<std::vector<glm::vec4>> decodeVolumeFluidColors(const Value& value);
123[[nodiscard]] Result<std::vector<VolumeFluidSimplex>> decodeVolumeFluidSimplexes(const Value& value);
125[[nodiscard]] Result<std::vector<VolumeFluidStitch>> decodeVolumeFluidStitches(const Value& value);
127[[nodiscard]] Value encodeVolumeFluidSimplexHits(const std::vector<VolumeFluidSimplexHit>& hits);
Owning, renderer-independent dynamic values.
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
Value encodeVolumeFluid(const VolumeFluidSnapshot &snapshot)
Canonical schema-17 value projection, shared by JSON, scripts and authoring.
Definition VolumeFluidCodec.cpp:16
Result< std::vector< VolumeFluidViscosityColorKey > > decodeVolumeFluidViscosityColors(const Value &value)
Strict owning decode of at most 32 transient viscosity color keys; application validates domains.
Definition VolumeFluidCodec.cpp:171
Result< VolumeGranularEmitterBlueprint3D > decodeVolumeGranularEmitterBlueprint3D(const Value &value)
Strictly decodes one owning Fluid3D granular-emitter blueprint value.
Definition VolumeFluidCodec.cpp:233
Result< FluidRendererSettings > decodeFluidRendererSettings(const Value &value)
Strictly decodes one complete owning Fluid3D-renderer settings value.
Definition VolumeFluidCodec.cpp:5
Value encodeVolumeFluidEmitterBlueprint3D(const VolumeFluidEmitterBlueprint3D &blueprint)
Projects default or caller-prepared Fluid3D-emitter blueprint values.
Definition VolumeFluidCodec.cpp:218
Result< std::vector< VolumeFluidQueryShape > > decodeVolumeFluidQueries(const Value &value)
Strict owning decode of at most 256 transient mixed query descriptions.
Definition VolumeFluidCodec.cpp:86
Value encodeVolumeFluidContacts(const std::vector< VolumeFluidContact > &contacts)
Projects last-step contacts, including world-space point and opposite impulse.
Definition VolumeFluidCodec.cpp:168
Result< VolumeFluidMaterial > decodeVolumeFluidMaterial(const Value &value)
Strict transient material decode; paint validates numeric domains before mutation.
Definition VolumeFluidCodec.cpp:207
Value encodeVolumeFluidFieldSamples(const std::vector< VolumeFluidFieldSample > &samples)
Projects owning field samples, preserving query order.
Definition VolumeFluidCodec.cpp:59
Result< std::vector< VolumeFluidSdfPose > > decodeVolumeFluidSdfPoses(const Value &value)
Strict transient decode of at most 16 SDF transform-only updates.
Definition VolumeFluidCodec.cpp:134
Value encodeVolumeFluidWindZone(const VolumeFluidWindZone &zone)
Projects one complete wind-zone description for script construction.
Definition VolumeFluidCodec.cpp:167
Value encodeVolumeFluidSimplexHits(const std::vector< VolumeFluidSimplexHit > &hits)
Projects owning Fluid3D-compatible simplex query results.
Definition VolumeFluidCodec.cpp:63
Result< VolumeFluidNozzlePose > decodeVolumeFluidNozzlePose(const Value &value)
Strict transient pose-argument decode; advanceMoving validates the unit quaternion.
Definition VolumeFluidCodec.cpp:269
Result< std::vector< VolumeFluidSimplex > > decodeVolumeFluidSimplexes(const Value &value)
Strict owning decode of at most 65536 point, edge or triangle topology entries.
Definition VolumeFluidCodec.cpp:64
Result< std::vector< VolumeFluidWindZone > > decodeVolumeFluidWindZones(const Value &value)
Strict owning decode of at most 64 transient Fluid3D-style wind zones.
Definition VolumeFluidCodec.cpp:119
Value encodeVolumeFluidCollider(const VolumeFluidCollider &collider)
Projects an owning collider description for script construction.
Definition VolumeFluidCodec.cpp:130
Value encodeVolumeFluidContactEvents(const std::vector< VolumeFluidContactEvent > &events)
Projects owning Enter/Stay/Exit contact lifecycle events.
Definition VolumeFluidCodec.cpp:169
Value encodeVolumeFluidHeightFieldCollider(const VolumeFluidHeightFieldCollider &collider)
Projects one complete owning regular height field.
Definition VolumeFluidCodec.cpp:132
Value encodeVolumeFluidSdfCollider(const VolumeFluidSdfCollider &collider)
Projects one complete owning SDF collider.
Definition VolumeFluidCodec.cpp:131
Result< std::vector< glm::vec4 > > decodeVolumeFluidColors(const Value &value)
Strict owning decode of at most 256 transient linear RGBA colors.
Definition VolumeFluidCodec.cpp:97
Result< std::vector< VolumeFluidStitch > > decodeVolumeFluidStitches(const Value &value)
Strict owning decode of at most 65536 Fluid3DStitcher particle pairs.
Definition VolumeFluidCodec.cpp:75
Result< VolumeFluidEmitterSnapshot > decodeVolumeFluidEmitterState(const Value &value)
Strict version-1 controller-state decode; unsupported fields, kinds and phase values fail.
Definition VolumeFluidCodec.cpp:281
Value encodeVolumeFluidParticles(const std::vector< VolumeFluidParticle > &particles)
Projects an owning particle batch without copying the live solver.
Definition VolumeFluidCodec.cpp:205
Value encodeVolumeFluidDiffuse(const VolumeFluidDiffuseSnapshot &snapshot)
Projects the owning version-1 secondary particle pool state.
Definition VolumeFluidCodec.cpp:31
Result< std::vector< VolumeFluidHeightFieldCollider > > decodeVolumeFluidHeightFieldColliders(const Value &value)
Strict owning decode of at most 16 regular sampled height fields.
Definition VolumeFluidCodec.cpp:156
Value encodeVolumeFluidSdfPose(const VolumeFluidSdfPose &pose)
Projects one transform-only SDF update for script construction.
Definition VolumeFluidCodec.cpp:133
Result< std::vector< VolumeFluidDiffuseParticle > > decodeVolumeFluidDiffuseParticles(const Value &value)
Strict transient batch decode of at most 65536 particles; emit validates domains.
Definition VolumeFluidCodec.cpp:48
Value encodeFluidRendererSettings(const FluidRendererSettings &settings)
Projects one complete Fluid3D-renderer settings value.
Definition VolumeFluidCodec.cpp:4
Value encodeVolumeFluidQueryHits(const std::vector< VolumeFluidQueryHit > &hits)
Projects owning mixed-query hits with their source query indices.
Definition VolumeFluidCodec.cpp:62
Result< std::vector< glm::vec3 > > decodeVolumeFluidFieldPositions(const Value &value)
Strict owning decode of up to 65536 transient world-space field query positions.
Definition VolumeFluidCodec.cpp:108
Result< VolumeFluidFoamSnapshot > decodeVolumeFluidFoam(const Value &value)
Strict decode with atomic-controller validation; rejects unknown fields and versions.
Definition VolumeFluidCodec.cpp:18
EVENGINE_API_DOMAINS Result< VolumeFluidSnapshot > decodeVolumeFluid(const Value &value)
Strict owning decode; unknown/missing fields, unsupported versions and invalid state are rejected.
Definition VolumeFluidStateCodec.cpp:4
Value encodeVolumeFluidThermalRule(const VolumeFluidThermalRule &rule)
Owning default-rule projection for script construction.
Definition VolumeFluidCodec.cpp:170
Result< std::vector< VolumeFluidColorKey > > decodeVolumeFluidColorGradient(const Value &value)
Strict owning decode of a 2..32-key normalized linear RGBA gradient.
Definition VolumeFluidCodec.cpp:182
Result< VolumeFluidDiffuseSnapshot > decodeVolumeFluidDiffuse(const Value &value)
Strict bounded decode; validates the entire pool before returning owning state.
Definition VolumeFluidCodec.cpp:32
Result< VolumeFluidEmission > decodeVolumeFluidEmission(const Value &value)
Strict structural decode; nozzle/material domain validation occurs atomically at emission.
Definition VolumeFluidCodec.cpp:354
Result< std::vector< VolumeFluidSdfCollider > > decodeVolumeFluidSdfColliders(const Value &value)
Strict owning decode of at most 16 sampled SDF colliders.
Definition VolumeFluidCodec.cpp:145
Value encodeVolumeFluidEmitterBlueprintApplication3D(const VolumeFluidEmitterBlueprintApplication3D &application)
Projects the complete native solver/emission setup produced from a blueprint.
Definition VolumeFluidCodec.cpp:244
Result< std::vector< VolumeFluidThermalRule > > decodeVolumeFluidThermalRules(const Value &value)
Strict owning decode of at most 1024 transient thermal rules; step validates domains.
Definition VolumeFluidCodec.cpp:194
Result< std::vector< VolumeFluidParticle > > decodeVolumeFluidParticles(const Value &value)
Decodes an owning emission batch without serializing the live solver; admission validates domains.
Definition VolumeFluidCodec.cpp:296
Value encodeVolumeFluidParticleEvents(const VolumeFluidParticleEventBatch &batch)
Projects one owning bounded particle lifecycle-event drain.
Definition VolumeFluidCodec.cpp:206
Value encodeVolumeFluidEmission(const VolumeFluidEmission &emission)
Encodes a version-9 emission description including precomputed points and particle state.
Definition VolumeFluidCodec.cpp:346
Value encodeVolumeFluidFoam(const VolumeFluidFoamSnapshot &snapshot)
Projects owning schema-1 foam settings, credit text and RNG state.
Definition VolumeFluidCodec.cpp:17
Value encodeVolumeFluidDistanceHits(const std::vector< VolumeFluidDistanceHit > &hits)
Projects owning signed-distance hits including captured particle values.
Definition VolumeFluidCodec.cpp:61
Value encodeVolumeFluidEmitterState(const VolumeFluidEmitterSnapshot &state)
Encodes controller state without converting phase text to VM floating point.
Definition VolumeFluidCodec.cpp:280
Result< std::vector< VolumeFluidCollider > > decodeVolumeFluidColliders(const Value &value)
Strict transient collider batch decode; setColliders validates geometry atomically.
Definition VolumeFluidCodec.cpp:257
Value encodeVolumeFluidRayHits(const std::vector< VolumeFluidRayHit > &hits)
Projects owning ray hits including captured particle values.
Definition VolumeFluidCodec.cpp:60
Value encodeVolumeFluidEmitterCheckpoint(const VolumeFluidEmitterCheckpoint &checkpoint)
Encodes one version-1 solver/emission/controller checkpoint.
Definition VolumeFluidCodec.cpp:307
Result< VolumeFluidEmitterCheckpoint > decodeVolumeFluidEmitterCheckpoint(const Value &value)
Strictly decodes and validates all owning checkpoint members without publishing state.
Definition VolumeFluidCodec.cpp:317
Value encodeVolumeGranularEmitterBlueprint3D(const VolumeGranularEmitterBlueprint3D &blueprint)
Projects default or caller-prepared Fluid3D granular-emitter blueprint values.
Definition VolumeFluidCodec.cpp:230
Result< VolumeFluidEmitterBlueprint3D > decodeVolumeFluidEmitterBlueprint3D(const Value &value)
Strictly decodes one owning Fluid3D-emitter blueprint value.
Definition VolumeFluidCodec.cpp:219