mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
#ifndef Merge_hpp
|
|
#define Merge_hpp
|
|
|
|
#include "Lottie/Private/Model/ShapeItems/ShapeItem.hpp"
|
|
#include "Lottie/Private/Parsing/JsonParsing.hpp"
|
|
|
|
namespace lottie {
|
|
|
|
enum class MergeMode: int {
|
|
None = 0,
|
|
Merge = 1,
|
|
Add = 2,
|
|
Subtract = 3,
|
|
Intersect = 4,
|
|
Exclude = 5
|
|
};
|
|
|
|
/// An item that define an ellipse shape
|
|
class Merge: public ShapeItem {
|
|
public:
|
|
explicit Merge(json11::Json::object const &json) noexcept(false) :
|
|
ShapeItem(json),
|
|
mode(MergeMode::None) {
|
|
auto modeRawValue = getInt(json, "mm");
|
|
switch (modeRawValue) {
|
|
case 0:
|
|
mode = MergeMode::None;
|
|
break;
|
|
case 1:
|
|
mode = MergeMode::Merge;
|
|
break;
|
|
case 2:
|
|
mode = MergeMode::Add;
|
|
break;
|
|
case 3:
|
|
mode = MergeMode::Subtract;
|
|
break;
|
|
case 4:
|
|
mode = MergeMode::Intersect;
|
|
break;
|
|
case 5:
|
|
mode = MergeMode::Exclude;
|
|
break;
|
|
default:
|
|
throw LottieParsingException();
|
|
}
|
|
}
|
|
|
|
virtual void toJson(json11::Json::object &json) const override {
|
|
ShapeItem::toJson(json);
|
|
|
|
json.insert(std::make_pair("mm", (int)mode));
|
|
}
|
|
|
|
public:
|
|
/// The mode of the merge path
|
|
MergeMode mode;
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* Merge_hpp */
|