From 89698844a132321fb94402e20eb095cbd6462e78 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 4 Dec 2022 11:01:59 +0100 Subject: [PATCH] REVIEWED: Example: `textures_textured_curve` --- .../{roadTexture_01.png => road.png} | Bin examples/textures/textures_textured_curve.c | 288 ++++++++++-------- examples/textures/textures_textured_curve.png | Bin 21036 -> 47993 bytes 3 files changed, 153 insertions(+), 135 deletions(-) rename examples/textures/resources/{roadTexture_01.png => road.png} (100%) diff --git a/examples/textures/resources/roadTexture_01.png b/examples/textures/resources/road.png similarity index 100% rename from examples/textures/resources/roadTexture_01.png rename to examples/textures/resources/road.png diff --git a/examples/textures/textures_textured_curve.c b/examples/textures/textures_textured_curve.c index 1407f7388..276670972 100644 --- a/examples/textures/textures_textured_curve.c +++ b/examples/textures/textures_textured_curve.c @@ -2,145 +2,219 @@ * * raylib [textures] example - Draw a texture along a segmented curve * -* Example originally created with raylib 4.5 +* Example originally created with raylib 4.5-dev * * Example contributed by Jeffery Myers and reviewed by Ramon Santamaria (@raysan5) * * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software * -* Copyright (c) 2019-2022 Jeffery Myers and Ramon Santamaria (@raysan5) +* Copyright (c) 2022 Jeffery Myers and Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raylib.h" + #include "raymath.h" #include "rlgl.h" -Texture RoadTexture = { 0 }; +#include // Required for: powf() +#include // Required for: NULL -bool ShowCurve = false; +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static Texture texRoad = { 0 }; -float Width = 50; -int Segments = 24; +static bool showCurve = false; -Vector2 SP = { 0 }; -Vector2 SPTangent = { 0 }; +static float curveWidth = 50; +static int curveSegments = 24; -Vector2 EP = { 0 }; -Vector2 EPTangent = { 0 }; +static Vector2 curveStartPosition = { 0 }; +static Vector2 curveStartPositionTangent = { 0 }; -Vector2* Selected = NULL; +static Vector2 curveEndPosition = { 0 }; +static Vector2 curveEndPositionTangent = { 0 }; -void DrawCurve() +static Vector2 *curveSelectedPoint = NULL; + +//---------------------------------------------------------------------------------- +// Module Functions Declaration +//---------------------------------------------------------------------------------- +static void UpdateOptions(void); +static void UpdateCurve(void); +static void DrawCurve(void); +static void DrawTexturedCurve(void); + + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main() { - if (ShowCurve) - DrawLineBezierCubic(SP, EP, SPTangent, EPTangent, 2, BLUE); + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; - // draw the various control points and highlight where the mouse is - DrawLineV(SP, SPTangent, SKYBLUE); - DrawLineV(EP, EPTangent, PURPLE); - Vector2 mouse = GetMousePosition(); + SetConfigFlags(FLAG_VSYNC_HINT | FLAG_MSAA_4X_HINT); + InitWindow(screenWidth, screenHeight, "raylib [textures] examples - textured curve"); - if (CheckCollisionPointCircle(mouse, SP, 6)) - DrawCircleV(SP, 7, YELLOW); - DrawCircleV(SP, 5, RED); + // Load the road texture + texRoad = LoadTexture("resources/road.png"); + SetTextureFilter(texRoad, TEXTURE_FILTER_BILINEAR); - if (CheckCollisionPointCircle(mouse, SPTangent, 6)) - DrawCircleV(SPTangent, 7, YELLOW); - DrawCircleV(SPTangent, 5, MAROON); + // Setup the curve + curveStartPosition = (Vector2){ 80, 100 }; + curveStartPositionTangent = (Vector2){ 100, 300 }; - if (CheckCollisionPointCircle(mouse, EP, 6)) - DrawCircleV(EP, 7, YELLOW); - DrawCircleV(EP, 5, GREEN); + curveEndPosition = (Vector2){ 700, 350 }; + curveEndPositionTangent = (Vector2){ 600, 100 }; - if (CheckCollisionPointCircle(mouse, EPTangent, 6)) - DrawCircleV(EPTangent, 7, YELLOW); - DrawCircleV(EPTangent, 5, DARKGREEN); + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCurve(); + UpdateOptions(); + + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawTexturedCurve(); + DrawCurve(); + + DrawText("Drag points to move curve, press SPACE to show/hide base curve", 10, 10, 10, DARKGRAY); + DrawText(TextFormat("Curve width: %2.0f (Use + and - to adjust)", curveWidth), 10, 30, 10, DARKGRAY); + DrawText(TextFormat("Curve segments: %d (Use LEFT and RIGHT to adjust)", curveSegments), 10, 50, 10, DARKGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texRoad); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; } -void EditCurve() +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- +static void DrawCurve(void) { - // if the mouse is not down, we are not editing the curve so clear the selection + if (showCurve) DrawLineBezierCubic(curveStartPosition, curveEndPosition, curveStartPositionTangent, curveEndPositionTangent, 2, BLUE); + + // Draw the various control points and highlight where the mouse is + DrawLineV(curveStartPosition, curveStartPositionTangent, SKYBLUE); + DrawLineV(curveEndPosition, curveEndPositionTangent, PURPLE); + Vector2 mouse = GetMousePosition(); + + if (CheckCollisionPointCircle(mouse, curveStartPosition, 6)) DrawCircleV(curveStartPosition, 7, YELLOW); + DrawCircleV(curveStartPosition, 5, RED); + + if (CheckCollisionPointCircle(mouse, curveStartPositionTangent, 6)) DrawCircleV(curveStartPositionTangent, 7, YELLOW); + DrawCircleV(curveStartPositionTangent, 5, MAROON); + + if (CheckCollisionPointCircle(mouse, curveEndPosition, 6)) DrawCircleV(curveEndPosition, 7, YELLOW); + DrawCircleV(curveEndPosition, 5, GREEN); + + if (CheckCollisionPointCircle(mouse, curveEndPositionTangent, 6)) DrawCircleV(curveEndPositionTangent, 7, YELLOW); + DrawCircleV(curveEndPositionTangent, 5, DARKGREEN); +} + +static void UpdateCurve(void) +{ + // If the mouse is not down, we are not editing the curve so clear the selection if (!IsMouseButtonDown(MOUSE_LEFT_BUTTON)) { - Selected = NULL; + curveSelectedPoint = NULL; return; } - // if a point was selected, move it - if (Selected) + // If a point was selected, move it + if (curveSelectedPoint) { - *Selected = Vector2Add(*Selected, GetMouseDelta()); + *curveSelectedPoint = Vector2Add(*curveSelectedPoint, GetMouseDelta()); return; } - // the mouse is down, and nothing was selected, so see if anything was picked + // The mouse is down, and nothing was selected, so see if anything was picked Vector2 mouse = GetMousePosition(); - if (CheckCollisionPointCircle(mouse, SP, 6)) - Selected = &SP; - else if (CheckCollisionPointCircle(mouse, SPTangent, 6)) - Selected = &SPTangent; - else if (CheckCollisionPointCircle(mouse, EP, 6)) - Selected = &EP; - else if (CheckCollisionPointCircle(mouse, EPTangent, 6)) - Selected = &EPTangent; + if (CheckCollisionPointCircle(mouse, curveStartPosition, 6)) curveSelectedPoint = &curveStartPosition; + else if (CheckCollisionPointCircle(mouse, curveStartPositionTangent, 6)) curveSelectedPoint = &curveStartPositionTangent; + else if (CheckCollisionPointCircle(mouse, curveEndPosition, 6)) curveSelectedPoint = &curveEndPosition; + else if (CheckCollisionPointCircle(mouse, curveEndPositionTangent, 6)) curveSelectedPoint = &curveEndPositionTangent; } -void DrawTexturedCurve() +static void DrawTexturedCurve(void) { - const float step = 1.0f / Segments; + const float step = 1.0f/curveSegments; - Vector2 previous = SP; + Vector2 previous = curveStartPosition; Vector2 previousTangent = { 0 }; float previousV = 0; - // we can't compute a tangent for the first point, so we need to reuse the tangent from the first segment + // We can't compute a tangent for the first point, so we need to reuse the tangent from the first segment bool tangentSet = false; Vector2 current = { 0 }; float t = 0.0f; - for (int i = 1; i <= Segments; i++) + for (int i = 1; i <= curveSegments; i++) { - // segment the curve - t = step * i; + // Segment the curve + t = step*i; float a = powf(1 - t, 3); - float b = 3 * powf(1 - t, 2) * t; - float c = 3 * (1 - t) * powf(t, 2); + float b = 3*powf(1 - t, 2)*t; + float c = 3*(1 - t)*powf(t, 2); float d = powf(t, 3); - // compute the endpoint for this segment - current.y = a * SP.y + b * SPTangent.y + c * EPTangent.y + d * EP.y; - current.x = a * SP.x + b * SPTangent.x + c * EPTangent.x + d * EP.x; + // Compute the endpoint for this segment + current.y = a*curveStartPosition.y + b*curveStartPositionTangent.y + c*curveEndPositionTangent.y + d*curveEndPosition.y; + current.x = a*curveStartPosition.x + b*curveStartPositionTangent.x + c*curveEndPositionTangent.x + d*curveEndPosition.x; - // vector from previous to current + // Vector from previous to current Vector2 delta = { current.x - previous.x, current.y - previous.y }; - // the right hand normal to the delta vector + // The right hand normal to the delta vector Vector2 normal = Vector2Normalize((Vector2){ -delta.y, delta.x }); - // the v texture coordinate of the segment (add up the length of all the segments so far) + // The v texture coordinate of the segment (add up the length of all the segments so far) float v = previousV + Vector2Length(delta); - // make sure the start point has a normal + // Make sure the start point has a normal if (!tangentSet) { previousTangent = normal; tangentSet = true; } - // extend out the normals from the previous and current points to get the quad for this segment - Vector2 prevPosNormal = Vector2Add(previous, Vector2Scale(previousTangent, Width)); - Vector2 prevNegNormal = Vector2Add(previous, Vector2Scale(previousTangent, -Width)); + // Extend out the normals from the previous and current points to get the quad for this segment + Vector2 prevPosNormal = Vector2Add(previous, Vector2Scale(previousTangent, curveWidth)); + Vector2 prevNegNormal = Vector2Add(previous, Vector2Scale(previousTangent, -curveWidth)); - Vector2 currentPosNormal = Vector2Add(current, Vector2Scale(normal, Width)); - Vector2 currentNegNormal = Vector2Add(current, Vector2Scale(normal, -Width)); + Vector2 currentPosNormal = Vector2Add(current, Vector2Scale(normal, curveWidth)); + Vector2 currentNegNormal = Vector2Add(current, Vector2Scale(normal, -curveWidth)); - // draw the segment as a quad - rlSetTexture(RoadTexture.id); + // Draw the segment as a quad + rlSetTexture(texRoad.id); rlBegin(RL_QUADS); rlColor4ub(255,255,255,255); @@ -160,82 +234,26 @@ void DrawTexturedCurve() rlEnd(); - // the current step is the start of the next step + // The current step is the start of the next step previous = current; previousTangent = normal; previousV = v; } } -void UpdateOptions() +static void UpdateOptions(void) { - if (IsKeyPressed(KEY_SPACE)) - ShowCurve = !ShowCurve; + if (IsKeyPressed(KEY_SPACE)) showCurve = !showCurve; - // width - if (IsKeyPressed(KEY_EQUAL)) - Width += 2; + // Update with + if (IsKeyPressed(KEY_EQUAL)) curveWidth += 2; + if (IsKeyPressed(KEY_MINUS)) curveWidth -= 2; - if (IsKeyPressed(KEY_MINUS)) - Width -= 2; + if (curveWidth < 2) curveWidth = 2; - if (Width < 2) - Width = 2; + // Update segments + if (IsKeyPressed(KEY_LEFT)) curveSegments -= 2; + if (IsKeyPressed(KEY_RIGHT)) curveSegments += 2; - // segments - - if (IsKeyPressed(KEY_LEFT_BRACKET)) - Segments -= 2; - - if (IsKeyPressed(KEY_RIGHT_BRACKET)) - Segments += 2; - - if (Segments < 2) - Segments = 2; + if (curveSegments < 2) curveSegments = 2; } - -int main () -{ - // set up the window - SetConfigFlags(FLAG_VSYNC_HINT); - InitWindow(1280, 800, "raylib [textures] examples - textured curve"); - SetTargetFPS(144); - - // load the road texture - RoadTexture = LoadTexture("resources/roadTexture_01.png"); - - // setup the curve - SP = (Vector2){ 80, 400 }; - SPTangent = (Vector2){ 600, 100 }; - - EP = (Vector2){ 1200, 400 }; - EPTangent = (Vector2){ 600, 700 }; - - // game loop - while (!WindowShouldClose()) - { - EditCurve(); - UpdateOptions(); - - BeginDrawing(); - - ClearBackground(BLACK); - - DrawTexturedCurve(); - DrawCurve(); - - DrawText("Drag points to move curve, press space to show/hide base curve", 10, 0, 20, WHITE); - DrawText(TextFormat("Width %2.0f + and - to adjust", Width), 10, 20, 20, WHITE); - DrawText(TextFormat("Segments %d [ and ] to adjust", Segments), 10, 40, 20, WHITE); - DrawFPS(10, 60); - - EndDrawing(); - } - - // cleanup - UnloadTexture(RoadTexture); - CloseWindow(); - return 0; -} - - \ No newline at end of file diff --git a/examples/textures/textures_textured_curve.png b/examples/textures/textures_textured_curve.png index 1f45e8d2544ac297ea274c953ff74a2007432b4f..6d5efacb6c563305ee76169643fe9780eb959c10 100644 GIT binary patch literal 47993 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 bFq^~G`NAeyg|lH8>gVu5!vh)GwBY{>Js&=-