Parcourir la source

Spline: fix null access

lviguier il y a 5 mois
Parent
commit
b80cabbced
1 fichiers modifiés avec 16 ajouts et 14 suppressions
  1. 16 14
      hrt/prefab/l3d/Spline.hx

+ 16 - 14
hrt/prefab/l3d/Spline.hx

@@ -923,20 +923,22 @@ class Spline extends hrt.prefab.Object3D {
 
 		var lineWidth = 1;
 		var colliders : Array<h3d.col.Collider> = [];
-		for (sIdx in 1...samples.length) {
-			var col = new h3d.col.Bounds();
-			var s0 = samples[sIdx - 1];
-			col.addPoint(new h3d.col.Point(s0.pos.x - lineWidth, s0.pos.y, s0.pos.z));
-			col.addPoint(new h3d.col.Point(s0.pos.x + lineWidth, s0.pos.y, s0.pos.z));
-			col.addPoint(new h3d.col.Point(s0.pos.x, s0.pos.y - lineWidth, s0.pos.z));
-			col.addPoint(new h3d.col.Point(s0.pos.x, s0.pos.y + lineWidth, s0.pos.z));
-
-			var s1 = samples[sIdx];
-			col.addPoint(new h3d.col.Point(s1.pos.x - lineWidth, s1.pos.y, s1.pos.z));
-			col.addPoint(new h3d.col.Point(s1.pos.x + lineWidth, s1.pos.y, s1.pos.z));
-			col.addPoint(new h3d.col.Point(s1.pos.x, s1.pos.y - lineWidth, s1.pos.z));
-			col.addPoint(new h3d.col.Point(s1.pos.x, s1.pos.y + lineWidth, s1.pos.z));
-			colliders.push(col);
+		if (samples != null) {
+			for (sIdx in 1...samples.length) {
+				var col = new h3d.col.Bounds();
+				var s0 = samples[sIdx - 1];
+				col.addPoint(new h3d.col.Point(s0.pos.x - lineWidth, s0.pos.y, s0.pos.z));
+				col.addPoint(new h3d.col.Point(s0.pos.x + lineWidth, s0.pos.y, s0.pos.z));
+				col.addPoint(new h3d.col.Point(s0.pos.x, s0.pos.y - lineWidth, s0.pos.z));
+				col.addPoint(new h3d.col.Point(s0.pos.x, s0.pos.y + lineWidth, s0.pos.z));
+
+				var s1 = samples[sIdx];
+				col.addPoint(new h3d.col.Point(s1.pos.x - lineWidth, s1.pos.y, s1.pos.z));
+				col.addPoint(new h3d.col.Point(s1.pos.x + lineWidth, s1.pos.y, s1.pos.z));
+				col.addPoint(new h3d.col.Point(s1.pos.x, s1.pos.y - lineWidth, s1.pos.z));
+				col.addPoint(new h3d.col.Point(s1.pos.x, s1.pos.y + lineWidth, s1.pos.z));
+				colliders.push(col);
+			}
 		}
 
 		var col = new h3d.col.Collider.GroupCollider(colliders);