diff --git a/crates/solidcore/src/surface/surface_point_solve/p3.rs b/crates/solidcore/src/surface/surface_point_solve/p3.rs index a0751d2176..55d6c8d7ac 100644 --- a/crates/solidcore/src/surface/surface_point_solve/p3.rs +++ b/crates/solidcore/src/surface/surface_point_solve/p3.rs @@ -529,7 +529,8 @@ impl Surface { )?; } } - if new_uv == uv { + // SmVector2d::operator!= scales its tolerance from the left operand. + if !new_uv.approx_ne(uv) { reason = OutOfBounds; break; } diff --git a/fixtures/surface.surface_point_solve_p3/review_seam_comparison.json b/fixtures/surface.surface_point_solve_p3/review_seam_comparison.json new file mode 100644 index 0000000000..30e759e581 --- /dev/null +++ b/fixtures/surface.surface_point_solve_p3/review_seam_comparison.json @@ -0,0 +1,736 @@ +{ + "cases": [ + { + "name": "review106_seam_span_1e-06_wrap_False", + "inputs": { + "wrap": false, + "surf": { + "bspline": { + "srf": { + "net": [ + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + 1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + 1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + -1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + -1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + -1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + -1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ] + ], + "p": 1, + "q": 1, + "u": [ + 0, + 0, + 2.5e-07, + 5e-07, + 7.5e-07, + 1e-06, + 1e-06 + ], + "v": [ + 999999, + 999999, + 1000000, + 1000000 + ] + }, + "oob": false, + "form": 11 + } + }, + "dom": [ + 0, + 999999, + 1e-06, + 1000000 + ], + "solver": 3, + "test": [ + 2.0, + -1.0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 999999.5 + ] + }, + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5882; SmVector2d::operator!=" + }, + { + "name": "review106_seam_span_1e-06_wrap_True", + "inputs": { + "wrap": true, + "surf": { + "bspline": { + "srf": { + "net": [ + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + 1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + 1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + -1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + -1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + -1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + -1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ] + ], + "p": 1, + "q": 1, + "u": [ + 0, + 0, + 2.5e-07, + 5e-07, + 7.5e-07, + 1e-06, + 1e-06 + ], + "v": [ + 999999, + 999999, + 1000000, + 1000000 + ] + }, + "oob": false, + "form": 11 + } + }, + "dom": [ + 0, + 999999, + 1e-06, + 1000000 + ], + "solver": 3, + "test": [ + 2.0, + -1.0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 999999.5 + ] + }, + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5882; SmVector2d::operator!=" + }, + { + "name": "review106_seam_span_1.000002e-06_wrap_False", + "inputs": { + "wrap": false, + "surf": { + "bspline": { + "srf": { + "net": [ + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + 1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + 1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + -1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + -1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + -1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + -1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ] + ], + "p": 1, + "q": 1, + "u": [ + 0, + 0, + 2.500005e-07, + 5.00001e-07, + 7.500015e-07, + 1.000002e-06, + 1.000002e-06 + ], + "v": [ + 999999, + 999999, + 1000000, + 1000000 + ] + }, + "oob": false, + "form": 11 + } + }, + "dom": [ + 0, + 999999, + 1.000002e-06, + 1000000 + ], + "solver": 3, + "test": [ + 2.0, + -1.0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 999999.5 + ] + }, + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5882; SmVector2d::operator!=" + }, + { + "name": "review106_seam_span_1.000002e-06_wrap_True", + "inputs": { + "wrap": true, + "surf": { + "bspline": { + "srf": { + "net": [ + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + 1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + 1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + -1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + -1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + -1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + -1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ] + ], + "p": 1, + "q": 1, + "u": [ + 0, + 0, + 2.500005e-07, + 5.00001e-07, + 7.500015e-07, + 1.000002e-06, + 1.000002e-06 + ], + "v": [ + 999999, + 999999, + 1000000, + 1000000 + ] + }, + "oob": false, + "form": 11 + } + }, + "dom": [ + 0, + 999999, + 1.000002e-06, + 1000000 + ], + "solver": 3, + "test": [ + 2.0, + -1.0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 999999.5 + ] + }, + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5882; SmVector2d::operator!=" + }, + { + "name": "review106_seam_span_2e-06_wrap_False", + "inputs": { + "wrap": false, + "surf": { + "bspline": { + "srf": { + "net": [ + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + 1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + 1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + -1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + -1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + -1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + -1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ] + ], + "p": 1, + "q": 1, + "u": [ + 0, + 0, + 5e-07, + 1e-06, + 1.5e-06, + 2e-06, + 2e-06 + ], + "v": [ + 999999, + 999999, + 1000000, + 1000000 + ] + }, + "oob": false, + "form": 11 + } + }, + "dom": [ + 0, + 999999, + 2e-06, + 1000000 + ], + "solver": 3, + "test": [ + 2.0, + -1.0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 999999.5 + ] + }, + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5882; SmVector2d::operator!=" + }, + { + "name": "review106_seam_span_2e-06_wrap_True", + "inputs": { + "wrap": true, + "surf": { + "bspline": { + "srf": { + "net": [ + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + 1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + 1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + -1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + -1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 0.0, + -1.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 0.0, + -1.0, + 1.0, + -1.7976931348623157e+308 + ] + ], + [ + [ + 1.0, + 0.0, + 0.0, + -1.7976931348623157e+308 + ], + [ + 1.0, + 0.0, + 1.0, + -1.7976931348623157e+308 + ] + ] + ], + "p": 1, + "q": 1, + "u": [ + 0, + 0, + 5e-07, + 1e-06, + 1.5e-06, + 2e-06, + 2e-06 + ], + "v": [ + 999999, + 999999, + 1000000, + 1000000 + ] + }, + "oob": false, + "form": 11 + } + }, + "dom": [ + 0, + 999999, + 2e-06, + 1000000 + ], + "solver": 3, + "test": [ + 2.0, + -1.0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 999999.5 + ] + }, + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5882; SmVector2d::operator!=" + } + ] +} diff --git a/fixtures/surface.surface_point_solve_p3/review_wrapped_poles_seams.json b/fixtures/surface.surface_point_solve_p3/review_wrapped_poles_seams.json new file mode 100644 index 0000000000..321acf09d3 --- /dev/null +++ b/fixtures/surface.surface_point_solve_p3/review_wrapped_poles_seams.json @@ -0,0 +1,2296 @@ +{ + "cases": [ + { + "name": "review106_wrapped_sphere_0_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 0, + "test": [ + 0, + 0, + 1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + -90 + ] + } + }, + { + "name": "review106_wrapped_sphere_0_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 3, + "test": [ + 0, + 0, + 1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + -90 + ] + } + }, + { + "name": "review106_wrapped_sphere_0_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 4, + "test": [ + 0, + 0, + 1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + -90 + ] + } + }, + { + "name": "review106_wrapped_sphere_1_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 0, + "test": [ + 0, + 0, + -1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 90 + ] + } + }, + { + "name": "review106_wrapped_sphere_1_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 3, + "test": [ + 0, + 0, + -1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 90 + ] + } + }, + { + "name": "review106_wrapped_sphere_1_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 4, + "test": [ + 0, + 0, + -1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 90 + ] + } + }, + { + "name": "review106_wrapped_sphere_2_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 0, + "test": [ + 1, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + -90 + ] + } + }, + { + "name": "review106_wrapped_sphere_2_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 3, + "test": [ + 1, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + -90 + ] + } + }, + { + "name": "review106_wrapped_sphere_2_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 4, + "test": [ + 1, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + -90 + ] + } + }, + { + "name": "review106_wrapped_sphere_3_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 0, + "test": [ + 1, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 90 + ] + } + }, + { + "name": "review106_wrapped_sphere_3_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 3, + "test": [ + 1, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 90 + ] + } + }, + { + "name": "review106_wrapped_sphere_3_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 0, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + -90, + 90 + ], + "r": 1 + } + } + }, + "dom": [ + 0, + -90, + 360, + 90 + ], + "solver": 4, + "test": [ + 1, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 90 + ] + } + }, + { + "name": "review106_wrapped_torus_0_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 0, + "test": [ + 2.5, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_torus_0_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 3, + "test": [ + 2.5, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_torus_0_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 4, + "test": [ + 2.5, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_torus_1_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 0, + "test": [ + 2.5, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 360 + ] + } + }, + { + "name": "review106_wrapped_torus_1_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 3, + "test": [ + 2.5, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 360 + ] + } + }, + { + "name": "review106_wrapped_torus_1_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 4, + "test": [ + 2.5, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 360 + ] + } + }, + { + "name": "review106_wrapped_torus_2_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 0, + "test": [ + 2, + 0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_torus_2_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 3, + "test": [ + 2, + 0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_torus_2_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 4, + "test": [ + 2, + 0, + 0.5 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_torus_3_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 0, + "test": [ + 1.5, + 0, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 360 + ] + } + }, + { + "name": "review106_wrapped_torus_3_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 3, + "test": [ + 1.5, + 0, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 360 + ] + } + }, + { + "name": "review106_wrapped_torus_3_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "circle", + "c": [ + 2, + 0, + 0 + ], + "x": [ + 1, + 0, + 0 + ], + "y": [ + 0, + 0, + 1 + ], + "d": [ + 0, + 360 + ], + "r": 0.5 + } + } + }, + "dom": [ + 0, + 0, + 360, + 360 + ], + "solver": 4, + "test": [ + 1.5, + 0, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 360 + ] + } + }, + { + "name": "review106_wrapped_cone_0_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 0, + "test": [ + 0, + 0, + 2 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_cone_0_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 3, + "test": [ + 0, + 0, + 2 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_cone_0_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 4, + "test": [ + 0, + 0, + 2 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_cone_1_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 0, + "test": [ + 1, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 1 + ] + } + }, + { + "name": "review106_wrapped_cone_1_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 3, + "test": [ + 1, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 1 + ] + } + }, + { + "name": "review106_wrapped_cone_1_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 4, + "test": [ + 1, + 1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 1 + ] + } + }, + { + "name": "review106_wrapped_cone_2_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 0, + "test": [ + 1, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_cone_2_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 3, + "test": [ + 1, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_cone_2_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 4, + "test": [ + 1, + -1e-09, + 0 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 0 + ] + } + }, + { + "name": "review106_wrapped_cone_3_solver_0", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 0, + "test": [ + 0.5, + 0, + 1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 1 + ] + } + }, + { + "name": "review106_wrapped_cone_3_solver_3", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 3, + "test": [ + 0.5, + 0, + 1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 1 + ] + } + }, + { + "name": "review106_wrapped_cone_3_solver_4", + "upstream_ref": "source/SMLib/src/SmSurfacePointSolve.cpp:5683; STEP-wrapped revolution poles and seams", + "inputs": { + "wrap": true, + "surf": { + "rev": { + "build": { + "mode": "canonical", + "point": [ + 0, + 0, + 0 + ], + "axis": [ + 0, + 0, + 1 + ] + }, + "oob": false, + "swap": false, + "gen": { + "kind": "line", + "a": [ + 1, + 0, + 0 + ], + "b": [ + 0, + 0, + 2 + ] + } + } + }, + "dom": [ + 0, + 0, + 360, + 1 + ], + "solver": 4, + "test": [ + 0.5, + 0, + 1 + ], + "tol": 1e-06, + "op": "local", + "guess": [ + 0, + 1 + ] + } + } + ] +}