{
"planes_from_three_points": [
{
"p1": [
0.0,
0.0,
0.0
],
"p2": [
1.0,
0.0,
0.0
],
"p3": [
0.0,
1.0,
0.0
],
"frame": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
1.0,
0.0,
-0.0
],
"y_dir": [
-0.0,
1.0,
0.0
],
"z_dir": [
0.0,
0.0,
1.0
]
}
},
{
"p1": [
1.0,
-2.0,
0.5
],
"p2": [
2.3,
0.4,
-1.1
],
"p3": [
-0.7,
1.9,
2.2
],
"frame": {
"origin": [
1.0,
-2.0,
0.5
],
"x_dir": [
0.41089070180665904,
0.758567449489217,
-0.5057116329928112
],
"y_dir": [
-0.5215909221668417,
0.6505458959428111,
0.5520262196536582
],
"z_dir": [
0.7477377488678602,
0.03695215619405125,
0.6629651552462131
]
}
}
],
"planes_from_coefficients": [
{
"a": 1.0,
"b": 2.0,
"c": 3.0,
"d": 4.0,
"frame": {
"origin": [
0.0,
0.0,
-1.3333333333333333
],
"x_dir": [
1.3877787807814454e-17,
0.8320502943378437,
-0.5547001962252293
],
"y_dir": [
-0.9636241116594315,
0.14824986333222026,
0.22237479499833032
],
"z_dir": [
0.2672612419124244,
0.5345224838248488,
0.8017837257372732
]
}
}
],
"ellipses_center_two_points": [
{
"s1": [
3.0,
0.0,
0.0
],
"s2": [
0.0,
1.5,
0.0
],
"center": [
0.0,
0.0,
0.0
],
"frame": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
1.0,
0.0,
-0.0
],
"y_dir": [
-0.0,
1.0,
0.0
],
"z_dir": [
0.0,
0.0,
1.0
]
},
"major_radius": 3.0,
"minor_radius": 1.5
},
{
"s1": [
3.2,
-0.9,
1.7
],
"s2": [
0.3,
-1.2,
0.9
],
"center": [
1.0,
-2.0,
0.5
],
"frame": {
"origin": [
1.0,
-2.0,
0.5
],
"x_dir": [
0.8038625047660566,
0.40193125238302835,
0.4384704571451218
],
"y_dir": [
-0.5707234694926627,
0.7288587324447248,
0.3782058559955503
],
"z_dir": [
-0.16757026825036567,
-0.5542708872896712,
0.8152938051412024
]
},
"major_radius": 2.7367864366808017,
"minor_radius": 1.133875756998864
}
],
"hyperbolas_center_two_points": [
{
"s1": [
2.0,
0.0,
0.0
],
"s2": [
0.0,
1.0,
0.0
],
"center": [
0.0,
0.0,
0.0
],
"frame": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
1.0,
0.0,
-0.0
],
"y_dir": [
-0.0,
1.0,
0.0
],
"z_dir": [
0.0,
0.0,
1.0
]
},
"major_radius": 2.0,
"minor_radius": 1.0
},
{
"s1": [
3.0,
-1.0,
1.0
],
"s2": [
1.5,
-0.5,
2.0
],
"center": [
1.0,
-2.0,
0.5
],
"frame": {
"origin": [
1.0,
-2.0,
0.5
],
"x_dir": [
0.8728715609439694,
0.4364357804719848,
0.21821789023599236
],
"y_dir": [
-0.44605470887843957,
0.5323878783387826,
0.7194430788361927
],
"z_dir": [
0.19781414201873612,
-0.7253185207353657,
0.6593804733957871
]
},
"major_radius": 2.29128784747792,
"minor_radius": 1.6547190813232433
}
],
"cones_two_points_radii": [
{
"p1": [
0.0,
0.0,
0.0
],
"p2": [
0.0,
0.0,
4.0
],
"r1": 2.0,
"r2": 1.0,
"frame": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
0.0,
-1.0,
0.0
],
"y_dir": [
1.0,
0.0,
-0.0
],
"z_dir": [
0.0,
0.0,
1.0
]
},
"ref_radius": 2.0,
"semi_angle": -0.24497866312686414
},
{
"p1": [
1.0,
1.0,
1.0
],
"p2": [
2.0,
3.0,
1.0
],
"r1": 1.0,
"r2": 2.5,
"frame": {
"origin": [
1.0,
1.0,
1.0
],
"x_dir": [
-0.894427190999916,
0.447213595499958,
0.0
],
"y_dir": [
0.0,
-0.0,
1.0
],
"z_dir": [
0.4472135954999579,
0.8944271909999159,
0.0
]
},
"ref_radius": 1.0,
"semi_angle": 0.5908727501454191
}
],
"cylinders_from_circle": [
{
"circle": {
"frame": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
1.0,
0.0,
-0.0
],
"y_dir": [
-0.0,
1.0,
0.0
],
"z_dir": [
0.0,
0.0,
1.0
]
},
"radius": 2.0
},
"frame": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
1.0,
0.0,
-0.0
],
"y_dir": [
-0.0,
1.0,
0.0
],
"z_dir": [
0.0,
0.0,
1.0
]
},
"radius": 2.0
},
{
"circle": {
"frame": {
"origin": [
1.0,
-2.0,
0.5
],
"x_dir": [
-0.29814239699997197,
-0.5962847939999439,
0.7453559924999299
],
"y_dir": [
0.894427190999916,
-0.447213595499958,
0.0
],
"z_dir": [
0.3333333333333333,
0.6666666666666666,
0.6666666666666666
]
},
"radius": 1.7
},
"frame": {
"origin": [
1.0,
-2.0,
0.5
],
"x_dir": [
-0.29814239699997197,
-0.5962847939999439,
0.7453559924999299
],
"y_dir": [
0.894427190999916,
-0.447213595499958,
0.0
],
"z_dir": [
0.3333333333333333,
0.6666666666666666,
0.6666666666666666
]
},
"radius": 1.7
}
],
"_note": "Derived-input construction goldens: inputs plus the resulting frame/scalars read back from the constructed object. semi_angle for two-point cones is atan((r2 - r1) / |p2 - p1|), negative when the radius shrinks along the axis. Three-point circles live in curves_analytic.json."
}