|
|
|
@ -90,7 +90,7 @@ public class Spline implements Savable { |
|
|
|
|
type = splineType; |
|
|
|
|
this.curveTension = curveTension; |
|
|
|
|
this.cycle = cycle; |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -116,7 +116,7 @@ public class Spline implements Savable { |
|
|
|
|
this.controlPoints.addAll(controlPoints); |
|
|
|
|
this.curveTension = curveTension; |
|
|
|
|
this.cycle = cycle; |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -144,7 +144,7 @@ public class Spline implements Savable { |
|
|
|
|
this.weights[i] = controlPoint.w; |
|
|
|
|
} |
|
|
|
|
CurveAndSurfaceMath.prepareNurbsKnots(knots, basisFunctionDegree); |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void initCatmullRomWayPoints(List<Vector3f> list) { |
|
|
|
@ -186,7 +186,7 @@ public class Spline implements Savable { |
|
|
|
|
controlPoints.add(controlPoints.get(0).clone()); |
|
|
|
|
} |
|
|
|
|
if (controlPoints.size() > 1) { |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -197,7 +197,7 @@ public class Spline implements Savable { |
|
|
|
|
public void removeControlPoint(Vector3f controlPoint) { |
|
|
|
|
controlPoints.remove(controlPoint); |
|
|
|
|
if (controlPoints.size() > 1) { |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -209,7 +209,7 @@ public class Spline implements Savable { |
|
|
|
|
/** |
|
|
|
|
* This method computes the total length of the curve. |
|
|
|
|
*/ |
|
|
|
|
private void computeTotalLentgh() { |
|
|
|
|
private void computeTotalLength() { |
|
|
|
|
totalLength = 0; |
|
|
|
|
float l = 0; |
|
|
|
|
if (segmentsLength == null) { |
|
|
|
@ -317,7 +317,7 @@ public class Spline implements Savable { |
|
|
|
|
public void setCurveTension(float curveTension) { |
|
|
|
|
this.curveTension = curveTension; |
|
|
|
|
if(type==SplineType.CatmullRom && !getControlPoints().isEmpty()) { |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -342,7 +342,7 @@ public class Spline implements Savable { |
|
|
|
|
controlPoints.add(controlPoints.get(0)); |
|
|
|
|
} |
|
|
|
|
this.cycle = cycle; |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} else { |
|
|
|
|
this.cycle = cycle; |
|
|
|
|
} |
|
|
|
@ -369,7 +369,7 @@ public class Spline implements Savable { |
|
|
|
|
*/ |
|
|
|
|
public void setType(SplineType type) { |
|
|
|
|
this.type = type; |
|
|
|
|
this.computeTotalLentgh(); |
|
|
|
|
this.computeTotalLength(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -435,10 +435,14 @@ public class Spline implements Savable { |
|
|
|
|
OutputCapsule oc = ex.getCapsule(this); |
|
|
|
|
oc.writeSavableArrayList((ArrayList) controlPoints, "controlPoints", null); |
|
|
|
|
oc.write(type, "type", SplineType.CatmullRom); |
|
|
|
|
float list[] = new float[segmentsLength.size()]; |
|
|
|
|
|
|
|
|
|
float list[] = null; |
|
|
|
|
if (segmentsLength != null) { |
|
|
|
|
list = new float[segmentsLength.size()]; |
|
|
|
|
for (int i = 0; i < segmentsLength.size(); i++) { |
|
|
|
|
list[i] = segmentsLength.get(i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
oc.write(list, "segmentsLength", null); |
|
|
|
|
|
|
|
|
|
oc.write(totalLength, "totalLength", 0); |
|
|
|
|