ACF $AcfVersion:0$
CSpectralColor.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
6#include <icmm/IColorObject.h>
8
9
10namespace icmm
11{
12
13
14class CSpectralColor: virtual public IColorObject
15{
16public:
18 CSpectralColor(std::shared_ptr<ISpectralColorSpecification> spec);
19
20 bool SetColor(const icmm::CVarColor& values);
22
23 // reimplemented (icmm::IColorObject)
24 virtual icmm::CVarColor GetColor() const override;
25 virtual ConstColorModelPtr GetColorModel() const override;
26 virtual std::unique_ptr<IColorObject> CloneIntoUniquePtr() const override;
27
28 // reimplemented (iser::ISerializable)
29 virtual bool Serialize(iser::IArchive& archive) override;
30
31private:
32 icmm::CVarColor m_spectrumValues;
33 std::shared_ptr<IColorModel> m_modelPtr;
34};
35
36
37} // namespace icmm
38
39
virtual ConstColorModelPtr GetColorModel() const override
Gets the associated color model.
ISpectralColorSpecification::ConstSpectralColorSpecPtr GetSpecification() const
virtual icmm::CVarColor GetColor() const override
Gets the generic color value representation.
virtual std::unique_ptr< IColorObject > CloneIntoUniquePtr() const override
Creates an independent copy of the color object.
bool SetColor(const icmm::CVarColor &values)
CSpectralColor(ColorModelPtr modelPtr)
CSpectralColor(std::shared_ptr< ISpectralColorSpecification > spec)
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
Generic color implementation with variable number of color components.
Definition CVarColor.h:176
Common interface for color objects in the ACF color management system.
std::shared_ptr< const ISpectralColorSpecification > ConstSpectralColorSpecPtr
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Contains color management classes.
std::shared_ptr< const IColorModel > ConstColorModelPtr
std::shared_ptr< IColorModel > ColorModelPtr