|
|
@ -57,7 +57,7 @@ |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module specific Functions Declaration |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
o">// No private (static) functions in this module (.c file) |
|
|
|
k">static float EaseCubicInOut(float t, float b, float c, float d); // Cubic easing |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module Functions Definition |
|
|
@ -106,6 +106,13 @@ void DrawLineV(Vector2 startPos, Vector2 endPos, Color color) |
|
|
|
// Draw a line defining thickness |
|
|
|
void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color) |
|
|
|
{ |
|
|
|
if (startPos.x > endPos.x) |
|
|
|
{ |
|
|
|
Vector2 tempPos = startPos; |
|
|
|
startPos = endPos; |
|
|
|
endPos = tempPos; |
|
|
|
} |
|
|
|
|
|
|
|
float dx = endPos.x - startPos.x; |
|
|
|
float dy = endPos.y - startPos.y; |
|
|
|
|
|
|
@ -133,6 +140,27 @@ void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color) |
|
|
|
rlDisableTexture(); |
|
|
|
} |
|
|
|
|
|
|
|
// Draw line using cubic-bezier curves in-out |
|
|
|
void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color) |
|
|
|
{ |
|
|
|
#define LINE_DIVISIONS 24 // Bezier line divisions |
|
|
|
|
|
|
|
Vector2 previous = startPos; |
|
|
|
Vector2 current; |
|
|
|
|
|
|
|
for (int i = 1; i <= LINE_DIVISIONS; i++) |
|
|
|
{ |
|
|
|
// Cubic easing in-out |
|
|
|
// NOTE: Easing is calcutated only for y position value |
|
|
|
current.y = EaseCubicInOut(i, startPos.y, endPos.y - startPos.y, LINE_DIVISIONS); |
|
|
|
current.x = previous.x + (endPos.x - startPos.x)/LINE_DIVISIONS; |
|
|
|
|
|
|
|
DrawLineEx(previous, current, thick, color); |
|
|
|
|
|
|
|
previous = current; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Draw a color-filled circle |
|
|
|
void DrawCircle(int centerX, int centerY, float radius, Color color) |
|
|
|
{ |
|
|
@ -590,3 +618,15 @@ Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2) |
|
|
|
|
|
|
|
return retRec; |
|
|
|
} |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module specific Functions Definition |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
// Cubic easing in-out |
|
|
|
// NOTE: Required for DrawLineBezier() |
|
|
|
static float EaseCubicInOut(float t, float b, float c, float d) |
|
|
|
{ |
|
|
|
if ((t/=d/2) < 1) return (c/2*t*t*t + b); |
|
|
|
return (c/2*((t-=2)*t*t + 2) + b); |
|
|
|
} |