mirror of
https://github.com/BlueMap-Minecraft/BlueMap.git
synced 2024-11-13 22:25:57 +01:00
Use floats for model-positions instead of doubles
This commit is contained in:
parent
73a77e5e0e
commit
cc50e05262
@ -90,12 +90,12 @@ public BlockModelView rotate(float pitch, float yaw, float roll) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BlockModelView scale(double sx, double sy, double sz) {
|
||||
public BlockModelView scale(float sx, float sy, float sz) {
|
||||
hiresTile.scale(start, size, sx, sy, sz);
|
||||
return this;
|
||||
}
|
||||
|
||||
public BlockModelView translate(double dx, double dy, double dz) {
|
||||
public BlockModelView translate(float dx, float dy, float dz) {
|
||||
hiresTile.translate(start, size, dx, dy, dz);
|
||||
return this;
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ public class HiresTileModel {
|
||||
private int capacity;
|
||||
private int size;
|
||||
|
||||
private double[] position;
|
||||
private float[] position;
|
||||
private float[] color, uv, ao;
|
||||
private byte[] sunlight, blocklight;
|
||||
private int[] materialIndex, materialIndexSort, materialIndexSortSupport;
|
||||
@ -86,9 +86,9 @@ public int add(int count) {
|
||||
|
||||
public HiresTileModel setPositions(
|
||||
int face,
|
||||
double x1, double y1, double z1,
|
||||
double x2, double y2, double z2,
|
||||
double x3, double y3, double z3
|
||||
float x1, float y1, float z1,
|
||||
float x2, float y2, float z2,
|
||||
float x3, float y3, float z3
|
||||
){
|
||||
int index = face * FI_POSITION;
|
||||
|
||||
@ -247,9 +247,9 @@ public HiresTileModel rotateByQuaternion(
|
||||
pz = qw * z + qx * y - qy * x;
|
||||
pw = -qx * x - qy * y - qz * z;
|
||||
|
||||
position[index] = pw * -qx + px * qw - py * qz + pz * qy;
|
||||
position[index + 1] = pw * -qy + py * qw - pz * qx + px * qz;
|
||||
position[index + 2] = pw * -qz + pz * qw - px * qy + py * qx;
|
||||
position[index] = (float) (pw * -qx + px * qw - py * qz + pz * qy);
|
||||
position[index + 1] = (float) (pw * -qy + py * qw - pz * qx + px * qz);
|
||||
position[index + 2] = (float) (pw * -qz + pz * qw - px * qy + py * qx);
|
||||
}
|
||||
}
|
||||
|
||||
@ -258,7 +258,7 @@ public HiresTileModel rotateByQuaternion(
|
||||
|
||||
public HiresTileModel scale(
|
||||
int start, int count,
|
||||
double sx, double sy, double sz
|
||||
float sx, float sy, float sz
|
||||
) {
|
||||
int end = start + count, index;
|
||||
for (int face = start; face < end; face++) {
|
||||
@ -275,7 +275,7 @@ public HiresTileModel scale(
|
||||
|
||||
public HiresTileModel translate(
|
||||
int start, int count,
|
||||
double dx, double dy, double dz
|
||||
float dx, float dy, float dz
|
||||
) {
|
||||
int end = start + count, index;
|
||||
for (int face = start; face < end; face++) {
|
||||
@ -329,7 +329,7 @@ public HiresTileModel transform(
|
||||
float m30, float m31, float m32, float m33
|
||||
) {
|
||||
int end = start + count, index;
|
||||
double x, y, z;
|
||||
float x, y, z;
|
||||
for (int face = start; face < end; face++) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
index = face * FI_POSITION + i * 3;
|
||||
@ -358,7 +358,7 @@ public HiresTileModel clear() {
|
||||
|
||||
private void ensureCapacity(int count) {
|
||||
if (size + count > capacity){
|
||||
double[] _position = position;
|
||||
float[] _position = position;
|
||||
float[] _color = color, _uv = uv, _ao = ao;
|
||||
byte[] _sunlight = sunlight, _blocklight = blocklight;
|
||||
int[] _materialIndex = materialIndex;
|
||||
@ -381,7 +381,7 @@ private void setCapacity(int capacity) {
|
||||
this.capacity = capacity;
|
||||
|
||||
// attributes capacity * per-vertex * per-face
|
||||
position = new double [capacity * FI_POSITION];
|
||||
position = new float [capacity * FI_POSITION];
|
||||
uv = new float [capacity * FI_UV];
|
||||
ao = new float [capacity * FI_AO];
|
||||
|
||||
@ -645,7 +645,6 @@ private int compareMaterialIndex(int i1, int i2) {
|
||||
|
||||
private void swap(int face1, int face2) {
|
||||
int i, if1, if2, vi;
|
||||
double vd;
|
||||
float vf;
|
||||
byte vb;
|
||||
|
||||
@ -653,9 +652,9 @@ private void swap(int face1, int face2) {
|
||||
if1 = face1 * FI_POSITION;
|
||||
if2 = face2 * FI_POSITION;
|
||||
for (i = 0; i < FI_POSITION; i++){
|
||||
vd = position[if1 + i];
|
||||
vf = position[if1 + i];
|
||||
position[if1 + i] = position[if2 + i];
|
||||
position[if2 + i] = vd;
|
||||
position[if2 + i] = vf;
|
||||
}
|
||||
|
||||
//swap uv
|
||||
|
@ -259,7 +259,7 @@ private void createElementFace(Element element, Direction faceDir, VectorM3f c0,
|
||||
|
||||
// rotate uv's
|
||||
if (uvRotation != 0){
|
||||
uvRotation *= TrigMath.DEG_TO_RAD;
|
||||
uvRotation = (float)(uvRotation * TrigMath.DEG_TO_RAD);
|
||||
float cx = TrigMath.cos(uvRotation), cy = TrigMath.sin(uvRotation);
|
||||
for (VectorM2f uv : uvs) {
|
||||
uv.translate(-0.5f, -0.5f);
|
||||
|
Loading…
Reference in New Issue
Block a user