ca0bdc2514e69fe5ca38e3a07ed1e027d2c52494
[platform/core/uifw/dali-toolkit.git] / dali-scene3d / public-api / loader / skinning-details.h
1 #ifndef DALI_SCENE3D_LOADER_SKINNING_DETAILS_H_
2 #define DALI_SCENE3D_LOADER_SKINNING_DETAILS_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 // EXTERNAL INCLUDES
21 #include <dali/public-api/rendering/shader.h>
22 #include <dali/public-api/animation/constraint.h>
23 #include <string>
24
25 // INTERNAL INCLUDES
26 #include <dali-scene3d/public-api/api.h>
27 #include <dali-scene3d/public-api/loader/index.h>
28 #include <dali-scene3d/public-api/model-components/model-primitive.h>
29
30 namespace Dali::Scene3D::Loader
31 {
32 struct DALI_SCENE3D_API Skinning
33 {
34 public:
35   struct BoneData
36   {
37     Dali::Scene3D::ModelPrimitive primitive;
38     Dali::Constraint              constraint;
39     Scene3D::Loader::Index        boneIndex;
40     std::string                   propertyName;
41     Matrix                        inverseMatrix;
42   };
43
44   /*
45    * @brief Upper limit on the number of joints supported.
46    */
47   static const uint32_t MAX_JOINTS;
48
49   /*
50    * @brief Name of bone matrix uniform (array).
51    */
52   static const char* BONE_UNIFORM_NAME;
53   static const char* JOINT_MATRIX;
54
55   Skinning() = delete;
56 };
57
58 } // namespace Dali::Scene3D::Loader
59
60 #endif // DALI_SCENE3D_LOADER_SKINNING_DETAILS_H_