21#ifndef OCCTL_PRIM_SKETCH_H
22#define OCCTL_PRIM_SKETCH_H
35#define OCCTL_PRIM_POLYLINE_INFO_VERSION_1 1u
52#define OCCTL_PRIM_POLYLINE_INFO_INIT {OCCTL_PRIM_POLYLINE_INFO_VERSION_1, NULL, NULL, 0, 0}
96#define OCCTL_PRIM_REGULAR_POLYGON_INFO_VERSION_1 1u
115#define OCCTL_PRIM_REGULAR_POLYGON_INFO_INIT \
116 {OCCTL_PRIM_REGULAR_POLYGON_INFO_VERSION_1, \
118 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
162#define OCCTL_PRIM_RECTANGLE_INFO_VERSION_1 1u
179#define OCCTL_PRIM_RECTANGLE_INFO_INIT \
180 {OCCTL_PRIM_RECTANGLE_INFO_VERSION_1, \
182 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
225#define OCCTL_PRIM_CIRCLE_INFO_VERSION_1 1u
241#define OCCTL_PRIM_CIRCLE_INFO_INIT \
242 {OCCTL_PRIM_CIRCLE_INFO_VERSION_1, NULL, {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, 0.0}
282#define OCCTL_PRIM_ELLIPSE_INFO_VERSION_1 1u
300#define OCCTL_PRIM_ELLIPSE_INFO_INIT \
301 {OCCTL_PRIM_ELLIPSE_INFO_VERSION_1, \
303 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
345#define OCCTL_PRIM_PLANAR_FACE_INFO_VERSION_1 1u
365#define OCCTL_PRIM_PLANAR_FACE_INFO_INIT \
366 {OCCTL_PRIM_PLANAR_FACE_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, NULL, 0}
411#define OCCTL_PRIM_CONVEX_HULL_2D_INFO_VERSION_1 1u
435#define OCCTL_PRIM_CONVEX_HULL_2D_INFO_INIT \
436 {OCCTL_PRIM_CONVEX_HULL_2D_INFO_VERSION_1, \
438 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
494#define OCCTL_PRIM_TRACE_INFO_VERSION_1 1u
516#define OCCTL_PRIM_TRACE_INFO_INIT \
517 {OCCTL_PRIM_TRACE_INFO_VERSION_1, \
519 OCCTL_NODE_ID_INVALID, \
522 OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_ARC, \
569#define OCCTL_PRIM_CONSTRAINED_EDGE_INFO_VERSION_1 1u
591#define OCCTL_PRIM_CONSTRAINED_EDGE_INFO_INIT \
592 {OCCTL_PRIM_CONSTRAINED_EDGE_INFO_VERSION_1, \
594 OCCTL_REP_ID_INVALID, \
595 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
650#define OCCTL_PRIM_ARC_3PT_INFO_VERSION_1 1u
668#define OCCTL_PRIM_ARC_3PT_INFO_INIT \
669 {OCCTL_PRIM_ARC_3PT_INFO_VERSION_1, NULL, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}
709#define OCCTL_PRIM_ARC_CENTER_INFO_VERSION_1 1u
729#define OCCTL_PRIM_ARC_CENTER_INFO_INIT \
730 {OCCTL_PRIM_ARC_CENTER_INFO_VERSION_1, \
732 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
776#define OCCTL_PRIM_SPLINE_INFO_VERSION_1 1u
795#define OCCTL_PRIM_SPLINE_INFO_INIT {OCCTL_PRIM_SPLINE_INFO_VERSION_1, NULL, NULL, 0, 3, 8, 1.0e-3}
838#define OCCTL_PRIM_PLANE_INFO_VERSION_1 1u
858#define OCCTL_PRIM_PLANE_INFO_INIT \
859 {OCCTL_PRIM_PLANE_INFO_VERSION_1, \
861 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
903#define OCCTL_PRIM_DISK_INFO_VERSION_1 1u
919#define OCCTL_PRIM_DISK_INFO_INIT \
920 {OCCTL_PRIM_DISK_INFO_VERSION_1, NULL, {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, 0.0}
960#define OCCTL_PRIM_SLOT_INFO_VERSION_1 1u
981#define OCCTL_PRIM_SLOT_INFO_INIT \
982 {OCCTL_PRIM_SLOT_INFO_VERSION_1, \
984 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
1026#define OCCTL_PRIM_TUBE_INFO_VERSION_1 1u
1047#define OCCTL_PRIM_TUBE_INFO_INIT \
1048 {OCCTL_PRIM_TUBE_INFO_VERSION_1, \
1050 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
1094#define OCCTL_PRIM_HELIX_INFO_VERSION_1 1u
1115#define OCCTL_PRIM_HELIX_INFO_INIT \
1116 {OCCTL_PRIM_HELIX_INFO_VERSION_1, \
1118 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
1162#define OCCTL_PRIM_FILLET_2D_INFO_VERSION_1 1u
1182#define OCCTL_PRIM_FILLET_2D_INFO_INIT \
1183 {OCCTL_PRIM_FILLET_2D_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, NULL, 0, 0.0}
1229#define OCCTL_PRIM_FULL_ROUND_2D_INFO_VERSION_1 1u
1250#define OCCTL_PRIM_FULL_ROUND_2D_INFO_INIT \
1251 {OCCTL_PRIM_FULL_ROUND_2D_INFO_VERSION_1, \
1253 OCCTL_NODE_ID_INVALID, \
1254 OCCTL_NODE_ID_INVALID, \
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
OCCT-Light: 2D curve (pcurve) API on BRepGraph.
OCCT-Light: geometry primitive types and math utilities.
occtl_status_t occtl_prim_make_regular_polygon(occtl_graph_t *graph, const occtl_prim_regular_polygon_info_t *info, occtl_node_id_t *out_wire)
struct occtl_prim_helix_info occtl_prim_helix_info_t
void occtl_prim_planar_face_info_init(occtl_prim_planar_face_info_t *info)
struct occtl_prim_tube_info occtl_prim_tube_info_t
void occtl_prim_arc_center_info_init(occtl_prim_arc_center_info_t *info)
struct occtl_prim_arc_3pt_info occtl_prim_arc_3pt_info_t
void occtl_prim_rectangle_info_init(occtl_prim_rectangle_info_t *info)
void occtl_prim_arc_3pt_info_init(occtl_prim_arc_3pt_info_t *info)
void occtl_prim_slot_info_init(occtl_prim_slot_info_t *info)
occtl_status_t occtl_prim_make_circle(occtl_graph_t *graph, const occtl_prim_circle_info_t *info, occtl_node_id_t *out_wire)
void occtl_prim_fillet_2d_info_init(occtl_prim_fillet_2d_info_t *info)
struct occtl_prim_circle_info occtl_prim_circle_info_t
struct occtl_prim_regular_polygon_info occtl_prim_regular_polygon_info_t
struct occtl_prim_planar_face_info occtl_prim_planar_face_info_t
occtl_status_t occtl_prim_make_slot(occtl_graph_t *graph, const occtl_prim_slot_info_t *info, occtl_node_id_t *out_wire)
occtl_status_t occtl_prim_make_planar_face(occtl_graph_t *graph, const occtl_prim_planar_face_info_t *info, occtl_node_id_t *out_face)
occtl_status_t occtl_prim_make_rectangle(occtl_graph_t *graph, const occtl_prim_rectangle_info_t *info, occtl_node_id_t *out_wire)
struct occtl_prim_rectangle_info occtl_prim_rectangle_info_t
void occtl_prim_plane_info_init(occtl_prim_plane_info_t *info)
occtl_status_t occtl_prim_make_fillet_2d(occtl_graph_t *graph, const occtl_prim_fillet_2d_info_t *info, occtl_node_id_t *out_face)
struct occtl_prim_ellipse_info occtl_prim_ellipse_info_t
occtl_status_t occtl_prim_make_arc_3pt(occtl_graph_t *graph, const occtl_prim_arc_3pt_info_t *info, occtl_node_id_t *out_wire)
occtl_status_t occtl_prim_make_helix(occtl_graph_t *graph, const occtl_prim_helix_info_t *info, occtl_node_id_t *out_wire)
void occtl_prim_disk_info_init(occtl_prim_disk_info_t *info)
void occtl_prim_convex_hull_2d_info_init(occtl_prim_convex_hull_2d_info_t *info)
void occtl_prim_full_round_2d_info_init(occtl_prim_full_round_2d_info_t *info)
void occtl_prim_regular_polygon_info_init(occtl_prim_regular_polygon_info_t *info)
void occtl_prim_ellipse_info_init(occtl_prim_ellipse_info_t *info)
occtl_status_t occtl_prim_make_disk(occtl_graph_t *graph, const occtl_prim_disk_info_t *info, occtl_node_id_t *out_face)
struct occtl_prim_slot_info occtl_prim_slot_info_t
occtl_status_t occtl_prim_make_full_round_2d(occtl_graph_t *graph, const occtl_prim_full_round_2d_info_t *info, occtl_node_id_t *out_face)
occtl_status_t occtl_prim_make_ellipse(occtl_graph_t *graph, const occtl_prim_ellipse_info_t *info, occtl_node_id_t *out_wire)
void occtl_prim_polyline_info_init(occtl_prim_polyline_info_t *info)
occtl_status_t occtl_prim_make_tube(occtl_graph_t *graph, const occtl_prim_tube_info_t *info, occtl_node_id_t *out_solid)
void occtl_prim_trace_info_init(occtl_prim_trace_info_t *info)
void occtl_prim_constrained_edge_info_init(occtl_prim_constrained_edge_info_t *info)
occtl_status_t occtl_prim_make_polyline(occtl_graph_t *graph, const occtl_prim_polyline_info_t *info, occtl_node_id_t *out_wire)
occtl_status_t occtl_prim_make_arc_center(occtl_graph_t *graph, const occtl_prim_arc_center_info_t *info, occtl_node_id_t *out_wire)
struct occtl_prim_convex_hull_2d_info occtl_prim_convex_hull_2d_info_t
struct occtl_prim_full_round_2d_info occtl_prim_full_round_2d_info_t
struct occtl_prim_fillet_2d_info occtl_prim_fillet_2d_info_t
occtl_status_t occtl_prim_make_spline(occtl_graph_t *graph, const occtl_prim_spline_info_t *info, occtl_node_id_t *out_wire)
void occtl_prim_tube_info_init(occtl_prim_tube_info_t *info)
occtl_status_t occtl_prim_make_trace(occtl_graph_t *graph, const occtl_prim_trace_info_t *info, occtl_node_id_t *out_face)
void occtl_prim_spline_info_init(occtl_prim_spline_info_t *info)
void occtl_prim_circle_info_init(occtl_prim_circle_info_t *info)
occtl_status_t occtl_prim_make_constrained_edge(occtl_graph_t *graph, const occtl_prim_constrained_edge_info_t *info, occtl_node_id_t *out_edge)
struct occtl_prim_constrained_edge_info occtl_prim_constrained_edge_info_t
struct occtl_prim_plane_info occtl_prim_plane_info_t
struct occtl_prim_arc_center_info occtl_prim_arc_center_info_t
struct occtl_prim_trace_info occtl_prim_trace_info_t
struct occtl_prim_disk_info occtl_prim_disk_info_t
struct occtl_prim_spline_info occtl_prim_spline_info_t
occtl_status_t occtl_prim_make_convex_hull_2d(occtl_graph_t *graph, const occtl_prim_convex_hull_2d_info_t *info, occtl_node_id_t *out_node)
struct occtl_prim_polyline_info occtl_prim_polyline_info_t
occtl_status_t occtl_prim_make_plane(occtl_graph_t *graph, const occtl_prim_plane_info_t *info, occtl_node_id_t *out_face)
void occtl_prim_helix_info_init(occtl_prim_helix_info_t *info)
OCCT-Light: surface geometry via graph + rep_id.
OCCT-Light: topology module public API.
enum occtl_topo_wire_offset_2d_join occtl_topo_wire_offset_2d_join_t
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_geom.h:128
Definition occtl_geom.h:98
Definition occtl_topo_types.h:50
Definition occtl_geom.h:76
Definition occtl_prim_sketch.h:660
occtl_point3_t via
Definition occtl_prim_sketch.h:664
occtl_point3_t start
Definition occtl_prim_sketch.h:663
uint32_t struct_version
Definition occtl_prim_sketch.h:661
occtl_point3_t end
Definition occtl_prim_sketch.h:665
const void * p_next
Definition occtl_prim_sketch.h:662
Definition occtl_prim_sketch.h:720
double radius
Definition occtl_prim_sketch.h:724
double end_angle
Definition occtl_prim_sketch.h:726
const void * p_next
Definition occtl_prim_sketch.h:722
double start_angle
Definition occtl_prim_sketch.h:725
uint32_t struct_version
Definition occtl_prim_sketch.h:721
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:723
Definition occtl_prim_sketch.h:234
double radius
Definition occtl_prim_sketch.h:238
uint32_t struct_version
Definition occtl_prim_sketch.h:235
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:237
const void * p_next
Definition occtl_prim_sketch.h:236
Definition occtl_prim_sketch.h:581
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:585
occtl_rep_id_t curve
Definition occtl_prim_sketch.h:584
double last_parameter
Definition occtl_prim_sketch.h:588
const void * p_next
Definition occtl_prim_sketch.h:583
double first_parameter
Definition occtl_prim_sketch.h:587
int32_t use_parameter_range
Definition occtl_prim_sketch.h:586
uint32_t struct_version
Definition occtl_prim_sketch.h:582
Definition occtl_prim_sketch.h:423
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:426
size_t point_count
Definition occtl_prim_sketch.h:428
const occtl_node_id_t * vertices
Definition occtl_prim_sketch.h:429
uint32_t struct_version
Definition occtl_prim_sketch.h:424
double tolerance
Definition occtl_prim_sketch.h:431
const occtl_point3_t * points
Definition occtl_prim_sketch.h:427
size_t vertex_count
Definition occtl_prim_sketch.h:430
int32_t make_face
Definition occtl_prim_sketch.h:432
const void * p_next
Definition occtl_prim_sketch.h:425
Definition occtl_prim_sketch.h:912
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:915
const void * p_next
Definition occtl_prim_sketch.h:914
uint32_t struct_version
Definition occtl_prim_sketch.h:913
double radius
Definition occtl_prim_sketch.h:916
Definition occtl_prim_sketch.h:292
double minor
Definition occtl_prim_sketch.h:297
const void * p_next
Definition occtl_prim_sketch.h:294
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:295
uint32_t struct_version
Definition occtl_prim_sketch.h:293
double major
Definition occtl_prim_sketch.h:296
Definition occtl_prim_sketch.h:1172
uint32_t struct_version
Definition occtl_prim_sketch.h:1173
occtl_node_id_t face
Definition occtl_prim_sketch.h:1175
const void * p_next
Definition occtl_prim_sketch.h:1174
const occtl_node_id_t * vertices
Definition occtl_prim_sketch.h:1177
double radius
Definition occtl_prim_sketch.h:1179
size_t vertex_count
Definition occtl_prim_sketch.h:1178
Definition occtl_prim_sketch.h:1241
uint32_t search_steps
Definition occtl_prim_sketch.h:1247
const void * p_next
Definition occtl_prim_sketch.h:1243
occtl_node_id_t face
Definition occtl_prim_sketch.h:1244
occtl_node_id_t edge
Definition occtl_prim_sketch.h:1245
uint32_t struct_version
Definition occtl_prim_sketch.h:1242
double radius
Definition occtl_prim_sketch.h:1246
Definition occtl_prim_sketch.h:1105
const void * p_next
Definition occtl_prim_sketch.h:1107
int32_t left_handed
Definition occtl_prim_sketch.h:1112
double height
Definition occtl_prim_sketch.h:1111
uint32_t struct_version
Definition occtl_prim_sketch.h:1106
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:1108
double pitch
Definition occtl_prim_sketch.h:1110
double radius
Definition occtl_prim_sketch.h:1109
Definition occtl_prim_sketch.h:356
const void * p_next
Definition occtl_prim_sketch.h:358
occtl_node_id_t outer_wire
Definition occtl_prim_sketch.h:359
size_t inner_wire_count
Definition occtl_prim_sketch.h:362
uint32_t struct_version
Definition occtl_prim_sketch.h:357
const occtl_node_id_t * inner_wires
Definition occtl_prim_sketch.h:361
Definition occtl_prim_sketch.h:850
const void * p_next
Definition occtl_prim_sketch.h:852
double width
Definition occtl_prim_sketch.h:854
uint32_t struct_version
Definition occtl_prim_sketch.h:851
double height
Definition occtl_prim_sketch.h:855
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:853
Definition occtl_prim_sketch.h:44
uint32_t struct_version
Definition occtl_prim_sketch.h:45
size_t point_count
Definition occtl_prim_sketch.h:48
const occtl_point3_t * points
Definition occtl_prim_sketch.h:47
int32_t closed
Definition occtl_prim_sketch.h:49
const void * p_next
Definition occtl_prim_sketch.h:46
Definition occtl_prim_sketch.h:171
double width
Definition occtl_prim_sketch.h:175
const void * p_next
Definition occtl_prim_sketch.h:173
double height
Definition occtl_prim_sketch.h:176
uint32_t struct_version
Definition occtl_prim_sketch.h:172
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:174
Definition occtl_prim_sketch.h:106
int32_t sides
Definition occtl_prim_sketch.h:111
uint32_t struct_version
Definition occtl_prim_sketch.h:107
double circumradius
Definition occtl_prim_sketch.h:110
double rotation
Definition occtl_prim_sketch.h:112
const void * p_next
Definition occtl_prim_sketch.h:108
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:109
Definition occtl_prim_sketch.h:973
double length
Definition occtl_prim_sketch.h:977
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:976
const void * p_next
Definition occtl_prim_sketch.h:975
double width
Definition occtl_prim_sketch.h:978
uint32_t struct_version
Definition occtl_prim_sketch.h:974
Definition occtl_prim_sketch.h:785
uint32_t struct_version
Definition occtl_prim_sketch.h:786
double tolerance
Definition occtl_prim_sketch.h:792
int32_t degree_max
Definition occtl_prim_sketch.h:791
int32_t degree_min
Definition occtl_prim_sketch.h:790
size_t point_count
Definition occtl_prim_sketch.h:789
const occtl_point3_t * points
Definition occtl_prim_sketch.h:788
const void * p_next
Definition occtl_prim_sketch.h:787
Definition occtl_prim_sketch.h:506
int32_t approximate
Definition occtl_prim_sketch.h:513
const void * p_next
Definition occtl_prim_sketch.h:508
occtl_node_id_t path
Definition occtl_prim_sketch.h:509
occtl_topo_wire_offset_2d_join_t join
Definition occtl_prim_sketch.h:512
uint32_t struct_version
Definition occtl_prim_sketch.h:507
occtl_direction3_t normal
Definition occtl_prim_sketch.h:511
double width
Definition occtl_prim_sketch.h:510
Definition occtl_prim_sketch.h:1038
double inner_radius
Definition occtl_prim_sketch.h:1043
uint32_t struct_version
Definition occtl_prim_sketch.h:1039
double outer_radius
Definition occtl_prim_sketch.h:1042
occtl_axis2_placement_t placement
Definition occtl_prim_sketch.h:1041
const void * p_next
Definition occtl_prim_sketch.h:1040
double height
Definition occtl_prim_sketch.h:1044
Definition occtl_core.h:251