1 #ifndef DALI_TOOLKIT_MESH_VISUAL_PROPERTIES_H
2 #define DALI_TOOLKIT_MESH_VISUAL_PROPERTIES_H
5 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali-toolkit/public-api/toolkit-property-index-ranges.h>
29 * @addtogroup dali_toolkit_visuals
34 * @brief MeshVisual is to render a mesh using a .obj file, optionally with textures provided by a mtl file.
40 * @brief MeshVisual Property.
46 * @brief Enumeration for the instance of properties belonging to the MeshVisual.
52 * @brief The location of the ".obj" file.
53 * @details Name "objectUrl", type Property::STRING.
57 OBJECT_URL = VISUAL_PROPERTY_START_INDEX,
60 * @brief The location of the ".mtl" file.
61 * @details Name "materialUrl", type Property::STRING.
63 * @note Optional. If not specified, then a textureless object is assumed.
68 * @brief Path to the directory the textures (including gloss and normal) are stored in.
69 * @details Name "texturesPath", type Property::STRING.
71 * @note Mandatory if using material.
76 * @brief Sets the type of shading mode that the mesh will use.
77 * @details Name "shadingMode", type ShadingMode::Value (Property::INTEGER) or Property::STRING.
78 * If anything the specified shading mode requires is missing, a simpler mode that can be handled with what has been supplied will be used instead.
80 * @note Optional. If not specified, it will use the best it can support (will try ShadingMode::TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING first).
81 * @see ShadingMode::Value
86 * @brief Whether to use mipmaps for textures or not.
87 * @details Name "useMipmapping", type Property::BOOLEAN.
89 * @note Optional. If not specified, the default is true.
94 * @brief Whether to average normals at each point to smooth textures or not.
95 * @details Name "useSoftNormals", type Property::BOOLEAN.
97 * @note Optional. If not specified, the default is true.
102 * @brief The position, in stage space, of the point light that applies lighting to the model.
103 * @details Name "lightPosition", type Property::VECTOR3.
104 * This is based off the stage's dimensions, so using the width and height of the stage halved will correspond to the center,
105 * and using all zeroes will place the light at the top left corner.
107 * @note Optional. If not specified, the default is an offset outwards from the center of the screen.
112 } // namespace Property
115 * @brief The shading mode used by MeshVisual.
118 namespace ShadingMode
121 * @brief The shading mode used by MeshVisual.
126 TEXTURELESS_WITH_DIFFUSE_LIGHTING, ///< *Simplest*. One color that is lit by ambient and diffuse lighting. @SINCE_1_1.45
127 TEXTURED_WITH_SPECULAR_LIGHTING, ///< Uses only the visual image textures provided with specular lighting in addition to ambient and diffuse lighting. @SINCE_1_1.45
128 TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING ///< Uses all textures provided including a gloss, normal and texture map along with specular, ambient and diffuse lighting. @SINCE_1_1.45
131 } // namespace ShadingMode
133 } // namespace MeshVisual
139 } // namespace Toolkit
143 #endif // DALI_TOOLKIT_MESH_VISUAL_PROPERTIES_H