Project Loose is altering the structure of the output curves. Here are 4 examples (file: projectLooseBug.3dm):
1) The projection of a polycrv with two segments (deg3/8 and deg1/2) is exploded and deg 1/2 curve is rebuilt to deg3/4.
//parent
Geometry:
Valid curve.
Closed polycurve with 2 curve segments.
Segment 1:
Open NURBS curve
start = (-0.580,0.275,0.000)
end = (-0.584,1.204,0.000)
degree = 3
control points: non-rational, count=8
knots: uniform (delta=1.000), domain = 1.000 to 6.000
clamped at start and end
Segment 2:
Line
start = (-0.584,1.204,0.000)
end = (-0.580,0.275,0.000)
domain = 6.000 to 6.929
line length = 0.929
//children
Geometry:
Valid curve.
Open NURBS curve
start = (-0.580,0.275,8.817)
end = (-0.584,1.204,8.814)
degree = 3
control points: non-rational, count=8
knots: uniform (delta=1.000), domain = 1.000 to 6.000
clamped at start and end
Geometry:
Valid curve.
Open NURBS curve (SubD friendly)
start = (-0.584,1.204,8.814)
end = (-0.580,0.275,8.817)
degree = 3
control points: non-rational, count=4
knots: uniform (delta=0.929), domain = 6.000 to 6.929
clamped at start and end
2) The projection of a polycrv with two segments (deg3/8 and deg3/5) is exploded, degree and point counts are unchanged.
//parent
Geometry:
Valid curve.
Closed polycurve with 2 curve segments.
Segment 1:
Open NURBS curve
start = (1.257,1.204,0.000)
end = (1.257,0.275,0.000)
degree = 3
control points: non-rational, count=5
knots: uniform (delta=0.500), domain = 0.000 to 1.000
clamped at start and end
Segment 2:
Open NURBS curve
start = (1.257,0.275,0.000)
end = (1.257,1.204,0.000)
degree = 3
control points: non-rational, count=8
knots: uniform (delta=1.000), domain = 1.000 to 6.000
clamped at start and end
//children
Geometry:
Valid curve.
Open NURBS curve
start = (1.257,1.204,6.382)
end = (1.257,0.275,6.382)
degree = 3
control points: non-rational, count=5
knots: uniform (delta=0.500), domain = 0.000 to 1.000
clamped at start and end
Geometry:
Valid curve.
Open NURBS curve
start = (1.257,0.275,6.382)
end = (1.257,1.204,6.382)
degree = 3
control points: non-rational, count=8
knots: uniform (delta=1.000), domain = 1.000 to 6.000
clamped at start and end
3) The projection of a polycrv with two segments (deg3/8 and deg3/5) with continuity closer to G1 than G0 results in a single non-uniform deg3/12 curve that is not smooth(?!?) and will explode into two curves(?!?).
//parent
Geometry:
Valid curve.
Closed polycurve with 2 curve segments.
Segment 1:
Open NURBS curve
start = (-0.617,-0.241,0.000)
end = (-0.617,-1.170,0.000)
degree = 3
control points: non-rational, count=5
knots: uniform (delta=0.500), domain = 0.000 to 1.000
clamped at start and end
Segment 2:
Open NURBS curve
start = (-0.617,-1.170,0.000)
end = (-0.617,-0.241,0.000)
degree = 3
control points: non-rational, count=8
knots: uniform (delta=1.000), domain = 1.000 to 6.000
clamped at start and end
//child
Geometry:
Valid curve.
Closed NURBS curve
start = (-0.617,-0.241,5.064)
end = (-0.617,-0.241,5.064)
degree = 3
control points: non-rational, count=12 (1 duplicate)
knots: non-uniform, domain = 0.000 to 6.000
clamped at start and end
Curve is not smooth. If you explode it, it will become two or more curves.
4) The projection of a polycrv with two segments (deg3/8 and deg3/5) that are G1 results in a single deg3/12 curve that is non-uniform and non-periodic.
//parent
Geometry:
Valid curve.
Closed polycurve with 2 curve segments.
Segment 1:
Open NURBS curve
start = (1.177,-0.241,0.000)
end = (1.177,-1.170,0.000)
degree = 3
control points: non-rational, count=5
knots: uniform (delta=0.500), domain = 0.000 to 1.000
clamped at start and end
Segment 2:
Open NURBS curve
start = (1.177,-1.170,0.000)
end = (1.177,-0.241,0.000)
degree = 3
control points: non-rational, count=8
knots: uniform (delta=1.000), domain = 1.000 to 6.000
clamped at start and end
//child
Geometry:
Valid curve.
Closed NURBS curve
start = (1.177,-0.241,6.326)
end = (1.177,-0.241,6.326)
degree = 3
control points: non-rational, count=12 (1 duplicate)
knots: non-uniform, domain = 0.000 to 6.000
clamped at start and end

