2 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "dali-scene3d/public-api/loader/customization.h"
18 #include "dali/devel-api/common/map-wrapper.h"
26 struct Customization::Map::Impl
28 std::map<Tag, Customization> mCustomizations;
31 Customization::Map::Map()
36 Customization::Map::~Map() = default;
38 Customization* Customization::Map::Set(Tag tag, Customization&& customization)
40 auto& result = (mImpl->mCustomizations[tag] = customization);
44 const Customization* Customization::Map::Get(Tag tag) const
46 auto& customizations = mImpl->mCustomizations;
47 auto iFind = customizations.find(tag);
48 if(iFind != customizations.end())
50 return &iFind->second;
55 Customization* Customization::Map::Get(Tag tag)
57 auto& customizations = mImpl->mCustomizations;
58 auto iFind = customizations.find(tag);
59 if(iFind != customizations.end())
61 return &iFind->second;
66 uint32_t Customization::Map::Size() const
68 return mImpl->mCustomizations.size();
71 void Customization::Map::Clear()
73 mImpl->mCustomizations.clear();
76 struct Customization::Choices::Impl
78 std::map<Tag, OptionType> mOptions;
81 Customization::Choices::Choices()
86 Customization::Choices::~Choices() = default;
88 void Customization::Choices::Set(Tag tag, OptionType option)
90 mImpl->mOptions[tag] = option;
93 Customization::OptionType Customization::Choices::Get(Tag tag) const
95 auto& options = mImpl->mOptions;
96 auto iFind = options.find(tag);
97 if(iFind != options.end())
104 uint32_t Customization::Choices::Size() const
106 return mImpl->mOptions.size();
109 void Customization::Choices::Clear()
111 mImpl->mOptions.clear();
114 } // namespace Loader
115 } // namespace Scene3D