| 14 | #include "XYZ_CAPI.h" |
| 15 | |
| 16 | LNLIB_ENUMS_CurveCurveIntersectionType_C LNLIB_INTERSECT_compute_rays( |
| 17 | XYZ_C point_0, XYZ_C vector_0, |
| 18 | XYZ_C point_1, XYZ_C vector_1, |
| 19 | double* param_0, |
| 20 | double* param_1, |
| 21 | XYZ_C* intersect_point) |
| 22 | { |
| 23 | double t0, t1; |
| 24 | LNLib::XYZ ip; |
| 25 | auto type = LNLib::Intersection::ComputeRays( |
| 26 | ToXYZ(point_0), ToXYZ(vector_0), |
| 27 | ToXYZ(point_1), ToXYZ(vector_1), |
| 28 | t0, t1, ip); |
| 29 | |
| 30 | if (param_0) *param_0 = t0; |
| 31 | if (param_1) *param_1 = t1; |
| 32 | if (intersect_point) *intersect_point = FromXYZ(ip); |
| 33 | |
| 34 | return static_cast<LNLIB_ENUMS_CurveCurveIntersectionType_C>(static_cast<int>(type)); |
| 35 | } |
| 36 | |
| 37 | LNLIB_ENUMS_LinePlaneIntersectionType_C LNLIB_INTERSECT_compute_line_and_plane( |
| 38 | XYZ_C normal, |