add world interface
This commit is contained in:
@@ -2,16 +2,11 @@ package chess.view.DDDrender;
|
||||
|
||||
import static org.lwjgl.opengl.GL11.GL_UNSIGNED_INT;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.joml.Matrix4f;
|
||||
import org.joml.Vector2f;
|
||||
import org.joml.Vector3f;
|
||||
import org.lwjgl.opengl.GL30;
|
||||
|
||||
import chess.model.Color;
|
||||
import chess.model.Coordinate;
|
||||
import chess.model.Piece;
|
||||
import chess.view.DDDrender.loader.BoardModelLoader;
|
||||
import chess.view.DDDrender.opengl.VertexArray;
|
||||
import chess.view.DDDrender.shader.BoardShader;
|
||||
import chess.view.DDDrender.shader.PieceShader;
|
||||
@@ -21,15 +16,10 @@ public class Renderer {
|
||||
private BoardShader boardShader;
|
||||
private PieceShader pieceShader;
|
||||
private VertexArray boardVao;
|
||||
private final Piece3DModel models;
|
||||
|
||||
private static final Vector3f BLACK = new Vector3f(0.3f, 0.3f, 0.3f);
|
||||
private static final Vector3f WHITE = new Vector3f(1.0f, 1.0f, 1.0f);
|
||||
|
||||
public Renderer() {
|
||||
this.boardShader = new BoardShader();
|
||||
this.pieceShader = new PieceShader();
|
||||
this.models = new Piece3DModel();
|
||||
}
|
||||
|
||||
public void Init() {
|
||||
@@ -38,29 +28,21 @@ public class Renderer {
|
||||
this.boardVao = BoardModelLoader.GetBoardModel();
|
||||
}
|
||||
|
||||
public void RenderPiece(Piece piece, Coordinate pos) {
|
||||
try {
|
||||
DDDModel pieceModel = this.models.getModel(piece);
|
||||
Render(pieceModel, piece.getColor() == Color.White ? WHITE : BLACK, DDDPlacement.coordinates_to_vector(pos),
|
||||
piece.getColor() == Color.White ? 0.0f : 3.14f);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void Render(Camera cam) {
|
||||
public void Update(Camera cam) {
|
||||
this.boardShader.Start();
|
||||
this.boardShader.SetCamMatrix(cam);
|
||||
this.pieceShader.Start();
|
||||
this.pieceShader.SetCamMatrix(cam);
|
||||
}
|
||||
|
||||
public void RenderBoard() {
|
||||
RenderVao(this.boardShader, this.boardVao);
|
||||
}
|
||||
|
||||
public void Render(DDDModel model, Vector3f color, Vector2f position, float rotation) {
|
||||
Vector3f realPos = new Vector3f(position.x(), 0, position.y());
|
||||
public void Render(DDDModel model, Vector3f color, Vector3f position, float rotation) {
|
||||
this.pieceShader.Start();
|
||||
this.pieceShader.setModelColor(color);
|
||||
this.pieceShader.setModelTransform(new Matrix4f().translate(realPos).rotate(rotation, new Vector3f(0, 1, 0)));
|
||||
this.pieceShader.setModelTransform(new Matrix4f().translate(position).rotate(rotation, new Vector3f(0, 1, 0)));
|
||||
Render(model);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user