Mise à jour du dépôt en fonction du .gitignore

This commit is contained in:
Troispoils 2024-02-25 22:03:08 +01:00
parent 1f0f033fad
commit 4a59748e67
224 changed files with 6785 additions and 0 deletions

View file

@ -0,0 +1,61 @@
using Map3DRendering.Common;
using OpenTK.Graphics.OpenGL4;
using OpenTK.Mathematics;
namespace Map3DRendering {
public class AxesGizmo {
private Shader axesShader;
private int vao;
public AxesGizmo() {
// Initialisation du shader
axesShader = new Shader("Shaders/Gizmo/axes.vert", "Shaders/Gizmo/axes.frag");
// Configuration des données des axes (positions et couleurs)
float[] axesVertices = {
// Axe X, rouge
0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
// Axe Y, vert
0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
// Axe Z, bleu
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f,
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f
};
vao = GL.GenVertexArray();
int vbo = GL.GenBuffer();
GL.BindVertexArray(vao);
GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
GL.BufferData(BufferTarget.ArrayBuffer, axesVertices.Length * sizeof(float), axesVertices, BufferUsageHint.StaticDraw);
// Position attribute
GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 6 * sizeof(float), 0);
GL.EnableVertexAttribArray(0);
// Color attribute
GL.VertexAttribPointer(1, 3, VertexAttribPointerType.Float, false, 6 * sizeof(float), 3 * sizeof(float));
GL.EnableVertexAttribArray(1);
}
public void Render(int windowWidth, int windowHeight, Camera camera) {
int gizmoSize = 200; // Taille du gizmo en pixels
GL.Viewport(windowWidth - (gizmoSize + 50), windowHeight - (gizmoSize + 50), gizmoSize, gizmoSize);
Matrix4 gizmoProjection = Matrix4.CreateOrthographicOffCenter(-1f, 1f, -1f, 1f, 0, 1);
Matrix4 cameraRotation = camera.GetViewMatrix();
cameraRotation.Row3 = Vector4.UnitW; // Réinitialise la translation
axesShader.Use();
axesShader.SetMatrix4("view", cameraRotation);
axesShader.SetMatrix4("projection", gizmoProjection);
GL.BindVertexArray(vao);
GL.DrawArrays(PrimitiveType.Lines, 0, 6); // 6 points pour les 3 lignes des axes
GL.Viewport(0, 0, windowWidth, windowHeight); // Rétablissement du viewport principal
}
}
}