X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fmodel3d-view%2Fobj-loader.h;h=5f4662d7400497bddda791eff7575f2223044e97;hb=d00a250741411c386d988e7ac34525cf94a1918e;hp=b9d8a6aff7aa80fb9d5010a9b5fcc7022bceec10;hpb=941eb8eab76fca967bb8e21456179fc9b4eafea6;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/model3d-view/obj-loader.h b/dali-toolkit/internal/controls/model3d-view/obj-loader.h index b9d8a6a..5f4662d 100644 --- a/dali-toolkit/internal/controls/model3d-view/obj-loader.h +++ b/dali-toolkit/internal/controls/model3d-view/obj-loader.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_OBJ_LOADER_H__ -#define __DALI_TOOLKIT_INTERNAL_OBJ_LOADER_H__ +#ifndef DALI_TOOLKIT_INTERNAL_OBJ_LOADER_H +#define DALI_TOOLKIT_INTERNAL_OBJ_LOADER_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,11 +19,8 @@ */ // EXTERNAL INCLUDES -#include - -// INTERNAL INCLUDES -#include - +#include +#include namespace Dali { @@ -65,7 +62,7 @@ public: {} VertexExt( const Vector3& tangent, const Vector3& binormal ) - : tangent( tangent), bitangent (binormal) + : tangent( tangent), bitangent( binormal ) {} Vector3 tangent; @@ -76,48 +73,68 @@ public: { void Init() { - pointMin = Vector3(999999.9,999999.9,999999.9); - pointMax = Vector3(-999999.9,-999999.9,-999999.9); + pointMin = Vector3( std::numeric_limits::max(), std::numeric_limits::max(), std::numeric_limits::max() ); + pointMax = Vector3( std::numeric_limits::min(), std::numeric_limits::min(), std::numeric_limits::min() ); } - void ConsiderNewPointInVolume(const Vector3& position) + void ConsiderNewPointInVolume( const Vector3& position ) { - pointMin.x = std::min(position.x, pointMin.x); - pointMin.y = std::min(position.y, pointMin.y); - pointMin.z = std::min(position.z, pointMin.z); + pointMin.x = std::min( position.x, pointMin.x ); + pointMin.y = std::min( position.y, pointMin.y ); + pointMin.z = std::min( position.z, pointMin.z ); - pointMax.x = std::max(position.x, pointMax.x); - pointMax.y = std::max(position.y, pointMax.y); - pointMax.z = std::max(position.z, pointMax.z); + pointMax.x = std::max( position.x, pointMax.x ); + pointMax.y = std::max( position.y, pointMax.y ); + pointMax.z = std::max( position.z, pointMax.z ); } Vector3 pointMin; Vector3 pointMax; }; + //Defines bit masks to declare which properties are needed by anyone requesting a geometry. + enum ObjectProperties + { + TEXTURE_COORDINATES = 1 << 0, + TANGENTS = 1 << 1, + BINORMALS = 1 << 2 + }; + ObjLoader(); virtual ~ObjLoader(); bool IsSceneLoaded(); bool IsMaterialLoaded(); - bool Load(char* objBuffer, std::streampos fileSize, std::string& materialFile); + bool LoadObject( char* objBuffer, std::streampos fileSize ); - void LoadMaterial(char* objBuffer, std::streampos fileSize, std::string& texture0Url, std::string& texture1Url, std::string& texture2Url); + void LoadMaterial( char* objBuffer, std::streampos fileSize, std::string& diffuseTextureUrl, + std::string& normalTextureUrl, std::string& glossTextureUrl ); - Geometry CreateGeometry(Toolkit::Model3dView::IlluminationType illuminationType); + Geometry CreateGeometry( int objectProperties ); Vector3 GetCenter(); Vector3 GetSize(); void ClearArrays(); + bool IsTexturePresent(); + bool IsDiffuseMapPresent(); + bool IsNormalMapPresent(); + bool IsSpecularMapPresent(); + private: BoundingVolume mSceneAABB; bool mSceneLoaded; bool mMaterialLoaded; + bool mHasTexturePoints; + + //Material file properties. + bool mHasDiffuseMap; + bool mHasNormalMap; + bool mHasSpecularMap; Dali::Vector mPoints; Dali::Vector mTextures; @@ -127,19 +144,19 @@ private: Dali::Vector mBiTangents; Dali::Vector mTriangles; - void CalculateTangentArray(const Dali::Vector& vertex, - const Dali::Vector& texcoord, - Dali::Vector& triangle, - Dali::Vector& normal, - Dali::Vector& tangent); + void CalculateTangentArray( const Dali::Vector& vertex, + const Dali::Vector& texcoord, + Dali::Vector& triangle, + Dali::Vector& normal, + Dali::Vector& tangent ); - void CenterAndScale(bool center, Dali::Vector& points); + void CenterAndScale( bool center, Dali::Vector& points ); - void CreateGeometryArray(Dali::Vector & vertices, - Dali::Vector & textures, - Dali::Vector & verticesExt, - Dali::Vector & indices); + void CreateGeometryArray( Dali::Vector & vertices, + Dali::Vector & textures, + Dali::Vector & verticesExt, + Dali::Vector & indices ); }; @@ -154,4 +171,4 @@ private: -#endif // __DALI_TOOLKIT_INTERNAL_OBJ_LOADER_H__ +#endif // DALI_TOOLKIT_INTERNAL_OBJ_LOADER_H