From bf07d17cece1421af6227a3e8c823aec58131b36 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 5 Jul 2022 00:50:04 +0200 Subject: [PATCH] REMOVED: example: core_quat_conversion This example requires a complete remake to be more clear. Also current quaternion maths could have issues. --- examples/core/core_quat_conversion.c | 135 ------------------------- examples/core/core_quat_conversion.png | Bin 16887 -> 0 bytes 2 files changed, 135 deletions(-) delete mode 100644 examples/core/core_quat_conversion.c delete mode 100644 examples/core/core_quat_conversion.png diff --git a/examples/core/core_quat_conversion.c b/examples/core/core_quat_conversion.c deleted file mode 100644 index a2cf93387..000000000 --- a/examples/core/core_quat_conversion.c +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - quat conversions -* -* Generally you should really stick to eulers OR quats... -* This tests that various conversions are equivalent. -* -* This example has been created using raylib 3.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Example contributed by Chris Camacho (@chriscamacho) and reviewed by Ramon Santamaria (@raysan5) -* -* Copyright (c) 2020-2021 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include "raymath.h" - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - quat conversions"); - - Camera3D camera = { 0 }; - camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - - // Load a cylinder model for testing - Model model = LoadModelFromMesh(GenMeshCylinder(0.2f, 1.0f, 32)); - - // Generic quaternion for operations - Quaternion q1 = { 0 }; - - // Transform matrices required to draw 4 cylinders - Matrix m1 = { 0 }; - Matrix m2 = { 0 }; - Matrix m3 = { 0 }; - Matrix m4 = { 0 }; - - // Generic vectors for rotations - Vector3 v1 = { 0 }; - Vector3 v2 = { 0 }; - - 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 - //-------------------------------------------------------------------------------------- - if (v2.x < 0) v2.x += PI*2; - if (v2.y < 0) v2.y += PI*2; - if (v2.z < 0) v2.z += PI*2; - - if (!IsKeyDown(KEY_SPACE)) - { - v1.x += 0.01f; - v1.y += 0.03f; - v1.z += 0.05f; - } - - if (v1.x > PI*2) v1.x -= PI*2; - if (v1.y > PI*2) v1.y -= PI*2; - if (v1.z > PI*2) v1.z -= PI*2; - - q1 = QuaternionFromEuler(v1.x, v1.y, v1.z); - m1 = MatrixRotateZYX(v1); - m2 = QuaternionToMatrix(q1); - - q1 = QuaternionFromMatrix(m1); - m3 = QuaternionToMatrix(q1); - - v2 = QuaternionToEuler(q1); // Angles returned in radians - - m4 = MatrixRotateZYX(v2); - //-------------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - model.transform = m1; - DrawModel(model, (Vector3){ -1, 0, 0 }, 1.0f, RED); - - model.transform = m2; - DrawModel(model, (Vector3){ 1, 0, 0 }, 1.0f, RED); - - model.transform = m3; - DrawModel(model, (Vector3){ 0, 0, 0 }, 1.0f, RED); - - model.transform = m4; - DrawModel(model, (Vector3){ 0, 0, -1 }, 1.0f, RED); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawText(TextFormat("%2.3f", v1.x), 20, 20, 20, (v1.x == v2.x)? GREEN: BLACK); - DrawText(TextFormat("%2.3f", v1.y), 20, 40, 20, (v1.y == v2.y)? GREEN: BLACK); - DrawText(TextFormat("%2.3f", v1.z), 20, 60, 20, (v1.z == v2.z)? GREEN: BLACK); - - DrawText(TextFormat("%2.3f", v2.x), 200, 20, 20, (v1.x == v2.x)? GREEN: BLACK); - DrawText(TextFormat("%2.3f", v2.y), 200, 40, 20, (v1.y == v2.y)? GREEN: BLACK); - DrawText(TextFormat("%2.3f", v2.z), 200, 60, 20, (v1.z == v2.z)? GREEN: BLACK); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadModel(model); // Unload model data (mesh and materials) - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/examples/core/core_quat_conversion.png b/examples/core/core_quat_conversion.png deleted file mode 100644 index d4a9d14f1f719f52fcb0f12e59a8b8c003656d3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16887 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 QB>30A@8CXP_l{lgzttnu00000