@ -92,9 +92,7 @@  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Defines  and  Macros  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# ifndef DEFAULT_MESH_VERTEX_BUFFERS  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define DEFAULT_MESH_VERTEX_BUFFERS    7     / /  Number of vertex buffers (VBO) per mesh   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  . . .  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Types  and  Structures  Definition  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -860,8 +858,21 @@ void UploadMesh(Mesh *mesh)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Unload  mesh  from  memory  ( RAM  and / or  VRAM )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  UnloadMesh ( Mesh  mesh )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Unload  rlgl  mesh  vboId  data   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    rlUnloadMesh ( mesh ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . vboId ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . vertices ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . texcoords ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . normals ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . colors ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . tangents ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . texcoords2 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . indices ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . animVertices ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . animNormals ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . boneWeights ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( mesh . boneIds ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Export  mesh  data  to  file  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1128,8 +1139,6 @@ Mesh GenMeshPoly(int sides, float radius)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( sides  <  3 )  return  mesh ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  vertexCount  =  sides * 3 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Vertices  definition   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1186,6 +1195,7 @@ Mesh GenMeshPoly(int sides, float radius)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( texcoords ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Upload  vertex  data  to  GPU  ( static  mesh )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  NOTE :  mesh . vboId  array  is  allocated  inside  rlLoadMesh ( )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    rlLoadMesh ( & mesh ,  false ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  mesh ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1195,7 +1205,6 @@ Mesh GenMeshPoly(int sides, float radius)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			Mesh  GenMeshPlane ( float  width ,  float  length ,  int  resX ,  int  resZ )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Mesh  mesh  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# define CUSTOM_MESH_GEN_PLANE  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(CUSTOM_MESH_GEN_PLANE)  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1329,7 +1338,6 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			Mesh  GenMeshCube ( float  width ,  float  height ,  float  length )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Mesh  mesh  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# define CUSTOM_MESH_GEN_CUBE  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(CUSTOM_MESH_GEN_CUBE)  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1498,8 +1506,6 @@ RLAPI Mesh GenMeshSphere(float radius, int rings, int slices)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( ( rings  > =  3 )  & &  ( slices  > =  3 ) )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        par_shapes_mesh  * sphere  =  par_shapes_create_parametric_sphere ( slices ,  rings ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        par_shapes_scale ( sphere ,  radius ,  radius ,  radius ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  NOTE :  Soft  normals  are  computed  internally   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1544,8 +1550,6 @@ RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( radius  <  0.0f )  radius  =  0.0f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        par_shapes_mesh  * sphere  =  par_shapes_create_hemisphere ( slices ,  rings ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        par_shapes_scale ( sphere ,  radius ,  radius ,  radius ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  NOTE :  Soft  normals  are  computed  internally   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1588,8 +1592,6 @@ Mesh GenMeshCylinder(float radius, float height, int slices)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( slices  > =  3 )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Instance  a  cylinder  that  sits  on  the  Z = 0  plane  using  the  given  tessellation   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  levels  across  the  UV  domain .   Think  of  " slices "  like  a  number  of  pizza   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  slices ,  and  " stacks "  like  a  number  of  stacked  rings .   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1653,8 +1655,6 @@ Mesh GenMeshTorus(float radius, float size, int radSeg, int sides)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( ( sides  > =  3 )  & &  ( radSeg  > =  3 ) )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( radius  >  1.0f )  radius  =  1.0f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        else  if  ( radius  <  0.1f )  radius  =  0.1f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1701,8 +1701,6 @@ Mesh GenMeshKnot(float radius, float size, int radSeg, int sides)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( ( sides  > =  3 )  & &  ( radSeg  > =  3 ) )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( radius  >  3.0f )  radius  =  3.0f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        else  if  ( radius  <  0.5f )  radius  =  0.5f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1747,7 +1745,6 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define GRAY_VALUE(c) ((c.r+c.g+c.b) / 3)   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Mesh  mesh  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  mapX  =  heightmap . width ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  mapZ  =  heightmap . height ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1883,7 +1880,6 @@ Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define COLOR_EQUAL(col1, col2) ((col1.r == col2.r)&&(col1.g == col2.g)&&(col1.b == col2.b)&&(col1.a == col2.a))   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Mesh  mesh  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    mesh . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Color  * pixels  =  LoadImageColors ( cubicmap ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -2842,7 +2838,6 @@ static Model LoadOBJ(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshes [ mi ] . vertices  =  ( float  * ) RL_CALLOC ( model . meshes [ mi ] . vertexCount * 3 ,  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshes [ mi ] . texcoords  =  ( float  * ) RL_CALLOC ( model . meshes [ mi ] . vertexCount * 2 ,  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshes [ mi ] . normals  =  ( float  * ) RL_CALLOC ( model . meshes [ mi ] . vertexCount * 3 ,  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshes [ mi ] . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshMaterial [ mi ]  =  mi ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3108,8 +3103,6 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  NOTE :  Animated  vertex  should  be  re - uploaded  to  GPU  ( if  not  using  GPU  skinning )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . meshes [ i ] . animVertices  =  RL_CALLOC ( model . meshes [ i ] . vertexCount * 3 ,  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . meshes [ i ] . animNormals  =  RL_CALLOC ( model . meshes [ i ] . vertexCount * 3 ,  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . meshes [ i ] . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Triangles  data  processing   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3726,10 +3719,7 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . boneCount  =  ( int ) data - > nodes_count ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . bones  =  RL_CALLOC ( model . boneCount ,  sizeof ( BoneInfo ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . bindPose  =  RL_CALLOC ( model . boneCount ,  sizeof ( Transform ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  i  =  0 ;  i  <  model . meshCount ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshes [ i ] . vboId  =  ( unsigned  int  * ) RL_CALLOC ( DEFAULT_MESH_VERTEX_BUFFERS ,  sizeof ( unsigned  int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			     
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned  int  j  =  0 ;  j  <  data - > nodes_count ;  j + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            strcpy ( model . bones [ j ] . name ,  data - > nodes [ j ] . name  = =  0  ?  " ANIMJOINT "  :  data - > nodes [ j ] . name ) ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3738,43 +3728,25 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			          
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned  int  i  =  0 ;  i  <  data - > nodes_count ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > nodes [ i ] . has_translation )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                memcpy ( & model . bindPose [ i ] . translation ,  data - > nodes [ i ] . translation ,  3  *  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                model . bindPose [ i ] . translation  =  Vector3Zero ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			              
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > nodes [ i ] . has_rotation )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                memcpy ( & model . bindPose [ i ] . rotation ,  data - > nodes [ i ] . rotation ,  4  *  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                model . bindPose [ i ] . rotation  =  QuaternionIdentity ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > nodes [ i ] . has_translation )  memcpy ( & model . bindPose [ i ] . translation ,  data - > nodes [ i ] . translation ,  3  *  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else  model . bindPose [ i ] . translation  =  Vector3Zero ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > nodes [ i ] . has_rotation )  memcpy ( & model . bindPose [ i ] . rotation ,  data - > nodes [ i ] . rotation ,  4  *  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else  model . bindPose [ i ] . rotation  =  QuaternionIdentity ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . bindPose [ i ] . rotation  =  QuaternionNormalize ( model . bindPose [ i ] . rotation ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			              
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > nodes [ i ] . has_scale )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                memcpy ( & model . bindPose [ i ] . scale ,  data - > nodes [ i ] . scale ,  3  *  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                model . bindPose [ i ] . scale  =  Vector3One ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > nodes [ i ] . has_scale )  memcpy ( & model . bindPose [ i ] . scale ,  data - > nodes [ i ] . scale ,  3  *  sizeof ( float ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            else  model . bindPose [ i ] . scale  =  Vector3One ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  i  =  0 ;  i  <  model . boneCount ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            Transform *   currentTransform  =  model . bindPose  +  i ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            BoneInfo *   currentBone  =  model . bones  +  i ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            Transform  * currentTransform  =  model . bindPose  +  i ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            BoneInfo  * currentBone  =  model . bones  +  i ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            int  root  =  currentBone - > parent ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( root  > =  model . boneCount )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                root  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            Transform *  parentTransform  =  model . bindPose  +  root ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( root  > =  model . boneCount )  root  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            Transform  * parentTransform  =  model . bindPose  +  root ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			              
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( currentBone - > parent  > =  0 )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3791,7 +3763,7 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            Color  tint  =  ( Color ) {  255 ,  255 ,  255 ,  255  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            const  char  * texPath  =  GetDirectoryPath ( fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / / Ensure  material  follows  raylib  support  for  PBR  ( metallic / roughness  flow )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /   Ensure  material  follows  raylib  support  for  PBR  ( metallic / roughness  flow )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( data - > materials [ i ] . has_pbr_metallic_roughness )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                tint . r  =  ( unsigned  char ) ( data - > materials [ i ] . pbr_metallic_roughness . base_color_factor [ 0 ]  *  255 ) ;