1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef API_3D_ECS_SYSTEMS_IMORPHING_SYSTEM_H 17 #define API_3D_ECS_SYSTEMS_IMORPHING_SYSTEM_H 18 19 #include <3d/namespace.h> 20 #include <base/containers/string.h> 21 #include <base/containers/string_view.h> 22 #include <core/ecs/intf_system.h> 23 #include <render/namespace.h> 24 25 RENDER_BEGIN_NAMESPACE() 26 class IRenderDataStoreManager; 27 RENDER_END_NAMESPACE() 28 29 CORE3D_BEGIN_NAMESPACE() 30 class ISceneNode; 31 32 /** @ingroup group_ecs_systems_imorphing */ 33 /** Morphing System. 34 */ 35 class IMorphingSystem : public CORE_NS::ISystem { 36 public: 37 static constexpr BASE_NS::Uid UID { "96c75ea1-802c-426d-8188-af4ff0887e5e" }; 38 /** Properties */ 39 struct Properties { 40 /** Data store manager */ 41 [[deprecated]] RENDER_NS::IRenderDataStoreManager* dataStoreManager { nullptr }; 42 /** Data store name */ 43 BASE_NS::string dataStoreName; 44 }; 45 46 protected: 47 IMorphingSystem() = default; 48 IMorphingSystem(const IMorphingSystem&) = delete; 49 IMorphingSystem(IMorphingSystem&&) = delete; 50 IMorphingSystem& operator=(const IMorphingSystem&) = delete; 51 IMorphingSystem& operator=(IMorphingSystem&&) = delete; 52 }; 53 54 /** @ingroup group_ecs_systems_imorphing */ 55 /** Return name of this system 56 */ GetName(const IMorphingSystem *)57inline constexpr BASE_NS::string_view GetName(const IMorphingSystem*) 58 { 59 return "MorphingSystem"; 60 } 61 CORE3D_END_NAMESPACE() 62 63 #endif // API_3D_ECS_SYSTEMS_IMORPHING_SYSTEM_H 64