173#define OCCTL_CURVE_BSPLINE_CREATE_INFO_VERSION_1 1u
175#define OCCTL_CURVE_BSPLINE_CREATE_INFO_INIT \
176 {OCCTL_CURVE_BSPLINE_CREATE_INFO_VERSION_1, NULL, NULL, 0, NULL, NULL, NULL, 0, 0, 0}
230#define OCCTL_CURVE_BEZIER_CREATE_INFO_VERSION_1 1u
232#define OCCTL_CURVE_BEZIER_CREATE_INFO_INIT \
233 {OCCTL_CURVE_BEZIER_CREATE_INFO_VERSION_1, NULL, NULL, 0, NULL}
302#define OCCTL_CURVE_OFFSET_CREATE_INFO_VERSION_1 1u
304#define OCCTL_CURVE_OFFSET_CREATE_INFO_INIT \
305 {OCCTL_CURVE_OFFSET_CREATE_INFO_VERSION_1, NULL, {0}, {0.0, 0.0, 1.0}, 0.0}
504 double* out_distance);
563 int32_t* out_is_periodic);
585 int32_t* out_is_closed);
789 int32_t* out_degree);
846 int32_t* out_is_rational);
868 int32_t* out_degree);
906 int32_t* out_is_rational);
1113#define OCCTL_CURVE_BSPLINE_VERSION_1 1u
1115#define OCCTL_CURVE_BSPLINE_INIT \
1116 {OCCTL_CURVE_BSPLINE_VERSION_1, NULL, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL}
1304#define OCCTL_CURVE_AIRFOIL_NACA4_INFO_VERSION_1 1u
1306#define OCCTL_CURVE_AIRFOIL_NACA4_INFO_INIT \
1307 {OCCTL_CURVE_AIRFOIL_NACA4_INFO_VERSION_1, NULL, 0.0, 0.0, 0.12, 1.0, 50, 0, 3, 8, 1.0e-5}
1394#define OCCTL_CURVE_INTERPOLATED_INFO_VERSION_1 1u
1395#define OCCTL_CURVE_INTERPOLATED_INFO_INIT \
1396 {OCCTL_CURVE_INTERPOLATED_INFO_VERSION_1, NULL, NULL, 0, 0, 0.0}
1455#define OCCTL_CURVE_APPROXIMATED_INFO_VERSION_1 1u
1456#define OCCTL_CURVE_APPROXIMATED_INFO_INIT \
1457 {OCCTL_CURVE_APPROXIMATED_INFO_VERSION_1, NULL, NULL, 0, 1, 3, 1e-3, 0}
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
struct occtl_curve_bspline occtl_curve_bspline_t
occtl_status_t occtl_curve_reverse(occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_bspline_pole_count(const occtl_graph_t *graph, occtl_rep_id_t curve_id, size_t *out_count)
occtl_status_t occtl_curve_create_ellipse(occtl_graph_t *graph, occtl_geom_ellipse_t ellipse, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_length(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_length)
void occtl_curve_bezier_create_info_init(occtl_curve_bezier_create_info_t *info)
occtl_status_t occtl_curve_create_trimmed(occtl_graph_t *graph, const occtl_curve_trimmed_create_info_t *info, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_rotated(occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_axis1_placement_t axis, double angle, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_as_offset(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_offset, occtl_vector3_t *out_offset_dir)
occtl_status_t occtl_curve_as_trimmed(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_u_first, double *out_u_last)
occtl_status_t occtl_curve_translated(occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_vector3_t delta, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_bspline_poles(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_point3_t *out_buf, size_t capacity, size_t *out_count)
occtl_status_t occtl_curve_project_point(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_point3_t point, double *out_param, double *out_distance)
occtl_status_t occtl_curve_to_bezier_segments(occtl_graph_t *graph, occtl_rep_id_t curve_id, const occtl_curve_bezier_segments_options_t *options, occtl_rep_id_t **out_ids, size_t *out_count)
occtl_status_t occtl_curve_bspline_degree(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_degree)
occtl_status_t occtl_curve_bspline_is_rational(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_is_rational)
occtl_status_t occtl_curve_is_periodic(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_is_periodic)
void occtl_curve_free_intersection_points(occtl_curve_intersection_point_t *results)
occtl_status_t occtl_curve_as_parabola(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_geom_parabola_t *out_parabola)
occtl_status_t occtl_curve_eval_d0(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double u, occtl_point3_t *out_point)
struct occtl_curve_bspline_create_info occtl_curve_bspline_create_info_t
void occtl_curve_interpolated_info_init(occtl_curve_interpolated_info_t *info)
struct occtl_curve_bezier_create_info occtl_curve_bezier_create_info_t
occtl_status_t occtl_curve_continuity(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_geom_continuity_t *out_continuity)
occtl_status_t occtl_curve_bspline_knots(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_buf, size_t capacity, size_t *out_count)
void occtl_curve_bspline_init(occtl_curve_bspline_t *out)
void occtl_curve_offset_create_info_init(occtl_curve_offset_create_info_t *info)
void occtl_curve_airfoil_naca4_info_init(occtl_curve_airfoil_naca4_info_t *info)
occtl_status_t occtl_curve_parameter_of_point(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_point3_t point, double *out_param)
occtl_status_t occtl_curve_create_hyperbola(occtl_graph_t *graph, occtl_geom_hyperbola_t hyperbola, occtl_rep_id_t *out_id)
struct occtl_curve_interpolated_info occtl_curve_interpolated_info_t
struct occtl_curve_intersection_point occtl_curve_intersection_point_t
occtl_status_t occtl_curve_create_approximated(occtl_graph_t *graph, const occtl_curve_approximated_info_t *info, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_bezier_degree(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_degree)
occtl_status_t occtl_curve_as_line(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_geom_line_t *out_line)
occtl_status_t occtl_curve_eval_d2(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double u, occtl_point3_t *out_point, occtl_vector3_t *out_d1, occtl_vector3_t *out_d2)
occtl_status_t occtl_curve_create_bezier(occtl_graph_t *graph, const occtl_curve_bezier_create_info_t *info, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_eval_d1(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double u, occtl_point3_t *out_point, occtl_vector3_t *out_d1)
struct occtl_curve_airfoil_naca4_info occtl_curve_airfoil_naca4_info_t
occtl_status_t occtl_curve_create_airfoil_naca4(occtl_graph_t *graph, const occtl_curve_airfoil_naca4_info_t *info, occtl_rep_id_t *out_id)
struct occtl_curve_offset_create_info occtl_curve_offset_create_info_t
occtl_status_t occtl_curve_as_circle(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_geom_circle_t *out_circle)
occtl_status_t occtl_curve_eval_dn(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double u, int32_t n, occtl_vector3_t *out_derivative)
occtl_status_t occtl_curve_parameter_range(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_u_min, double *out_u_max)
occtl_status_t occtl_curve_bspline_multiplicities(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_buf, size_t capacity, size_t *out_count)
occtl_status_t occtl_curve_eval_d3(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double u, occtl_point3_t *out_point, occtl_vector3_t *out_d1, occtl_vector3_t *out_d2, occtl_vector3_t *out_d3)
occtl_status_t occtl_curve_create_interpolated(occtl_graph_t *graph, const occtl_curve_interpolated_info_t *info, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_as_hyperbola(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_geom_hyperbola_t *out_hyperbola)
void occtl_curve_approximated_info_init(occtl_curve_approximated_info_t *info)
occtl_status_t occtl_curve_bspline_flat_knots(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_buf, size_t capacity, size_t *out_count)
void occtl_curve_bspline_create_info_init(occtl_curve_bspline_create_info_t *info)
occtl_status_t occtl_curve_transformed(occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_transform_t transform, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_scaled(occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_point3_t origin, double factor, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_is_closed(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_is_closed)
occtl_status_t occtl_curve_bspline_weights(const occtl_graph_t *graph, occtl_rep_id_t curve_id, double *out_buf, size_t capacity, size_t *out_count)
occtl_status_t occtl_curve_bezier_pole_count(const occtl_graph_t *graph, occtl_rep_id_t curve_id, size_t *out_count)
occtl_status_t occtl_curve_intersect(occtl_graph_t *graph, occtl_rep_id_t curve_id_a, occtl_rep_id_t curve_id_b, const occtl_curve_intersection_point_t **out_results, size_t *out_count)
void occtl_curve_free_bezier_segments(occtl_rep_id_t *ids)
occtl_status_t occtl_curve_bezier_is_rational(const occtl_graph_t *graph, occtl_rep_id_t curve_id, int32_t *out_is_rational)
struct occtl_curve_approximated_info occtl_curve_approximated_info_t
occtl_status_t occtl_curve_create_arc_of_circle_3pt(occtl_graph_t *graph, occtl_point3_t p1, occtl_point3_t p2, occtl_point3_t p3, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_create_bspline(occtl_graph_t *graph, const occtl_curve_bspline_create_info_t *info, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_bspline_knot_count(const occtl_graph_t *graph, occtl_rep_id_t curve_id, size_t *out_count)
occtl_status_t occtl_curve_as_bspline(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_curve_bspline_t *out)
occtl_status_t occtl_curve_bspline_poles_view(const occtl_graph_t *graph, occtl_rep_id_t curve_id, const occtl_point3_t **out_data, size_t *out_count)
occtl_status_t occtl_curve_as_ellipse(const occtl_graph_t *graph, occtl_rep_id_t curve_id, occtl_geom_ellipse_t *out_ellipse)
occtl_status_t occtl_curve_create_circle(occtl_graph_t *graph, occtl_geom_circle_t circle, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_create_parabola(occtl_graph_t *graph, occtl_geom_parabola_t parabola, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_create_line(occtl_graph_t *graph, occtl_geom_line_t line, occtl_rep_id_t *out_id)
occtl_status_t occtl_curve_create_offset(occtl_graph_t *graph, const occtl_curve_offset_create_info_t *info, occtl_rep_id_t *out_id)
OCCT-Light: Types shared by 3D and 2D curve APIs.
occtl_curve_kind
Definition occtl_curves_common.h:45
enum occtl_curve_kind occtl_curve_kind_t
OCCT-Light: geometry primitive types and math utilities.
enum occtl_geom_continuity occtl_geom_continuity_t
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_geom.h:111
Definition occtl_curves.h:1289
const void * p_next
Definition occtl_curves.h:1291
double thickness
Definition occtl_curves.h:1294
double chord_length
Definition occtl_curves.h:1295
size_t point_count
Definition occtl_curves.h:1296
double tolerance
Definition occtl_curves.h:1301
double camber_position
Definition occtl_curves.h:1293
int32_t degree_min
Definition occtl_curves.h:1299
int32_t degree_max
Definition occtl_curves.h:1300
double max_camber
Definition occtl_curves.h:1292
int32_t finite_trailing_edge
Definition occtl_curves.h:1298
uint32_t struct_version
Definition occtl_curves.h:1290
Definition occtl_curves.h:1444
const void * p_next
Definition occtl_curves.h:1446
size_t point_count
Definition occtl_curves.h:1448
const occtl_point3_t * points
Definition occtl_curves.h:1447
int32_t degree_min
Definition occtl_curves.h:1449
int32_t is_periodic
Definition occtl_curves.h:1452
uint32_t struct_version
Definition occtl_curves.h:1445
int32_t degree_max
Definition occtl_curves.h:1450
double tolerance
Definition occtl_curves.h:1451
Definition occtl_curves.h:221
size_t pole_count
Definition occtl_curves.h:225
const double * weights
Definition occtl_curves.h:226
const void * p_next
Definition occtl_curves.h:223
const occtl_point3_t * poles
Definition occtl_curves.h:224
uint32_t struct_version
Definition occtl_curves.h:222
Definition occtl_curves_common.h:119
Definition occtl_curves.h:159
const occtl_point3_t * poles
Definition occtl_curves.h:162
int32_t degree
Definition occtl_curves.h:169
const int32_t * multiplicities
Definition occtl_curves.h:167
size_t knot_count
Definition occtl_curves.h:168
const double * weights
Definition occtl_curves.h:164
size_t pole_count
Definition occtl_curves.h:163
uint32_t struct_version
Definition occtl_curves.h:160
const void * p_next
Definition occtl_curves.h:161
const double * knots
Definition occtl_curves.h:166
int32_t is_periodic
Definition occtl_curves.h:170
Definition occtl_curves.h:1088
int32_t is_rational
Definition occtl_curves.h:1093
const int32_t * multiplicities
Definition occtl_curves.h:1109
size_t pole_count
Definition occtl_curves.h:1097
size_t knot_count
Definition occtl_curves.h:1098
const double * weights
Definition occtl_curves.h:1106
const double * knots
Definition occtl_curves.h:1108
int32_t is_periodic
Definition occtl_curves.h:1094
const double * flat_knots
Definition occtl_curves.h:1110
size_t flat_knot_count
Definition occtl_curves.h:1099
int32_t degree
Definition occtl_curves.h:1092
uint32_t struct_version
Definition occtl_curves.h:1089
int32_t continuity
Definition occtl_curves.h:1096
int32_t is_closed
Definition occtl_curves.h:1095
const occtl_point3_t * poles
Definition occtl_curves.h:1105
const void * p_next
Definition occtl_curves.h:1090
Definition occtl_curves.h:1385
const void * p_next
Definition occtl_curves.h:1387
double tolerance
Definition occtl_curves.h:1391
int32_t is_periodic
Definition occtl_curves.h:1390
size_t point_count
Definition occtl_curves.h:1389
const occtl_point3_t * points
Definition occtl_curves.h:1388
uint32_t struct_version
Definition occtl_curves.h:1386
Definition occtl_curves.h:1548
double param_a
Definition occtl_curves.h:1550
occtl_point3_t point
Definition occtl_curves.h:1549
double param_b
Definition occtl_curves.h:1551
Definition occtl_curves.h:294
uint32_t struct_version
Definition occtl_curves.h:295
double offset
Definition occtl_curves.h:299
occtl_vector3_t offset_dir
Definition occtl_curves.h:298
const void * p_next
Definition occtl_curves.h:296
occtl_rep_id_t basis
Definition occtl_curves.h:297
Definition occtl_curves_common.h:86
Definition occtl_geom.h:820
Definition occtl_geom.h:832
Definition occtl_geom.h:845
Definition occtl_geom.h:857
Definition occtl_geom.h:76
Definition occtl_core.h:251
Definition occtl_geom.h:84