31 lines
1.0 KiB
C++
31 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <mbgl/particle/field/field_binding.hpp>
|
|
#include <mbgl/particle/field/field_data_adapter.hpp>
|
|
|
|
#include <optional>
|
|
#include <memory>
|
|
|
|
namespace mbgl::particle {
|
|
|
|
// Renderer-neutral canonical snapshots. QBIN stays confined to ingress and
|
|
// field Core; renderers receive only the existing canonical field shape.
|
|
struct MaterializedColorProjection {
|
|
std::shared_ptr<const ParticleFieldSnapshot> t0;
|
|
std::shared_ptr<const ParticleFieldSnapshot> t1;
|
|
ColorProjectionContentIdentity contentIdentity;
|
|
FieldSampleState sampleState;
|
|
};
|
|
|
|
struct MaterializedParticleProjection {
|
|
std::shared_ptr<const ParticleFieldSnapshot> t0;
|
|
std::shared_ptr<const ParticleFieldSnapshot> t1;
|
|
ParticleProjectionContentIdentity contentIdentity;
|
|
FieldSampleState sampleState;
|
|
};
|
|
|
|
std::optional<MaterializedColorProjection> materializeColorProjection(const ColorProjection&);
|
|
std::optional<MaterializedParticleProjection> materializeParticleProjection(const ParticleProjection&);
|
|
|
|
} // namespace mbgl::particle
|