Mise à jour du dépôt en fonction du .gitignore
This commit is contained in:
parent
1f0f033fad
commit
4a59748e67
224 changed files with 6785 additions and 0 deletions
61
Map3DRendering/Gizmo/AxesGizmo.cs
Normal file
61
Map3DRendering/Gizmo/AxesGizmo.cs
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue