From f5bbe9d2dab65877d2b46fc541a0347240565d8d Mon Sep 17 00:00:00 2001 From: Chicken Bones Date: Tue, 10 Sep 2013 18:22:44 +1000 Subject: [PATCH] Optimised render transformations. Added documentation to ExtendedMOP.dist Added expand function to CCModel. --- codechicken/lib/raytracer/ExtendedMOP.java | 3 +++ codechicken/lib/render/CCModel.java | 11 +++++++++++ codechicken/lib/vec/TransformationList.java | 11 +++++++---- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/codechicken/lib/raytracer/ExtendedMOP.java b/codechicken/lib/raytracer/ExtendedMOP.java index 029e19e..ddff053 100644 --- a/codechicken/lib/raytracer/ExtendedMOP.java +++ b/codechicken/lib/raytracer/ExtendedMOP.java @@ -7,6 +7,9 @@ import net.minecraft.util.Vec3; public class ExtendedMOP extends MovingObjectPosition implements Comparable { public Object data; + /** + * The square distance from the start of the raytrace. + */ public double dist; public ExtendedMOP(Entity entity, Object data) diff --git a/codechicken/lib/render/CCModel.java b/codechicken/lib/render/CCModel.java index 8687cc9..57c4905 100644 --- a/codechicken/lib/render/CCModel.java +++ b/codechicken/lib/render/CCModel.java @@ -355,6 +355,17 @@ public class CCModel return this; } + public CCModel expand(int extraVerts) + { + int newLen = verts.length+extraVerts; + verts = Arrays.copyOf(verts, newLen); + if(normals != null) + normals = Arrays.copyOf(normals, newLen); + if(colours != null) + colours = Arrays.copyOf(colours, newLen); + return this; + } + public void render() { render(0, verts.length, null, null, null); diff --git a/codechicken/lib/vec/TransformationList.java b/codechicken/lib/vec/TransformationList.java index 92bbcf7..4b383ea 100644 --- a/codechicken/lib/vec/TransformationList.java +++ b/codechicken/lib/vec/TransformationList.java @@ -51,8 +51,8 @@ public class TransformationList extends Transformation if(mat != null) mat.apply(vec); else - for(Transformation t : transformations) - t.apply(vec); + for(int i = 0; i < transformations.size(); i++) + transformations.get(i).apply(vec); } @Override @@ -61,8 +61,8 @@ public class TransformationList extends Transformation if(mat != null) mat.applyN(normal); else - for(Transformation t : transformations) - t.applyN(normal); + for(int i = 0; i < transformations.size(); i++) + transformations.get(i).applyN(normal); } @Override @@ -129,6 +129,9 @@ public class TransformationList extends Transformation transformations = newList; mat = null; } + + if(transformations.size() > 3 && mat == null) + compile(); } @Override