@ -3646,10 +3646,10 @@ void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color col  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  2 D  bounding  box  of  the  triangle   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Determine  the  minimum  and  maximum  x  and  y  coordinates  of  the  triangle  vertices   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMin  =  ( v1 . x  <  v2 . x ) ?  ( ( v1 . x  <  v3 . x ) ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  <  v3 . x ) ?  v2 . x  :  v3 . x ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMin  =  ( v1 . y  <  v2 . y ) ?  ( ( v1 . y  <  v3 . y ) ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  <  v3 . y ) ?  v2 . y  :  v3 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMax  =  ( v1 . x  >  v2 . x ) ?  ( ( v1 . x  >  v3 . x ) ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  >  v3 . x ) ?  v2 . x  :  v3 . x ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMax  =  ( v1 . y  >  v2 . y ) ?  ( ( v1 . y  >  v3 . y ) ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  >  v3 . y ) ?  v2 . y  :  v3 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMin  =  ( kt">int ) ( ( v1 . x  <  v2 . x ) ?  ( ( v1 . x  <  v3 . x )   ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  <  v3 . x )   ?  v2 . x  :  v3 . x)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMin  =  ( kt">int ) ( ( v1 . y  <  v2 . y ) ?  ( ( v1 . y  <  v3 . y )   ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  <  v3 . y )   ?  v2 . y  :  v3 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMax  =  ( kt">int ) ( ( v1 . x  >  v2 . x ) ?  ( ( v1 . x  >  v3 . x )   ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  >  v3 . x )   ?  v2 . x  :  v3 . x)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMax  =  ( kt">int ) ( ( v1 . y  >  v2 . y ) ?  ( ( v1 . y  >  v3 . y )   ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  >  v3 . y )   ?  v2 . y  :  v3 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Clamp  the  bounding  box  to  the  image  dimensions   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( xMin  <  0 )  xMin  =  0 ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3664,9 +3664,9 @@ void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color col  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Barycentric  interpolation  setup   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  step  increments  for  the  barycentric  coordinates   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1XStep  =  v3 . y  -  v2 . y ,  w1YStep  =  v2 . x  -  v3 . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2XStep  =  v1 . y  -  v3 . y ,  w2YStep  =  v3 . x  -  v1 . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3XStep  =  v2 . y  -  v1 . y ,  w3YStep  =  v1 . x  -  v2 . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1XStep  =  p">( int ) ( v3 . y  -  v2 . y)  ,  w1YStep  =  p">( int ) ( v2 . x  -  v3 . x)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2XStep  =  p">( int ) ( v1 . y  -  v3 . y)  ,  w2YStep  =  p">( int ) ( v3 . x  -  v1 . x)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3XStep  =  p">( int ) ( v2 . y  -  v1 . y)  ,  w3YStep  =  p">( int ) ( v1 . x  -  v2 . x)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  If  the  triangle  is  a  back  face ,  invert  the  steps   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( isBackFace )   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3677,9 +3677,9 @@ void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color col  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  initial  barycentric  coordinates  for  the  top - left  point  of  the  bounding  box   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1Row  =  ( xMin  -  v2 . x ) * w1XStep  +  w1YStep * ( yMin  -  v2 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2Row  =  ( xMin  -  v3 . x ) * w2XStep  +  w2YStep * ( yMin  -  v3 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3Row  =  ( xMin  -  v1 . x ) * w3XStep  +  w3YStep * ( yMin  -  v1 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1Row  =  ( kt">int ) ( ( xMin  -  v2 . x ) * w1XStep  +  w1YStep * ( yMin  -  v2 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2Row  =  ( kt">int ) ( ( xMin  -  v3 . x ) * w2XStep  +  w2YStep * ( yMin  -  v3 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3Row  =  ( kt">int ) ( ( xMin  -  v1 . x ) * w3XStep  +  w3YStep * ( yMin  -  v1 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Rasterization  loop   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Iterate  through  each  pixel  in  the  bounding  box   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3713,10 +3713,10 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  2 D  bounding  box  of  the  triangle   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Determine  the  minimum  and  maximum  x  and  y  coordinates  of  the  triangle  vertices   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMin  =  ( v1 . x  <  v2 . x ) ?  ( ( v1 . x  <  v3 . x ) ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  <  v3 . x ) ?  v2 . x  :  v3 . x ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMin  =  ( v1 . y  <  v2 . y ) ?  ( ( v1 . y  <  v3 . y ) ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  <  v3 . y ) ?  v2 . y  :  v3 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMax  =  ( v1 . x  >  v2 . x ) ?  ( ( v1 . x  >  v3 . x ) ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  >  v3 . x ) ?  v2 . x  :  v3 . x ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMax  =  ( v1 . y  >  v2 . y ) ?  ( ( v1 . y  >  v3 . y ) ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  >  v3 . y ) ?  v2 . y  :  v3 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMin  =  ( kt">int ) ( ( v1 . x  <  v2 . x ) ?  ( ( v1 . x  <  v3 . x ) ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  <  v3 . x ) ?  v2 . x  :  v3 . x)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMin  =  ( kt">int ) ( ( v1 . y  <  v2 . y ) ?  ( ( v1 . y  <  v3 . y ) ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  <  v3 . y ) ?  v2 . y  :  v3 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  xMax  =  ( kt">int ) ( ( v1 . x  >  v2 . x ) ?  ( ( v1 . x  >  v3 . x ) ?  v1 . x  :  v3 . x )  :  ( ( v2 . x  >  v3 . x ) ?  v2 . x  :  v3 . x)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  yMax  =  ( kt">int ) ( ( v1 . y  >  v2 . y ) ?  ( ( v1 . y  >  v3 . y ) ?  v1 . y  :  v3 . y )  :  ( ( v2 . y  >  v3 . y ) ?  v2 . y  :  v3 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Clamp  the  bounding  box  to  the  image  dimensions   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( xMin  <  0 )  xMin  =  0 ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3731,9 +3731,9 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Barycentric  interpolation  setup   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  step  increments  for  the  barycentric  coordinates   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1XStep  =  v3 . y  -  v2 . y ,  w1YStep  =  v2 . x  -  v3 . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2XStep  =  v1 . y  -  v3 . y ,  w2YStep  =  v3 . x  -  v1 . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3XStep  =  v2 . y  -  v1 . y ,  w3YStep  =  v1 . x  -  v2 . x ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1XStep  =  p">( int ) ( v3 . y  -  v2 . y)  ,  w1YStep  =  p">( int ) ( v2 . x  -  v3 . x)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2XStep  =  p">( int ) ( v1 . y  -  v3 . y)  ,  w2YStep  =  p">( int ) ( v3 . x  -  v1 . x)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3XStep  =  p">( int ) ( v2 . y  -  v1 . y)  ,  w3YStep  =  p">( int ) ( v1 . x  -  v2 . x)  ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  If  the  triangle  is  a  back  face ,  invert  the  steps   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( isBackFace )   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -3744,9 +3744,9 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  initial  barycentric  coordinates  for  the  top - left  point  of  the  bounding  box   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1Row  =  ( xMin  -  v2 . x ) * w1XStep  +  w1YStep * ( yMin  -  v2 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2Row  =  ( xMin  -  v3 . x ) * w2XStep  +  w2YStep * ( yMin  -  v3 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3Row  =  ( xMin  -  v1 . x ) * w3XStep  +  w3YStep * ( yMin  -  v1 . y ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w1Row  =  ( kt">int ) ( ( xMin  -  v2 . x ) * w1XStep  +  w1YStep * ( yMin  -  v2 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w2Row  =  ( kt">int ) ( ( xMin  -  v3 . x ) * w2XStep  +  w2YStep * ( yMin  -  v3 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  w3Row  =  ( kt">int ) ( ( xMin  -  v1 . x ) * w3XStep  +  w3YStep * ( yMin  -  v1 . y)  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Calculate  the  inverse  of  the  sum  of  the  barycentric  coordinates  for  normalization   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  NOTE  1 :  Here ,  we  act  as  if  we  multiply  by  255  the  reciprocal ,  which  avoids  additional   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -3799,9 +3799,9 @@ void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Draw  triangle  outline  within  an  image  
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  ImageDrawTriangleLines ( Image  * dst ,  Vector2  v1 ,  Vector2  v2 ,  Vector2  v3 ,  Color  color )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ImageDrawLine ( dst ,  v1 . x ,  v1 . y ,  v2 . x ,  v2 . y ,  color ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ImageDrawLine ( dst ,  v2 . x ,  v2 . y ,  v3 . x ,  v3 . y ,  color ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ImageDrawLine ( dst ,  v3 . x ,  v3 . y ,  v1 . x ,  v1 . y ,  color ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ImageDrawLine ( dst ,  p">( int ) v1 . x ,  ( int ) v1 . y ,  p">( int ) v2 . x ,  ( int ) v2 . y ,  color ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ImageDrawLine ( dst ,  p">( int ) v2 . x ,  ( int ) v2 . y ,  p">( int ) v3 . x ,  ( int ) v3 . y ,  color ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ImageDrawLine ( dst ,  p">( int ) v3 . x ,  ( int ) v3 . y ,  p">( int ) v1 . x ,  ( int ) v1 . y ,  color ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Draw  a  triangle  fan  defined  by  points  within  an  image  ( first  vertex  is  the  center )