X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-scene3d%2Finternal%2Fmodel-components%2Fmodel-node-impl.h;h=8a0611693a094cbd0ec03e1331cce9524d2da0a0;hb=2116ad7b1ce51093a891ca6b3e83419b0b5b79dd;hp=e3c718ca530f2edf90cb0a47b6f64659fb7b79b2;hpb=bc0764c011a13efbcca2d6568a78f606aa1f6c2b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-scene3d/internal/model-components/model-node-impl.h b/dali-scene3d/internal/model-components/model-node-impl.h index e3c718c..8a06116 100644 --- a/dali-scene3d/internal/model-components/model-node-impl.h +++ b/dali-scene3d/internal/model-components/model-node-impl.h @@ -19,12 +19,15 @@ */ // EXTERNAL INCLUDES +#include #include #include #include // for std::unique_ptr +#include // INTERNAL INCLUDES #include +#include #include #include #include @@ -51,6 +54,7 @@ class DALI_SCENE3D_API ModelNode : public CustomActorImpl, public ModelPrimitive public: using ModelPrimitiveContainer = std::vector; using BoneDataContainer = std::vector; + using BlendShapeIndexMap = std::map; // Creation & Destruction /** @@ -216,6 +220,16 @@ public: // Public Method Scene3D::ModelNode FindChildModelNodeByName(std::string_view nodeName); /** + * @copydoc Dali::Scene3D::ModelNode::RetrieveBlendShapeNames() + */ + void RetrieveBlendShapeNames(std::vector& blendShapeNames) const; + + /** + * @copydoc Dali::Scene3D::ModelNode::GetBlendShapeIndexByName() + */ + Loader::BlendShapes::Index GetBlendShapeIndexByName(std::string_view blendShapeName) const; + + /** * @brief Sets the diffuse and specular image-based lighting textures for a ModelPrimitive. * * @param[in] diffuseTexture The diffuse texture. @@ -232,6 +246,9 @@ public: // Public Method */ void SetImageBasedLightScaleFactor(float iblScaleFactor); + void AddLight(Scene3D::Light light, uint32_t lightIndex); + void RemoveLight(uint32_t lightIndex); + /** * @brief Sets the blend shape data for a ModelPrimitive. * @@ -268,18 +285,22 @@ private: /// @cond internal // Not copyable or movable - DALI_INTERNAL ModelNode(const ModelNode&) = delete; ///< Deleted copy constructor. - DALI_INTERNAL ModelNode(ModelNode&&) = delete; ///< Deleted move constructor. + DALI_INTERNAL ModelNode(const ModelNode&) = delete; ///< Deleted copy constructor. + DALI_INTERNAL ModelNode(ModelNode&&) = delete; ///< Deleted move constructor. DALI_INTERNAL ModelNode& operator=(const ModelNode&) = delete; ///< Deleted copy assignment operator. - DALI_INTERNAL ModelNode& operator=(ModelNode&&) = delete; ///< Deleted move assignment operator. + DALI_INTERNAL ModelNode& operator=(ModelNode&&) = delete; ///< Deleted move assignment operator. private: ModelPrimitiveContainer mModelPrimitiveContainer; ///< List of model primitives BoneDataContainer mBoneDataContainer; + BlendShapeIndexMap mBlendShapeIndexMap; ///< Index of blend shape by name Dali::Texture mSpecularTexture; Dali::Texture mDiffuseTexture; float mIblScaleFactor{1.0f}; uint32_t mSpecularMipmapLevels{1u}; + + // Light + std::vector mLights; /// @endcond };