37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <mln/style/layer.hpp>
|
|
|
|
namespace mln {
|
|
namespace style {
|
|
|
|
// VALIDATION ONLY: minimal source-less Core layer for 30-01 architecture validation.
|
|
class ParticleValidationLayer final : public Layer {
|
|
public:
|
|
explicit ParticleValidationLayer(const std::string& layerID);
|
|
~ParticleValidationLayer() override;
|
|
|
|
bool isActive() const;
|
|
void setActive(bool);
|
|
uint8_t getMaskMode() const;
|
|
void setMaskMode(uint8_t);
|
|
uint8_t getFixtureMode() const;
|
|
void setFixtureMode(uint8_t);
|
|
|
|
class Impl;
|
|
const Impl& impl() const;
|
|
Mutable<Impl> mutableImpl() const;
|
|
|
|
private:
|
|
explicit ParticleValidationLayer(Immutable<Impl>);
|
|
|
|
std::optional<conversion::Error> setPropertyInternal(const std::string&, const conversion::Convertible&) override;
|
|
StyleProperty getProperty(const std::string&) const override;
|
|
Value serialize() const override;
|
|
std::unique_ptr<Layer> cloneRef(const std::string& id) const override;
|
|
Mutable<Layer::Impl> mutableBaseImpl() const override;
|
|
};
|
|
|
|
} // namespace style
|
|
} // namespace mln
|