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