[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / particle-system / particle-domain-impl.h
1 #ifndef DALI_TOOLKIT_PARTICLE_SYSTEM_INTERNAL_PARTICLE_DOMAIN_H
2 #define DALI_TOOLKIT_PARTICLE_SYSTEM_INTERNAL_PARTICLE_DOMAIN_H
3 /*
4  * Copyright (c) 2023 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 // INTERNAL INCLUDES
21 #include <dali-toolkit/public-api/particle-system/particle-domain.h>
22
23 // EXTERNAL INCLUDES
24 #include <dali/public-api/object/base-object.h>
25 #include <memory>
26
27 namespace Dali::Toolkit::ParticleSystem::Internal
28 {
29 class ParticleDomain : public Dali::BaseObject
30 {
31 };
32
33 } // namespace Dali::Toolkit::ParticleSystem::Internal
34
35 namespace Dali::Toolkit::ParticleSystem
36 {
37 inline Internal::ParticleDomain& GetImplementation(ParticleSystem::ParticleDomain& source)
38 {
39   DALI_ASSERT_ALWAYS(source && "ParticleDomain handle is empty");
40
41   BaseObject& handle = source.GetBaseObject();
42
43   return static_cast<Internal::ParticleDomain&>(handle);
44 }
45
46 inline const Internal::ParticleDomain& GetImplementation(const ParticleSystem::ParticleDomain& source)
47 {
48   DALI_ASSERT_ALWAYS(source && "ParticleDomain handle is empty");
49
50   const BaseObject& handle = source.GetBaseObject();
51
52   return static_cast<const Internal::ParticleDomain&>(handle);
53 }
54
55 } // namespace Dali::Toolkit::ParticleSystem
56
57 #endif // DALI_TOOLKIT_PARTICLE_SYSTEM_INTERNAL_PARTICLE_DOMAIN_H