@ -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 )