21#ifndef OCCTL_PRIM_FEATURE_H
22#define OCCTL_PRIM_FEATURE_H
35#define OCCTL_PRIM_FACE_FROM_SURFACE_OPTIONS_VERSION_1 1u
57#define OCCTL_PRIM_FACE_FROM_SURFACE_OPTIONS_INIT \
58 {OCCTL_PRIM_FACE_FROM_SURFACE_OPTIONS_VERSION_1, \
60 OCCTL_REP_ID_INVALID, \
61 OCCTL_NODE_ID_INVALID, \
112#define OCCTL_PRIM_FACE_FROM_POINT_GRID_OPTIONS_VERSION_1 1u
129#define OCCTL_PRIM_FACE_FROM_POINT_GRID_OPTIONS_INIT \
130 {OCCTL_PRIM_FACE_FROM_POINT_GRID_OPTIONS_VERSION_1, \
132 OCCTL_SURFACE_POINT_GRID_CREATE_INFO_INIT, \
182#define OCCTL_PRIM_FACE_FROM_BOUNDARY_CURVES_OPTIONS_VERSION_1 1u
199#define OCCTL_PRIM_FACE_FROM_BOUNDARY_CURVES_OPTIONS_INIT \
200 {OCCTL_PRIM_FACE_FROM_BOUNDARY_CURVES_OPTIONS_VERSION_1, \
202 OCCTL_SURFACE_BOUNDARY_CURVES_CREATE_INFO_INIT, \
251#define OCCTL_PRIM_FACE_FROM_CURVE_GRID_OPTIONS_VERSION_1 1u
267#define OCCTL_PRIM_FACE_FROM_CURVE_GRID_OPTIONS_INIT \
268 {OCCTL_PRIM_FACE_FROM_CURVE_GRID_OPTIONS_VERSION_1, \
270 OCCTL_SURFACE_CURVE_GRID_CREATE_INFO_INIT, \
319#define OCCTL_PRIM_BRAKE_FORMED_OPTIONS_VERSION_1 1u
328 OCCTL_PRIM_BRAKE_SIDE_RESERVED_FUTURE = 0x7fffffff
352#define OCCTL_PRIM_BRAKE_FORMED_OPTIONS_INIT \
353 {OCCTL_PRIM_BRAKE_FORMED_OPTIONS_VERSION_1, \
355 OCCTL_NODE_ID_INVALID, \
359 OCCTL_PRIM_BRAKE_SIDE_LEFT, \
360 OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_ARC, \
413#define OCCTL_PRIM_DRAFT_PRISM_INFO_VERSION_1 1u
431#define OCCTL_PRIM_DRAFT_PRISM_INFO_INIT \
432 {OCCTL_PRIM_DRAFT_PRISM_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, 1.0, 0.0}
479#define OCCTL_PRIM_EXTRUDE_TAPERED_INFO_VERSION_1 1u
496#define OCCTL_PRIM_EXTRUDE_TAPERED_INFO_INIT \
497 {OCCTL_PRIM_EXTRUDE_TAPERED_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, 1.0, 0.0}
542#define OCCTL_PRIM_RULED_SURFACE_INFO_VERSION_1 1u
559#define OCCTL_PRIM_RULED_SURFACE_INFO_INIT \
560 {OCCTL_PRIM_RULED_SURFACE_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, OCCTL_NODE_ID_INVALID}
620 OCCTL_UNTIL_RESERVED_FUTURE = 0x7fffffff
633 OCCTL_FEAT_COMBINE_RESERVED_FUTURE = 0x7fffffff
636#define OCCTL_PRIM_FEAT_PRISM_INFO_VERSION_1 1u
660#define OCCTL_PRIM_FEAT_PRISM_INFO_INIT \
661 {OCCTL_PRIM_FEAT_PRISM_INFO_VERSION_1, \
663 OCCTL_NODE_ID_INVALID, \
664 OCCTL_NODE_ID_INVALID, \
665 OCCTL_NODE_ID_INVALID, \
669 OCCTL_UNTIL_LENGTH, \
670 OCCTL_NODE_ID_INVALID, \
725 OCCTL_EXTRUDE_UNTIL_RESERVED_FUTURE = 0x7fffffff
728#define OCCTL_PRIM_EXTRUDE_UNTIL_INFO_VERSION_1 1u
752#define OCCTL_PRIM_EXTRUDE_UNTIL_INFO_INIT \
753 {OCCTL_PRIM_EXTRUDE_UNTIL_INFO_VERSION_1, \
755 OCCTL_NODE_ID_INVALID, \
756 OCCTL_NODE_ID_INVALID, \
757 OCCTL_NODE_ID_INVALID, \
758 OCCTL_NODE_ID_INVALID, \
760 OCCTL_EXTRUDE_UNTIL_NEXT, \
807#define OCCTL_PRIM_FEAT_DRAFT_PRISM_INFO_VERSION_1 1u
832#define OCCTL_PRIM_FEAT_DRAFT_PRISM_INFO_INIT \
833 {OCCTL_PRIM_FEAT_DRAFT_PRISM_INFO_VERSION_1, \
835 OCCTL_NODE_ID_INVALID, \
836 OCCTL_NODE_ID_INVALID, \
837 OCCTL_NODE_ID_INVALID, \
841 OCCTL_UNTIL_LENGTH, \
842 OCCTL_NODE_ID_INVALID, \
907 OCCTL_CYLINDRICAL_HOLE_RESERVED_FUTURE = 0x7fffffff
910#define OCCTL_PRIM_CYLINDRICAL_HOLE_INFO_VERSION_1 1u
934#define OCCTL_PRIM_CYLINDRICAL_HOLE_INFO_INIT \
935 {OCCTL_PRIM_CYLINDRICAL_HOLE_INFO_VERSION_1, \
937 OCCTL_NODE_ID_INVALID, \
938 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}}, \
940 OCCTL_CYLINDRICAL_HOLE_THROUGH_ALL, \
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.
enum occtl_prim_until_kind occtl_prim_until_kind_t
enum occtl_prim_brake_side occtl_prim_brake_side_t
occtl_status_t occtl_prim_make_extrude_tapered(occtl_graph_t *graph, const occtl_prim_extrude_tapered_info_t *info, occtl_node_id_t *out_shape)
void occtl_prim_feat_prism_info_init(occtl_prim_feat_prism_info_t *info)
struct occtl_prim_draft_prism_info occtl_prim_draft_prism_info_t
struct occtl_prim_face_from_boundary_curves_options occtl_prim_face_from_boundary_curves_options_t
struct occtl_prim_cylindrical_hole_info occtl_prim_cylindrical_hole_info_t
void occtl_prim_face_from_surface_options_init(occtl_prim_face_from_surface_options_t *options)
struct occtl_prim_feat_prism_info occtl_prim_feat_prism_info_t
occtl_status_t occtl_prim_make_face_from_curve_grid(occtl_graph_t *graph, const occtl_prim_face_from_curve_grid_options_t *options, occtl_node_id_t *out_face)
void occtl_prim_face_from_curve_grid_options_init(occtl_prim_face_from_curve_grid_options_t *options)
occtl_status_t occtl_prim_make_draft_prism(occtl_graph_t *graph, const occtl_prim_draft_prism_info_t *info, occtl_node_id_t *out_shape)
void occtl_prim_face_from_point_grid_options_init(occtl_prim_face_from_point_grid_options_t *options)
void occtl_prim_cylindrical_hole_info_init(occtl_prim_cylindrical_hole_info_t *info)
occtl_status_t occtl_prim_make_face_from_surface(occtl_graph_t *graph, const occtl_prim_face_from_surface_options_t *options, occtl_node_id_t *out_face)
void occtl_prim_draft_prism_info_init(occtl_prim_draft_prism_info_t *info)
void occtl_prim_face_from_boundary_curves_options_init(occtl_prim_face_from_boundary_curves_options_t *options)
occtl_status_t occtl_prim_make_feat_prism(occtl_graph_t *graph, const occtl_prim_feat_prism_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_ruled_surface(occtl_graph_t *graph, const occtl_prim_ruled_surface_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_brake_formed(const occtl_graph_t *graph, const occtl_prim_brake_formed_options_t *options, occtl_graph_t **out_graph, occtl_node_id_t *out_root)
occtl_prim_extrude_until_side
Definition occtl_prim_feature.h:720
@ OCCTL_EXTRUDE_UNTIL_LAST
Definition occtl_prim_feature.h:722
@ OCCTL_EXTRUDE_UNTIL_PREVIOUS
Definition occtl_prim_feature.h:723
@ OCCTL_EXTRUDE_UNTIL_FIRST
Definition occtl_prim_feature.h:724
@ OCCTL_EXTRUDE_UNTIL_NEXT
Definition occtl_prim_feature.h:721
enum occtl_prim_feat_combine occtl_prim_feat_combine_t
occtl_status_t occtl_prim_make_feat_draft_prism(occtl_graph_t *graph, const occtl_prim_feat_draft_prism_info_t *info, occtl_node_id_t *out_shape)
void occtl_prim_ruled_surface_info_init(occtl_prim_ruled_surface_info_t *info)
void occtl_prim_brake_formed_options_init(occtl_prim_brake_formed_options_t *opts)
struct occtl_prim_extrude_until_info occtl_prim_extrude_until_info_t
struct occtl_prim_face_from_point_grid_options occtl_prim_face_from_point_grid_options_t
enum occtl_prim_cylindrical_hole_kind occtl_prim_cylindrical_hole_kind_t
struct occtl_prim_feat_draft_prism_info occtl_prim_feat_draft_prism_info_t
void occtl_prim_feat_draft_prism_info_init(occtl_prim_feat_draft_prism_info_t *info)
struct occtl_prim_extrude_tapered_info occtl_prim_extrude_tapered_info_t
struct occtl_prim_brake_formed_options occtl_prim_brake_formed_options_t
struct occtl_prim_face_from_curve_grid_options occtl_prim_face_from_curve_grid_options_t
enum occtl_prim_extrude_until_side occtl_prim_extrude_until_side_t
struct occtl_prim_ruled_surface_info occtl_prim_ruled_surface_info_t
occtl_prim_until_kind
Definition occtl_prim_feature.h:615
@ OCCTL_UNTIL_SHAPE
Definition occtl_prim_feature.h:617
@ OCCTL_UNTIL_LENGTH
Definition occtl_prim_feature.h:616
@ OCCTL_UNTIL_THRU_ALL
Definition occtl_prim_feature.h:618
@ OCCTL_UNTIL_HEIGHT
Definition occtl_prim_feature.h:619
occtl_status_t occtl_prim_make_cylindrical_hole(occtl_graph_t *graph, const occtl_prim_cylindrical_hole_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_face_from_boundary_curves(occtl_graph_t *graph, const occtl_prim_face_from_boundary_curves_options_t *options, occtl_node_id_t *out_face)
occtl_prim_feat_combine
Definition occtl_prim_feature.h:629
@ OCCTL_FEAT_SEPARATE
Definition occtl_prim_feature.h:630
@ OCCTL_FEAT_FUSE
Definition occtl_prim_feature.h:632
@ OCCTL_FEAT_CUT
Definition occtl_prim_feature.h:631
occtl_status_t occtl_prim_make_extrude_until(occtl_graph_t *graph, const occtl_prim_extrude_until_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_face_from_point_grid(occtl_graph_t *graph, const occtl_prim_face_from_point_grid_options_t *options, occtl_node_id_t *out_face)
occtl_prim_brake_side
Definition occtl_prim_feature.h:325
@ OCCTL_PRIM_BRAKE_SIDE_LEFT
Definition occtl_prim_feature.h:326
@ OCCTL_PRIM_BRAKE_SIDE_RIGHT
Definition occtl_prim_feature.h:327
void occtl_prim_extrude_tapered_info_init(occtl_prim_extrude_tapered_info_t *info)
void occtl_prim_extrude_until_info_init(occtl_prim_extrude_until_info_t *info)
struct occtl_prim_face_from_surface_options occtl_prim_face_from_surface_options_t
occtl_prim_cylindrical_hole_kind
Definition occtl_prim_feature.h:899
@ OCCTL_CYLINDRICAL_HOLE_BETWEEN_PARAMS
Definition occtl_prim_feature.h:902
@ OCCTL_CYLINDRICAL_HOLE_BLIND
Definition occtl_prim_feature.h:906
@ OCCTL_CYLINDRICAL_HOLE_THRU_NEXT
Definition occtl_prim_feature.h:904
@ OCCTL_CYLINDRICAL_HOLE_UNTIL_END
Definition occtl_prim_feature.h:905
@ OCCTL_CYLINDRICAL_HOLE_THROUGH_ALL
Definition occtl_prim_feature.h:900
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:111
Definition occtl_geom.h:98
Definition occtl_topo_types.h:50
Definition occtl_prim_feature.h:921
uint32_t struct_version
Definition occtl_prim_feature.h:922
double p_to
Definition occtl_prim_feature.h:929
const void * p_next
Definition occtl_prim_feature.h:923
occtl_prim_cylindrical_hole_kind_t kind
Definition occtl_prim_feature.h:927
int32_t with_control
Definition occtl_prim_feature.h:931
occtl_node_id_t base_shape
Definition occtl_prim_feature.h:924
occtl_axis1_placement_t axis
Definition occtl_prim_feature.h:925
double length
Definition occtl_prim_feature.h:930
double radius
Definition occtl_prim_feature.h:926
double p_from
Definition occtl_prim_feature.h:928
Definition occtl_prim_feature.h:423
uint32_t struct_version
Definition occtl_prim_feature.h:424
occtl_node_id_t profile
Definition occtl_prim_feature.h:426
const void * p_next
Definition occtl_prim_feature.h:425
double taper_angle
Definition occtl_prim_feature.h:428
double height
Definition occtl_prim_feature.h:427
Definition occtl_prim_feature.h:488
double taper_angle
Definition occtl_prim_feature.h:493
uint32_t struct_version
Definition occtl_prim_feature.h:489
double height
Definition occtl_prim_feature.h:492
const void * p_next
Definition occtl_prim_feature.h:490
occtl_node_id_t profile_face
Definition occtl_prim_feature.h:491
Definition occtl_prim_feature.h:738
int32_t modify
Definition occtl_prim_feature.h:748
occtl_direction3_t direction
Definition occtl_prim_feature.h:745
occtl_node_id_t target_shape
Definition occtl_prim_feature.h:744
occtl_node_id_t sketch_face
Definition occtl_prim_feature.h:743
occtl_prim_extrude_until_side_t side
Definition occtl_prim_feature.h:746
double limit
Definition occtl_prim_feature.h:749
uint32_t struct_version
Definition occtl_prim_feature.h:739
occtl_prim_feat_combine_t combine
Definition occtl_prim_feature.h:747
occtl_node_id_t base_shape
Definition occtl_prim_feature.h:741
const void * p_next
Definition occtl_prim_feature.h:740
occtl_node_id_t profile
Definition occtl_prim_feature.h:742
Definition occtl_prim_feature.h:191
uint32_t struct_version
Definition occtl_prim_feature.h:192
const void * p_next
Definition occtl_prim_feature.h:193
double tolerance
Definition occtl_prim_feature.h:196
occtl_surface_boundary_curves_create_info_t surface
Definition occtl_prim_feature.h:195
Definition occtl_prim_feature.h:260
double tolerance
Definition occtl_prim_feature.h:264
const void * p_next
Definition occtl_prim_feature.h:262
occtl_surface_curve_grid_create_info_t surface
Definition occtl_prim_feature.h:263
uint32_t struct_version
Definition occtl_prim_feature.h:261
Definition occtl_prim_feature.h:122
occtl_surface_point_grid_create_info_t surface
Definition occtl_prim_feature.h:125
double tolerance
Definition occtl_prim_feature.h:126
uint32_t struct_version
Definition occtl_prim_feature.h:123
const void * p_next
Definition occtl_prim_feature.h:124
Definition occtl_prim_feature.h:46
double tolerance
Definition occtl_prim_feature.h:54
const void * p_next
Definition occtl_prim_feature.h:48
size_t inner_wire_count
Definition occtl_prim_feature.h:53
const occtl_node_id_t * inner_wires
Definition occtl_prim_feature.h:52
occtl_node_id_t outer_wire
Definition occtl_prim_feature.h:51
occtl_rep_id_t surface_id
Definition occtl_prim_feature.h:49
uint32_t struct_version
Definition occtl_prim_feature.h:47
Definition occtl_prim_feature.h:818
occtl_node_id_t profile_face
Definition occtl_prim_feature.h:822
double length
Definition occtl_prim_feature.h:829
occtl_node_id_t base_shape
Definition occtl_prim_feature.h:821
int32_t modify
Definition occtl_prim_feature.h:826
uint32_t struct_version
Definition occtl_prim_feature.h:819
occtl_prim_feat_combine_t combine
Definition occtl_prim_feature.h:825
const void * p_next
Definition occtl_prim_feature.h:820
occtl_prim_until_kind_t until_kind
Definition occtl_prim_feature.h:827
double taper_angle
Definition occtl_prim_feature.h:824
occtl_node_id_t sketch_face
Definition occtl_prim_feature.h:823
occtl_node_id_t until_shape
Definition occtl_prim_feature.h:828
Definition occtl_prim_feature.h:646
occtl_node_id_t base_shape
Definition occtl_prim_feature.h:649
occtl_direction3_t direction
Definition occtl_prim_feature.h:652
occtl_prim_until_kind_t until_kind
Definition occtl_prim_feature.h:655
occtl_node_id_t until_shape
Definition occtl_prim_feature.h:656
double length
Definition occtl_prim_feature.h:657
occtl_node_id_t sketch_face
Definition occtl_prim_feature.h:651
occtl_prim_feat_combine_t combine
Definition occtl_prim_feature.h:653
occtl_node_id_t profile
Definition occtl_prim_feature.h:650
uint32_t struct_version
Definition occtl_prim_feature.h:647
const void * p_next
Definition occtl_prim_feature.h:648
int32_t modify
Definition occtl_prim_feature.h:654
Definition occtl_prim_feature.h:552
const void * p_next
Definition occtl_prim_feature.h:554
occtl_node_id_t section_a
Definition occtl_prim_feature.h:555
occtl_node_id_t section_b
Definition occtl_prim_feature.h:556
uint32_t struct_version
Definition occtl_prim_feature.h:553
Definition occtl_core.h:251
Definition occtl_surfaces.h:1987
Definition occtl_surfaces.h:2119
Definition occtl_surfaces.h:1898