@ -142,8 +142,8 @@ void DrawPoint3D(Vector3 position, Color color)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlTranslatef ( position . x ,  position . y ,  position . z ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlBegin ( RL_LINES ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            rlColor4ub ( color . r ,  color . g ,  color . b ,  color . a ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            rlVertex3f ( 0.0 , 0.0 , 0.0 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            rlVertex3f ( 0.0 , 0.0 , 0.1 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            rlVertex3f ( 0.0f  ,   0.0f  ,   0.0f  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            rlVertex3f ( 0.0f  ,   0.0f  ,   0.1f  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlEnd ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    rlPopMatrix ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -863,7 +863,7 @@ Material *LoadMaterials(const char *fileName, int *materialCount)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Set  materials  shader  to  default  ( DIFFUSE ,  SPECULAR ,  NORMAL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( int  i  =  0 ;  i  <  count ;  i + + )  materials [ i ] . shader  =  GetShaderDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( unsigned   int  i  =  0 ;  i  <  count ;  i + + )  materials [ i ] . shader  =  GetShaderDefault ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    * materialCount  =  count ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  materials ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -998,7 +998,7 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    fseek ( iqmFile ,  iqm . ofs_frames ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    fread ( framedata ,  iqm . num_frames * iqm . num_framechannels * sizeof ( unsigned  short ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( int  a  =  0 ;  a  <  iqm . num_anims ;  a + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( unsigned   int  a  =  0 ;  a  <  iqm . num_anims ;  a + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        animations [ a ] . frameCount  =  anim [ a ] . num_frames ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        animations [ a ] . boneCount  =  iqm . num_poses ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1006,19 +1006,19 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        animations [ a ] . framePoses  =  RL_MALLOC ( anim [ a ] . num_frames * sizeof ( Transform  * ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / / animations [ a ] . framerate  =  anim . framerate ;      / /  TODO :  Use  framerate ?   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  j  =  0 ;  j  <  iqm . num_poses ;  j + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  j  =  0 ;  j  <  iqm . num_poses ;  j + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            strcpy ( animations [ a ] . bones [ j ] . name ,  " ANIMJOINTNAME " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            animations [ a ] . bones [ j ] . parent  =  poses [ j ] . parent ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  j  =  0 ;  j  <  anim [ a ] . num_frames ;  j + + )  animations [ a ] . framePoses [ j ]  =  RL_MALLOC ( iqm . num_poses * sizeof ( Transform ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  j  =  0 ;  j  <  anim [ a ] . num_frames ;  j + + )  animations [ a ] . framePoses [ j ]  =  RL_MALLOC ( iqm . num_poses * sizeof ( Transform ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  dcounter  =  anim [ a ] . first_frame * iqm . num_framechannels ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  frame  =  0 ;  frame  <  anim [ a ] . num_frames ;  frame + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  frame  =  0 ;  frame  <  anim [ a ] . num_frames ;  frame + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( int  i  =  0 ;  i  <  iqm . num_poses ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( unsigned   int  i  =  0 ;  i  <  iqm . num_poses ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                animations [ a ] . framePoses [ frame ] [ i ] . translation . x  =  poses [ i ] . channeloffset [ 0 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1105,7 +1105,7 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Build  frameposes   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  frame  =  0 ;  frame  <  anim [ a ] . num_frames ;  frame + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  frame  =  0 ;  frame  <  anim [ a ] . num_frames ;  frame + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( int  i  =  0 ;  i  <  animations [ a ] . boneCount ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -2458,10 +2458,10 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rota  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        Color  color  =  model . materials [ model . meshMaterial [ i ] ] . maps [ MAP_DIFFUSE ] . color ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        Color  colorTint  =  WHITE ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . r  =  ( ( ( float ) color . r / 255.0 ) * ( ( float ) tint . r / 255.0 ) ) * i">255  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . g  =  ( ( ( float ) color . g / 255.0 ) * ( ( float ) tint . g / 255.0 ) ) * i">255  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . b  =  ( ( ( float ) color . b / 255.0 ) * ( ( float ) tint . b / 255.0 ) ) * i">255  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . a  =  ( ( ( float ) color . a / 255.0 ) * ( ( float ) tint . a / 255.0 ) ) * i">255  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . r  =  ( kt">unsigned  char ) ( ( ( ( float ) color . r / 255.0 ) * ( ( float ) tint . r / 255.0 ) ) * f">255.0f )  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . g  =  ( kt">unsigned  char ) ( ( ( ( float ) color . g / 255.0 ) * ( ( float ) tint . g / 255.0 ) ) * f">255.0f )  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . b  =  ( kt">unsigned  char ) ( ( ( ( float ) color . b / 255.0 ) * ( ( float ) tint . b / 255.0 ) ) * f">255.0f )  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        colorTint . a  =  ( kt">unsigned  char ) ( ( ( ( float ) color . a / 255.0 ) * ( ( float ) tint . a / 255.0 ) ) * f">255.0f )  ;  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . materials [ model . meshMaterial [ i ] ] . maps [ MAP_DIFFUSE ] . color  =  colorTint ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rlDrawMesh ( model . meshes [ i ] ,  model . materials [ model . meshMaterial [ i ] ] ,  model . transform ) ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -2845,7 +2845,7 @@ static Model LoadOBJ(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( fileData  ! =  NULL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  dataSize  =  strlen ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        unsigned   int  dataSize  =  ( unsigned  int ) strlen ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        char  currentDir [ 1024 ]  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        strcpy ( currentDir ,  GetWorkingDirectory ( ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        chdir ( GetDirectoryPath ( fileName ) ) ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -2897,7 +2897,7 @@ static Model LoadOBJ(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            int  vtCount  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            int  vnCount  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( int  f  =  0 ;  f  <  attrib . num_faces ;  f + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( unsigned   int  f  =  0 ;  f  <  attrib . num_faces ;  f + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                / /  Get  indices  for  the  face   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                tinyobj_vertex_index_t  idx0  =  attrib . faces [ 3 * f  +  0 ] ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -2934,7 +2934,7 @@ static Model LoadOBJ(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Init  model  materials   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  m  =  0 ;  m  <  materialCount ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  m  =  0 ;  m  <  materialCount ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  Init  material  to  default   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  NOTE :  Uses  default  shader ,  only  MAP_DIFFUSE  supported   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -2970,18 +2970,18 @@ static Model LoadOBJ(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_DIFFUSE ] . texture  =  GetTextureDefault ( ) ;      / /  Get  default  texture ,  in  case  no  texture  is  defined   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( materials [ m ] . diffuse_texname  ! =  NULL )  model . materials [ m ] . maps [ MAP_DIFFUSE ] . texture  =  LoadTexture ( materials [ m ] . diffuse_texname ) ;   / / char  * diffuse_texname ;  / /  map_Kd   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_DIFFUSE ] . color  =  ( Color ) {  ( float ) ( materials [ m ] . diffuse [ 0 ] * 255.0f ) ,  ( float ) ( materials [ m ] . diffuse [ 1 ] * 255.0f ) ,  ( float ) ( materials [ m ] . diffuse [ 2 ] * 255.0f ) ,  255  } ;  / / float  diffuse [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_DIFFUSE ] . color  =  ( Color ) {  ( unsigned  char ) ( materials [ m ] . diffuse [ 0 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . diffuse [ 1 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . diffuse [ 2 ] * 255.0f ) ,  255  } ;  / / float  diffuse [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_DIFFUSE ] . value  =  0.0f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( materials [ m ] . specular_texname  ! =  NULL )  model . materials [ m ] . maps [ MAP_SPECULAR ] . texture  =  LoadTexture ( materials [ m ] . specular_texname ) ;   / / char  * specular_texname ;  / /  map_Ks   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_SPECULAR ] . color  =  ( Color ) {  ( float ) ( materials [ m ] . specular [ 0 ] * 255.0f ) ,  ( float ) ( materials [ m ] . specular [ 1 ] * 255.0f ) ,  ( float ) ( materials [ m ] . specular [ 2 ] * 255.0f ) ,  255  } ;  / / float  specular [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_SPECULAR ] . color  =  ( Color ) {  ( unsigned  char ) ( materials [ m ] . specular [ 0 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . specular [ 1 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . specular [ 2 ] * 255.0f ) ,  255  } ;  / / float  specular [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_SPECULAR ] . value  =  0.0f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( materials [ m ] . bump_texname  ! =  NULL )  model . materials [ m ] . maps [ MAP_NORMAL ] . texture  =  LoadTexture ( materials [ m ] . bump_texname ) ;   / / char  * bump_texname ;  / /  map_bump ,  bump   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_NORMAL ] . color  =  WHITE ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_NORMAL ] . value  =  materials [ m ] . shininess ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_EMISSION ] . color  =  ( Color ) {  ( float ) ( materials [ m ] . emission [ 0 ] * 255.0f ) ,  ( float ) ( materials [ m ] . emission [ 1 ] * 255.0f ) ,  ( float ) ( materials [ m ] . emission [ 2 ] * 255.0f ) ,  255  } ;  / / float  emission [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . materials [ m ] . maps [ MAP_EMISSION ] . color  =  ( Color ) {  ( unsigned  char ) ( materials [ m ] . emission [ 0 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . emission [ 1 ] * 255.0f ) ,  ( unsigned  char ) ( materials [ m ] . emission [ 2 ] * 255.0f ) ,  255  } ;  / / float  emission [ 3 ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			            if  ( materials [ m ] . displacement_texname  ! =  NULL )  model . materials [ m ] . maps [ MAP_HEIGHT ] . texture  =  LoadTexture ( materials [ m ] . displacement_texname ) ;   / / char  * displacement_texname ;  / /  disp   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3175,7 +3175,7 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  tcounter  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  i  =  imesh [ m ] . first_triangle ;  i  <  ( imesh [ m ] . first_triangle  +  imesh [ m ] . num_triangles ) ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  i  =  imesh [ m ] . first_triangle ;  i  <  ( imesh [ m ] . first_triangle  +  imesh [ m ] . num_triangles ) ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            / /  IQM  triangles  are  stored  counter  clockwise ,  but  raylib  sets  opengl  to  clockwise  drawing ,  so  we  swap  them  around   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            model . meshes [ m ] . indices [ tcounter  +  2 ]  =  tri [ i ] . vertex [ 0 ]  -  imesh [ m ] . first_vertex ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3190,7 +3190,7 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    fseek ( iqmFile ,  iqm . ofs_vertexarrays ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    fread ( va ,  iqm . num_vertexarrays * sizeof ( IQMVertexArray ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( int  i  =  0 ;  i  <  iqm . num_vertexarrays ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( unsigned   int  i  =  0 ;  i  <  iqm . num_vertexarrays ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        switch  ( va [ i ] . type )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3200,10 +3200,10 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fseek ( iqmFile ,  va [ i ] . offset ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fread ( vertex ,  iqm . num_vertexes * 3 * sizeof ( float ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( unsigned   int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    int  vCounter  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( int  i  =  imesh [ m ] . first_vertex * 3 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 3 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( unsigned   int  i  =  imesh [ m ] . first_vertex * 3 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 3 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . vertices [ vCounter ]  =  vertex [ i ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . animVertices [ vCounter ]  =  vertex [ i ] ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3217,10 +3217,10 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fseek ( iqmFile ,  va [ i ] . offset ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fread ( normal ,  iqm . num_vertexes * 3 * sizeof ( float ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( unsigned   int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    int  vCounter  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( int  i  =  imesh [ m ] . first_vertex * 3 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 3 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( unsigned   int  i  =  imesh [ m ] . first_vertex * 3 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 3 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . normals [ vCounter ]  =  normal [ i ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . animNormals [ vCounter ]  =  normal [ i ] ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3234,10 +3234,10 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fseek ( iqmFile ,  va [ i ] . offset ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fread ( text ,  iqm . num_vertexes * 2 * sizeof ( float ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( unsigned   int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    int  vCounter  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( int  i  =  imesh [ m ] . first_vertex * 2 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 2 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( unsigned   int  i  =  imesh [ m ] . first_vertex * 2 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 2 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . texcoords [ vCounter ]  =  text [ i ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        vCounter + + ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3250,10 +3250,10 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fseek ( iqmFile ,  va [ i ] . offset ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fread ( blendi ,  iqm . num_vertexes * 4 * sizeof ( char ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( unsigned   int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    int  boneCounter  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( int  i  =  imesh [ m ] . first_vertex * 4 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 4 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( unsigned   int  i  =  imesh [ m ] . first_vertex * 4 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 4 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . boneIds [ boneCounter ]  =  blendi [ i ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        boneCounter + + ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3266,10 +3266,10 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fseek ( iqmFile ,  va [ i ] . offset ,  SEEK_SET ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                fread ( blendw ,  iqm . num_vertexes * 4 * sizeof ( unsigned  char ) ,  1 ,  iqmFile ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( unsigned   int  m  =  0 ;  m  <  iqm . num_meshes ;  m + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    int  boneCounter  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( int  i  =  imesh [ m ] . first_vertex * 4 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 4 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    for  ( unsigned   int  i  =  imesh [ m ] . first_vertex * 4 ;  i  <  ( imesh [ m ] . first_vertex  +  imesh [ m ] . num_vertexes ) * 4 ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ m ] . boneWeights [ boneCounter ]  =  blendw [ i ] / 255.0f ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        boneCounter + + ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3288,7 +3288,7 @@ static Model LoadIQM(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    model . bones  =  RL_MALLOC ( iqm . num_joints * sizeof ( BoneInfo ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    model . bindPose  =  RL_MALLOC ( iqm . num_joints * sizeof ( Transform ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( int  i  =  0 ;  i  <  iqm . num_joints ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    for  ( unsigned   int  i  =  0 ;  i  <  iqm . num_joints ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Bones   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . bones [ i ] . parent  =  ijoint [ i ] . parent ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3460,17 +3460,17 @@ static Image LoadImageFromCgltfImage(cgltf_image *image, const char *texPath, Co  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( image - > buffer_view )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        unsigned  char  * data  =  RL_MALLOC ( image - > buffer_view - > size ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  n  =  image - > buffer_view - > offset ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  stride  =  image - > buffer_view - > stride  ?  image - > buffer_view - > stride  :  1 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  n  =  p">( int ) image - > buffer_view - > offset ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  stride  =  p">( int ) image - > buffer_view - > stride  ?  ( int ) image - > buffer_view - > stride  :  1 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  i  =  0 ;  i  <  image - > buffer_view - > size ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  i  =  0 ;  i  <  image - > buffer_view - > size ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            data [ i ]  =  ( ( unsigned  char  * ) image - > buffer_view - > buffer - > data ) [ n ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            n  + =  stride ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  width ,  height ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        unsigned  char  * raw  =  stbi_load_from_memory ( data ,  image - > buffer_view - > size ,  & width ,  & height ,  NULL ,  4 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        unsigned  char  * raw  =  stbi_load_from_memory ( data ,  p">( int ) image - > buffer_view - > size ,  & width ,  & height ,  NULL ,  4 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        free ( data ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        rimage . data  =  raw ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3511,12 +3511,12 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    # define LOAD_ACCESSOR(type, nbcomp, acc, dst) \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {  \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  n  =  0 ;  \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        type *  buf  =  ( type * ) acc - > buffer_view - > buffer - > data + acc - > buffer_view - > offset / sizeof ( type ) + acc - > offset / sizeof ( type ) ;  \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  k  =  0 ;  k  <  acc - > count ;  k + + )  { \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        type *  buf  =  ( type * ) acc - > buffer_view - > buffer - > data   +   acc - > buffer_view - > offset / sizeof ( type )   +   acc - > offset / sizeof ( type ) ;  \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  k  =  0 ;  k  <  acc - > count ;  k + + )  { \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( int  l  =  0 ;  l  <  nbcomp ;  l + + )  { \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                dst [ nbcomp * k + l ]  =  buf [ n + l ] ; \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                dst [ nbcomp * k   +   l ]  =  buf [ n   +   l ] ; \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            } \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            n  + =  acc - > stride / sizeof ( type ) ; \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            n  + =  p">( int ) ( acc - > stride / sizeof ( type)  ) ; \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        } \   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3544,12 +3544,12 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  primitivesCount  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  i  =  0 ;  i  <  data - > meshes_count ;  i + + )  primitivesCount  + =  ( int ) data - > meshes [ i ] . primitives_count ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  i  =  0 ;  i  <  data - > meshes_count ;  i + + )  primitivesCount  + =  ( int ) data - > meshes [ i ] . primitives_count ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  Process  glTF  data  and  map  to  model   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . meshCount  =  primitivesCount ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . meshes  =  RL_CALLOC ( model . meshCount ,  sizeof ( Mesh ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . materialCount  =  data - > materials_count  +  1 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . materialCount  =  p">( int ) data - > materials_count  +  1 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . materials  =  RL_MALLOC ( model . materialCount * sizeof ( Material ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        model . meshMaterial  =  RL_MALLOC ( model . meshCount * sizeof ( int ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3625,16 +3625,16 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        int  primitiveIndex  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( int  i  =  0 ;  i  <  data - > meshes_count ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        for  ( unsigned   int  i  =  0 ;  i  <  data - > meshes_count ;  i + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( int  p  =  0 ;  p  <  data - > meshes [ i ] . primitives_count ;  p + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            for  ( unsigned   int  p  =  0 ;  p  <  data - > meshes [ i ] . primitives_count ;  p + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			            {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( int  j  =  0 ;  j  <  data - > meshes [ i ] . primitives [ p ] . attributes_count ;  j + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                for  ( unsigned   int  j  =  0 ;  j  <  data - > meshes [ i ] . primitives [ p ] . attributes_count ;  j + + )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    if  ( data - > meshes [ i ] . primitives [ p ] . attributes [ j ] . type  = =  cgltf_attribute_type_position )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        cgltf_accessor  * acc  =  data - > meshes [ i ] . primitives [ p ] . attributes [ j ] . data ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ primitiveIndex ] . vertexCount  =  acc - > count ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ primitiveIndex ] . vertexCount  =  p">( int ) acc - > count ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ primitiveIndex ] . vertices  =  RL_MALLOC ( sizeof ( float ) * model . meshes [ primitiveIndex ] . vertexCount * 3 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        LOAD_ACCESSOR ( float ,  3 ,  acc ,  model . meshes [ primitiveIndex ] . vertices )   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3669,7 +3669,7 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    if  ( acc - > component_type  = =  cgltf_component_type_r_16u )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ primitiveIndex ] . triangleCount  =  acc - > count / 3 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ primitiveIndex ] . triangleCount  =  p">( int ) acc - > count / 3 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        model . meshes [ primitiveIndex ] . indices  =  RL_MALLOC ( sizeof ( unsigned  short ) * model . meshes [ primitiveIndex ] . triangleCount * 3 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                        LOAD_ACCESSOR ( unsigned  short ,  1 ,  acc ,  model . meshes [ primitiveIndex ] . indices )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    }   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3688,7 +3688,7 @@ static Model LoadGLTF(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			                if  ( data - > meshes [ i ] . primitives [ p ] . material )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    / /  Compute  the  offset   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    model . meshMaterial [ primitiveIndex ]  =  data - > meshes [ i ] . primitives [ p ] . material  -  data - > materials ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                    model . meshMaterial [ primitiveIndex ]  =  p">( int ) ( data - > meshes [ i ] . primitives [ p ] . material  -  data - > materials)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			                {