From 28ff8e336691ccd3cc440e545e482948955b02cc Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Fri, 24 Mar 2017 19:35:46 +0100 Subject: [PATCH] Rename ModelDefinition fields for clarity --- .../cache/definitions/ModelDefinition.java | 96 +++++---- .../definitions/loaders/ModelLoader.java | 196 +++++++++--------- .../runelite/cache/models/ObjExporter.java | 14 +- .../net/runelite/modelviewer/ModelViewer.java | 34 +-- 4 files changed, 173 insertions(+), 167 deletions(-) diff --git a/cache/src/main/java/net/runelite/cache/definitions/ModelDefinition.java b/cache/src/main/java/net/runelite/cache/definitions/ModelDefinition.java index 96df44381e..ab2f429418 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/ModelDefinition.java +++ b/cache/src/main/java/net/runelite/cache/definitions/ModelDefinition.java @@ -6,76 +6,82 @@ import net.runelite.cache.models.VertexNormal; public class ModelDefinition { public int id; - public short[] texTriangleX; - public int[] vertexX; - public byte[] faceRenderPriorities; - public int[] vertexY; - public int triangleFaceCount; - public int[] trianglePointsX; - public int[] vertexSkins; - public int[] trianglePointsZ; - public int anInt2562; - public int[] trianglePointsY; + + public int vertexCount = 0; + public int[] vertexPositionsX; + public int[] vertexPositionsY; + public int[] vertexPositionsZ; + public transient VertexNormal[] vertexNormals; + + public int faceCount; + public int[] faceVertexIndices1; + public int[] faceVertexIndices2; + public int[] faceVertexIndices3; public byte[] faceAlphas; - public short aShort2565; - public byte[] faceRenderType; + public short[] faceColors; + public byte[] faceRenderPriorities; + public byte[] faceRenderTypes; + public transient FaceNormal[] faceNormals; + + public int textureTriangleCount; + public short[] textureTriangleVertexIndices1; + public short[] textureTriangleVertexIndices2; + public short[] textureTriangleVertexIndices3; + public short[] texturePrimaryColors; public short[] faceTextures; - public byte priority; - public int texTriangleCount; + public byte[] textureCoordinates; public byte[] textureRenderTypes; - public short[] texTriangleY; - public short[] texTriangleZ; + + public int[] vertexSkins; + public int[] triangleSkinValues; + + public byte priority; + public int shadowIntensity; + + public int anInt2562; + public short aShort2565; + boolean aBool2579; public short[] aShortArray2574; public short[] aShortArray2575; public short[] aShortArray2577; public short[] aShortArray2578; - boolean aBool2579; public byte[] aByteArray2580; - public byte[] textureCoords; - public int[] triangleSkinValues; public int[][] anIntArrayArray2583; public int[][] anIntArrayArray2584; public short[] aShortArray2586; public short aShort2589; - public short[] faceColor; - public int shadowIntensity; public int anInt2592; public int anInt2593; - public int[] vertexZ; public int anInt2595; - public int vertexCount = 0; - public short[] texturePrimaryColor; - public transient VertexNormal[] normals; - public transient FaceNormal[] faceNormals; public void computeNormals() { - if (this.normals != null) + if (this.vertexNormals != null) { return; } - this.normals = new VertexNormal[this.vertexCount]; + this.vertexNormals = new VertexNormal[this.vertexCount]; int var1; for (var1 = 0; var1 < this.vertexCount; ++var1) { - this.normals[var1] = new VertexNormal(); + this.vertexNormals[var1] = new VertexNormal(); } - for (var1 = 0; var1 < this.triangleFaceCount; ++var1) + for (var1 = 0; var1 < this.faceCount; ++var1) { - int vertexA = this.trianglePointsX[var1]; - int vertexB = this.trianglePointsY[var1]; - int vertexC = this.trianglePointsZ[var1]; + int vertexA = this.faceVertexIndices1[var1]; + int vertexB = this.faceVertexIndices2[var1]; + int vertexC = this.faceVertexIndices3[var1]; - int xA = this.vertexX[vertexB] - this.vertexX[vertexA]; - int yA = this.vertexY[vertexB] - this.vertexY[vertexA]; - int zA = this.vertexZ[vertexB] - this.vertexZ[vertexA]; + int xA = this.vertexPositionsX[vertexB] - this.vertexPositionsX[vertexA]; + int yA = this.vertexPositionsY[vertexB] - this.vertexPositionsY[vertexA]; + int zA = this.vertexPositionsZ[vertexB] - this.vertexPositionsZ[vertexA]; - int xB = this.vertexX[vertexC] - this.vertexX[vertexA]; - int yB = this.vertexY[vertexC] - this.vertexY[vertexA]; - int zB = this.vertexZ[vertexC] - this.vertexZ[vertexA]; + int xB = this.vertexPositionsX[vertexC] - this.vertexPositionsX[vertexA]; + int yB = this.vertexPositionsY[vertexC] - this.vertexPositionsY[vertexA]; + int zB = this.vertexPositionsZ[vertexC] - this.vertexPositionsZ[vertexA]; // Compute cross product int var11 = yA * zB - yB * zA; @@ -100,30 +106,30 @@ public class ModelDefinition var13 = var13 * 256 / length; byte var15; - if (this.faceRenderType == null) + if (this.faceRenderTypes == null) { var15 = 0; } else { - var15 = this.faceRenderType[var1]; + var15 = this.faceRenderTypes[var1]; } if (var15 == 0) { - VertexNormal var16 = this.normals[vertexA]; + VertexNormal var16 = this.vertexNormals[vertexA]; var16.x += var11; var16.y += var12; var16.z += var13; ++var16.magnitude; - var16 = this.normals[vertexB]; + var16 = this.vertexNormals[vertexB]; var16.x += var11; var16.y += var12; var16.z += var13; ++var16.magnitude; - var16 = this.normals[vertexC]; + var16 = this.vertexNormals[vertexC]; var16.x += var11; var16.y += var12; var16.z += var13; @@ -133,7 +139,7 @@ public class ModelDefinition { if (this.faceNormals == null) { - this.faceNormals = new FaceNormal[this.triangleFaceCount]; + this.faceNormals = new FaceNormal[this.faceCount]; } FaceNormal var17 = this.faceNormals[var1] = new FaceNormal(); diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java index 8ff94e7575..6e1b0edfeb 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java @@ -141,14 +141,14 @@ public class ModelLoader int var46 = position; position += var7 * 2 + var29 * 2; model.vertexCount = verticeCount; - model.triangleFaceCount = triangleCount; - model.texTriangleCount = textureTriangleCount; - model.vertexX = new int[verticeCount]; - model.vertexY = new int[verticeCount]; - model.vertexZ = new int[verticeCount]; - model.trianglePointsX = new int[triangleCount]; - model.trianglePointsY = new int[triangleCount]; - model.trianglePointsZ = new int[triangleCount]; + model.faceCount = triangleCount; + model.textureTriangleCount = textureTriangleCount; + model.vertexPositionsX = new int[verticeCount]; + model.vertexPositionsY = new int[verticeCount]; + model.vertexPositionsZ = new int[verticeCount]; + model.faceVertexIndices1 = new int[triangleCount]; + model.faceVertexIndices2 = new int[triangleCount]; + model.faceVertexIndices3 = new int[triangleCount]; if (modelVertexSkins == 1) { model.vertexSkins = new int[verticeCount]; @@ -156,7 +156,7 @@ public class ModelLoader if (var13 == 1) { - model.faceRenderType = new byte[triangleCount]; + model.faceRenderTypes = new byte[triangleCount]; } if (modelPriority == 255) @@ -185,15 +185,15 @@ public class ModelLoader if (modelTexture == 1 && textureTriangleCount > 0) { - model.textureCoords = new byte[triangleCount]; + model.textureCoordinates = new byte[triangleCount]; } - model.faceColor = new short[triangleCount]; + model.faceColors = new short[triangleCount]; if (textureTriangleCount > 0) { - model.texTriangleX = new short[textureTriangleCount]; - model.texTriangleY = new short[textureTriangleCount]; - model.texTriangleZ = new short[textureTriangleCount]; + model.textureTriangleVertexIndices1 = new short[textureTriangleCount]; + model.textureTriangleVertexIndices2 = new short[textureTriangleCount]; + model.textureTriangleVertexIndices3 = new short[textureTriangleCount]; if (var7 > 0) { model.aShortArray2574 = new short[var7]; @@ -206,7 +206,7 @@ public class ModelLoader if (var29 > 0) { - model.texturePrimaryColor = new short[var29]; + model.texturePrimaryColors = new short[var29]; } } @@ -245,12 +245,12 @@ public class ModelLoader vertexZOffset = var28.readShortSmart(); } - model.vertexX[point] = vX + vertexXOffset; - model.vertexY[point] = vY + vertexYOffset; - model.vertexZ[point] = vZ + vertexZOffset; - vX = model.vertexX[point]; - vY = model.vertexY[point]; - vZ = model.vertexZ[point]; + model.vertexPositionsX[point] = vX + vertexXOffset; + model.vertexPositionsY[point] = vY + vertexYOffset; + model.vertexPositionsZ[point] = vZ + vertexZOffset; + vX = model.vertexPositionsX[point]; + vY = model.vertexPositionsY[point]; + vZ = model.vertexPositionsZ[point]; if (modelVertexSkins == 1) { model.vertexSkins[point] = var6.readUnsignedByte(); @@ -267,10 +267,10 @@ public class ModelLoader for (point = 0; point < triangleCount; ++point) { - model.faceColor[point] = (short) var2.readUnsignedShort(); + model.faceColors[point] = (short) var2.readUnsignedShort(); if (var13 == 1) { - model.faceRenderType[point] = var24.readByte(); + model.faceRenderTypes[point] = var24.readByte(); } if (modelPriority == 255) @@ -293,9 +293,9 @@ public class ModelLoader model.faceTextures[point] = (short) (var55.readUnsignedShort() - 1); } - if (model.textureCoords != null && model.faceTextures[point] != -1) + if (model.textureCoordinates != null && model.faceTextures[point] != -1) { - model.textureCoords[point] = (byte) (var51.readUnsignedByte() - 1); + model.textureCoordinates[point] = (byte) (var51.readUnsignedByte() - 1); } } @@ -316,9 +316,9 @@ public class ModelLoader trianglePointY = var2.readShortSmart() + trianglePointX; trianglePointZ = var2.readShortSmart() + trianglePointY; vertexYOffset = trianglePointZ; - model.trianglePointsX[vertexZOffset] = trianglePointX; - model.trianglePointsY[vertexZOffset] = trianglePointY; - model.trianglePointsZ[vertexZOffset] = trianglePointZ; + model.faceVertexIndices1[vertexZOffset] = trianglePointX; + model.faceVertexIndices2[vertexZOffset] = trianglePointY; + model.faceVertexIndices3[vertexZOffset] = trianglePointZ; } if (numFaces == 2) @@ -326,9 +326,9 @@ public class ModelLoader trianglePointY = trianglePointZ; trianglePointZ = var2.readShortSmart() + vertexYOffset; vertexYOffset = trianglePointZ; - model.trianglePointsX[vertexZOffset] = trianglePointX; - model.trianglePointsY[vertexZOffset] = trianglePointY; - model.trianglePointsZ[vertexZOffset] = trianglePointZ; + model.faceVertexIndices1[vertexZOffset] = trianglePointX; + model.faceVertexIndices2[vertexZOffset] = trianglePointY; + model.faceVertexIndices3[vertexZOffset] = trianglePointZ; } if (numFaces == 3) @@ -336,9 +336,9 @@ public class ModelLoader trianglePointX = trianglePointZ; trianglePointZ = var2.readShortSmart() + vertexYOffset; vertexYOffset = trianglePointZ; - model.trianglePointsX[vertexZOffset] = trianglePointX; - model.trianglePointsY[vertexZOffset] = trianglePointY; - model.trianglePointsZ[vertexZOffset] = trianglePointZ; + model.faceVertexIndices1[vertexZOffset] = trianglePointX; + model.faceVertexIndices2[vertexZOffset] = trianglePointY; + model.faceVertexIndices3[vertexZOffset] = trianglePointZ; } if (numFaces == 4) @@ -348,9 +348,9 @@ public class ModelLoader trianglePointY = var57; trianglePointZ = var2.readShortSmart() + vertexYOffset; vertexYOffset = trianglePointZ; - model.trianglePointsX[vertexZOffset] = trianglePointX; - model.trianglePointsY[vertexZOffset] = var57; - model.trianglePointsZ[vertexZOffset] = trianglePointZ; + model.faceVertexIndices1[vertexZOffset] = trianglePointX; + model.faceVertexIndices2[vertexZOffset] = var57; + model.faceVertexIndices3[vertexZOffset] = trianglePointZ; } } @@ -366,16 +366,16 @@ public class ModelLoader int type = model.textureRenderTypes[texIndex] & 255; if (type == 0) { - model.texTriangleX[texIndex] = (short) var2.readUnsignedShort(); - model.texTriangleY[texIndex] = (short) var2.readUnsignedShort(); - model.texTriangleZ[texIndex] = (short) var2.readUnsignedShort(); + model.textureTriangleVertexIndices1[texIndex] = (short) var2.readUnsignedShort(); + model.textureTriangleVertexIndices2[texIndex] = (short) var2.readUnsignedShort(); + model.textureTriangleVertexIndices3[texIndex] = (short) var2.readUnsignedShort(); } if (type == 1) { - model.texTriangleX[texIndex] = (short) var24.readUnsignedShort(); - model.texTriangleY[texIndex] = (short) var24.readUnsignedShort(); - model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices1[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices2[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices3[texIndex] = (short) var24.readUnsignedShort(); model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort(); @@ -386,23 +386,23 @@ public class ModelLoader if (type == 2) { - model.texTriangleX[texIndex] = (short) var24.readUnsignedShort(); - model.texTriangleY[texIndex] = (short) var24.readUnsignedShort(); - model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices1[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices2[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices3[texIndex] = (short) var24.readUnsignedShort(); model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort(); model.aByteArray2580[texIndex] = var6.readByte(); model.aShortArray2578[texIndex] = (short) var55.readUnsignedShort(); - model.texturePrimaryColor[texIndex] = (short) var55.readUnsignedShort(); + model.texturePrimaryColors[texIndex] = (short) var55.readUnsignedShort(); } if (type == 3) { - model.texTriangleX[texIndex] = (short) var24.readUnsignedShort(); - model.texTriangleY[texIndex] = (short) var24.readUnsignedShort(); - model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices1[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices2[texIndex] = (short) var24.readUnsignedShort(); + model.textureTriangleVertexIndices3[texIndex] = (short) var24.readUnsignedShort(); model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort(); @@ -492,20 +492,20 @@ public class ModelLoader var46 += var20; int var10000 = var46 + var36; model.vertexCount = var10; - model.triangleFaceCount = var11; - model.texTriangleCount = var12; - model.vertexX = new int[var10]; - model.vertexY = new int[var10]; - model.vertexZ = new int[var10]; - model.trianglePointsX = new int[var11]; - model.trianglePointsY = new int[var11]; - model.trianglePointsZ = new int[var11]; + model.faceCount = var11; + model.textureTriangleCount = var12; + model.vertexPositionsX = new int[var10]; + model.vertexPositionsY = new int[var10]; + model.vertexPositionsZ = new int[var10]; + model.faceVertexIndices1 = new int[var11]; + model.faceVertexIndices2 = new int[var11]; + model.faceVertexIndices3 = new int[var11]; if (var12 > 0) { model.textureRenderTypes = new byte[var12]; - model.texTriangleX = new short[var12]; - model.texTriangleY = new short[var12]; - model.texTriangleZ = new short[var12]; + model.textureTriangleVertexIndices1 = new short[var12]; + model.textureTriangleVertexIndices2 = new short[var12]; + model.textureTriangleVertexIndices3 = new short[var12]; } if (var28 == 1) @@ -515,8 +515,8 @@ public class ModelLoader if (var13 == 1) { - model.faceRenderType = new byte[var11]; - model.textureCoords = new byte[var11]; + model.faceRenderTypes = new byte[var11]; + model.textureCoordinates = new byte[var11]; model.faceTextures = new short[var11]; } @@ -539,7 +539,7 @@ public class ModelLoader model.triangleSkinValues = new int[var11]; } - model.faceColor = new short[var11]; + model.faceColors = new short[var11]; var5.setOffset(var16); var39.setOffset(var34); var26.setOffset(var35); @@ -575,12 +575,12 @@ public class ModelLoader var7 = var9.readShortSmart(); } - model.vertexX[var18] = var41 + var31; - model.vertexY[var18] = var33 + var6; - model.vertexZ[var18] = var19 + var7; - var41 = model.vertexX[var18]; - var33 = model.vertexY[var18]; - var19 = model.vertexZ[var18]; + model.vertexPositionsX[var18] = var41 + var31; + model.vertexPositionsY[var18] = var33 + var6; + model.vertexPositionsZ[var18] = var19 + var7; + var41 = model.vertexPositionsX[var18]; + var33 = model.vertexPositionsY[var18]; + var19 = model.vertexPositionsZ[var18]; if (var28 == 1) { model.vertexSkins[var18] = var3.readUnsignedByte(); @@ -595,25 +595,25 @@ public class ModelLoader for (var18 = 0; var18 < var11; ++var18) { - model.faceColor[var18] = (short) var5.readUnsignedShort(); + model.faceColors[var18] = (short) var5.readUnsignedShort(); if (var13 == 1) { var8 = var39.readUnsignedByte(); if ((var8 & 1) == 1) { - model.faceRenderType[var18] = 1; + model.faceRenderTypes[var18] = 1; var2 = true; } else { - model.faceRenderType[var18] = 0; + model.faceRenderTypes[var18] = 0; } if ((var8 & 2) == 2) { - model.textureCoords[var18] = (byte) (var8 >> 2); - model.faceTextures[var18] = model.faceColor[var18]; - model.faceColor[var18] = 127; + model.textureCoordinates[var18] = (byte) (var8 >> 2); + model.faceTextures[var18] = model.faceColors[var18]; + model.faceColors[var18] = 127; if (model.faceTextures[var18] != -1) { var43 = true; @@ -621,7 +621,7 @@ public class ModelLoader } else { - model.textureCoords[var18] = -1; + model.textureCoordinates[var18] = -1; model.faceTextures[var18] = -1; } } @@ -660,9 +660,9 @@ public class ModelLoader var8 = var5.readShortSmart() + var18; var31 = var5.readShortSmart() + var8; var6 = var31; - model.trianglePointsX[var7] = var18; - model.trianglePointsY[var7] = var8; - model.trianglePointsZ[var7] = var31; + model.faceVertexIndices1[var7] = var18; + model.faceVertexIndices2[var7] = var8; + model.faceVertexIndices3[var7] = var31; } if (var22 == 2) @@ -670,9 +670,9 @@ public class ModelLoader var8 = var31; var31 = var5.readShortSmart() + var6; var6 = var31; - model.trianglePointsX[var7] = var18; - model.trianglePointsY[var7] = var8; - model.trianglePointsZ[var7] = var31; + model.faceVertexIndices1[var7] = var18; + model.faceVertexIndices2[var7] = var8; + model.faceVertexIndices3[var7] = var31; } if (var22 == 3) @@ -680,9 +680,9 @@ public class ModelLoader var18 = var31; var31 = var5.readShortSmart() + var6; var6 = var31; - model.trianglePointsX[var7] = var18; - model.trianglePointsY[var7] = var8; - model.trianglePointsZ[var7] = var31; + model.faceVertexIndices1[var7] = var18; + model.faceVertexIndices2[var7] = var8; + model.faceVertexIndices3[var7] = var31; } if (var22 == 4) @@ -692,9 +692,9 @@ public class ModelLoader var8 = var21; var31 = var5.readShortSmart() + var6; var6 = var31; - model.trianglePointsX[var7] = var18; - model.trianglePointsY[var7] = var21; - model.trianglePointsZ[var7] = var31; + model.faceVertexIndices1[var7] = var18; + model.faceVertexIndices2[var7] = var21; + model.faceVertexIndices3[var7] = var31; } } @@ -703,23 +703,23 @@ public class ModelLoader for (var7 = 0; var7 < var12; ++var7) { model.textureRenderTypes[var7] = 0; - model.texTriangleX[var7] = (short) var5.readUnsignedShort(); - model.texTriangleY[var7] = (short) var5.readUnsignedShort(); - model.texTriangleZ[var7] = (short) var5.readUnsignedShort(); + model.textureTriangleVertexIndices1[var7] = (short) var5.readUnsignedShort(); + model.textureTriangleVertexIndices2[var7] = (short) var5.readUnsignedShort(); + model.textureTriangleVertexIndices3[var7] = (short) var5.readUnsignedShort(); } - if (model.textureCoords != null) + if (model.textureCoordinates != null) { boolean var45 = false; for (var22 = 0; var22 < var11; ++var22) { - var21 = model.textureCoords[var22] & 255; + var21 = model.textureCoordinates[var22] & 255; if (var21 != 255) { - if ((model.texTriangleX[var21] & '\uffff') == model.trianglePointsX[var22] && (model.texTriangleY[var21] & '\uffff') == model.trianglePointsY[var22] && (model.texTriangleZ[var21] & '\uffff') == model.trianglePointsZ[var22]) + if ((model.textureTriangleVertexIndices1[var21] & '\uffff') == model.faceVertexIndices1[var22] && (model.textureTriangleVertexIndices2[var21] & '\uffff') == model.faceVertexIndices2[var22] && (model.textureTriangleVertexIndices3[var21] & '\uffff') == model.faceVertexIndices3[var22]) { - model.textureCoords[var22] = -1; + model.textureCoordinates[var22] = -1; } else { @@ -730,7 +730,7 @@ public class ModelLoader if (!var45) { - model.textureCoords = null; + model.textureCoordinates = null; } } @@ -741,7 +741,7 @@ public class ModelLoader if (!var2) { - model.faceRenderType = null; + model.faceRenderTypes = null; } } diff --git a/cache/src/main/java/net/runelite/cache/models/ObjExporter.java b/cache/src/main/java/net/runelite/cache/models/ObjExporter.java index f9af1ce37c..b4c8d9fc7c 100644 --- a/cache/src/main/java/net/runelite/cache/models/ObjExporter.java +++ b/cache/src/main/java/net/runelite/cache/models/ObjExporter.java @@ -49,19 +49,19 @@ public class ObjExporter for (int i = 0; i < model.vertexCount; ++i) { - objWriter.println(" v " + model.vertexX[i] + " " + model.vertexY[i] + " " + model.vertexZ[i]); + objWriter.println(" v " + model.vertexPositionsX[i] + " " + model.vertexPositionsY[i] + " " + model.vertexPositionsZ[i]); } - for (VertexNormal normal : model.normals) + for (VertexNormal normal : model.vertexNormals) { objWriter.println(" vn " + normal.x + " " + normal.y + " " + normal.z); } Set usedMaterials = new HashSet<>(); - for (int i = 0; i < model.triangleFaceCount; ++i) + for (int i = 0; i < model.faceCount; ++i) { - Color color = rs2hsbToColor(model.faceColor[i]); + Color color = rs2hsbToColor(model.faceColors[i]); int alpha = 0; @@ -73,9 +73,9 @@ public class ObjExporter int rgba = color.getRGB() << 8 | alpha; objWriter.println(" usemtl color" + rgba); - objWriter.println(" f " + (model.trianglePointsX[i] + 1) + "//" + (model.trianglePointsX[i] + 1) + - " " + (model.trianglePointsY[i] + 1) + "//" + (model.trianglePointsY[i] + 1) + - " " + (model.trianglePointsZ[i] + 1) + "//" + (model.trianglePointsZ[i] + 1)); + objWriter.println(" f " + (model.faceVertexIndices1[i] + 1) + "//" + (model.faceVertexIndices1[i] + 1) + + " " + (model.faceVertexIndices2[i] + 1) + "//" + (model.faceVertexIndices2[i] + 1) + + " " + (model.faceVertexIndices3[i] + 1) + "//" + (model.faceVertexIndices3[i] + 1)); objWriter.println(""); // Write material diff --git a/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java b/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java index 3d635184ad..f0c4ce9832 100644 --- a/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java +++ b/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java @@ -247,15 +247,15 @@ public class ModelViewer private static void drawModel(ModelDefinition md, short[] recolourToFind, short[] recolourToReplace) { - for (int i = 0; i < md.triangleFaceCount; ++i) + for (int i = 0; i < md.faceCount; ++i) { - int vertexA = md.trianglePointsX[i]; - int vertexB = md.trianglePointsY[i]; - int vertexC = md.trianglePointsZ[i]; + int vertexA = md.faceVertexIndices1[i]; + int vertexB = md.faceVertexIndices2[i]; + int vertexC = md.faceVertexIndices3[i]; - VertexNormal normalVertexA = md.normals[vertexA]; - VertexNormal normalVertexB = md.normals[vertexB]; - VertexNormal normalVertexC = md.normals[vertexC]; + VertexNormal normalVertexA = md.vertexNormals[vertexA]; + VertexNormal normalVertexB = md.vertexNormals[vertexB]; + VertexNormal normalVertexC = md.vertexNormals[vertexC]; Vector3f nA = normalVertexA.normalize(); Vector3f nB = normalVertexB.normalize(); @@ -266,19 +266,19 @@ public class ModelViewer nB.y = -nB.y; nC.y = -nC.y; - int vertexAx = md.vertexX[vertexA]; - int vertexAy = md.vertexY[vertexA]; - int vertexAz = md.vertexZ[vertexA]; + int vertexAx = md.vertexPositionsX[vertexA]; + int vertexAy = md.vertexPositionsY[vertexA]; + int vertexAz = md.vertexPositionsZ[vertexA]; - int vertexBx = md.vertexX[vertexB]; - int vertexBy = md.vertexY[vertexB]; - int vertexBz = md.vertexZ[vertexB]; + int vertexBx = md.vertexPositionsX[vertexB]; + int vertexBy = md.vertexPositionsY[vertexB]; + int vertexBz = md.vertexPositionsZ[vertexB]; - int vertexCx = md.vertexX[vertexC]; - int vertexCy = md.vertexY[vertexC]; - int vertexCz = md.vertexZ[vertexC]; + int vertexCx = md.vertexPositionsX[vertexC]; + int vertexCy = md.vertexPositionsY[vertexC]; + int vertexCz = md.vertexPositionsZ[vertexC]; - short hsb = md.faceColor[i]; + short hsb = md.faceColors[i]; // Check recolor if (recolourToFind != null)