1 #ifndef DALI_TOOLKIT_PARTICLE_SYSTEM_PARTICLE_DOMAIN_H
2 #define DALI_TOOLKIT_PARTICLE_SYSTEM_PARTICLE_DOMAIN_H
4 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <dali-toolkit/public-api/particle-system/particle-types.h>
24 #include <dali/public-api/object/base-handle.h>
27 namespace Dali::Toolkit::ParticleSystem::Internal
32 namespace Dali::Toolkit::ParticleSystem
36 * @class ParticleDomain
38 * @brief ParticleDomain bounds simulation area to the specified region
40 class DALI_TOOLKIT_API ParticleDomain : public Dali::BaseHandle
46 ParticleDomain() = default;
49 * @brief Creates new ParticleDomain object
51 * @return New ParticleDomain object
53 static ParticleDomain New();
56 * @brief Downcasts a handle to ParticleDomain handle.
58 * If handle points to an ParticleDomain object, the downcast produces valid handle.
59 * If not, the returned handle is left uninitialized.
61 * @param[in] handle to An object
62 * @return handle to a ParticleDomain object or an uninitialized handle
64 static ParticleDomain DownCast(BaseHandle handle);
69 * @brief This constructor is used by ParticleDomain::New() methods.
71 * @param [in] impl A pointer to a newly allocated implementation
73 ParticleDomain(Internal::ParticleDomain* impl);
77 } // namespace Dali::Toolkit::ParticleSystem
79 #endif // DALI_TOOLKIT_PARTICLE_SYSTEM_PARTICLE_DOMAIN_H