From d9e2c2a7c81b998eac8449bdcca89d98d4ce7a81 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Mon, 20 Jul 2015 01:16:53 +0200 Subject: [PATCH] Only get Fields to Interpolate in Interpolation implementations if not done before -> massive performance increase --- .../replaymod/interpolation/GenericLinearInterpolation.java | 6 ++++-- .../replaymod/interpolation/GenericSplineInterpolation.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericLinearInterpolation.java b/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericLinearInterpolation.java index 9d3f8cad..af3e9cbf 100755 --- a/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericLinearInterpolation.java +++ b/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericLinearInterpolation.java @@ -22,8 +22,10 @@ public class GenericLinearInterpolation implements Inte public void addPoint(T point) { points.add(point); - List fields = ReflectionUtils.getFieldsToInterpolate(point.getClass()); - this.fields = fields.toArray(new Field[fields.size()]); + if(fields == null) { + List fields = ReflectionUtils.getFieldsToInterpolate(point.getClass()); + this.fields = fields.toArray(new Field[fields.size()]); + } } @Override diff --git a/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericSplineInterpolation.java b/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericSplineInterpolation.java index 798aee5e..e222dc24 100755 --- a/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericSplineInterpolation.java +++ b/src/main/java/eu/crushedpixel/replaymod/interpolation/GenericSplineInterpolation.java @@ -22,8 +22,10 @@ public class GenericSplineInterpolation extends BasicSp public void addPoint(T point) { this.points.add(point); - List fields = ReflectionUtils.getFieldsToInterpolate(point.getClass()); - this.fields = fields.toArray(new Field[fields.size()]); + if(fields == null) { + List fields = ReflectionUtils.getFieldsToInterpolate(point.getClass()); + this.fields = fields.toArray(new Field[fields.size()]); + } } @Override