28#ifndef OCCTL_TOPO_BUILD_H
29#define OCCTL_TOPO_BUILD_H
46#define OCCTL_TOPO_MAKE_VERTEX_INFO_VERSION_1 1u
59#define OCCTL_TOPO_MAKE_VERTEX_INFO_INIT \
60 {OCCTL_TOPO_MAKE_VERTEX_INFO_VERSION_1, NULL, {0.0, 0.0, 0.0}, 0.0}
75#define OCCTL_TOPO_MAKE_EDGE_INFO_VERSION_1 1u
96#define OCCTL_TOPO_MAKE_EDGE_INFO_INIT \
97 {OCCTL_TOPO_MAKE_EDGE_INFO_VERSION_1, \
99 OCCTL_NODE_ID_INVALID, \
100 OCCTL_NODE_ID_INVALID, \
101 OCCTL_REP_ID_INVALID, \
119#define OCCTL_TOPO_MAKE_WIRE_INFO_VERSION_1 1u
136#define OCCTL_TOPO_MAKE_WIRE_INFO_INIT {OCCTL_TOPO_MAKE_WIRE_INFO_VERSION_1, NULL, NULL, 0}
151#define OCCTL_TOPO_EDGES_TO_WIRES_OPTIONS_VERSION_1 1u
170#define OCCTL_TOPO_EDGES_TO_WIRES_OPTIONS_INIT \
171 {OCCTL_TOPO_EDGES_TO_WIRES_OPTIONS_VERSION_1, NULL, NULL, 0, 0.0, 1}
187#define OCCTL_TOPO_WIRE_OFFSET_2D_OPTIONS_VERSION_1 1u
198 OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_RESERVED_FUTURE = 0x7fffffff
212 OCCTL_OFFSET_JOIN_RESERVED_FUTURE = 0x7fffffff
233#define OCCTL_TOPO_WIRE_OFFSET_2D_OPTIONS_INIT \
234 {OCCTL_TOPO_WIRE_OFFSET_2D_OPTIONS_VERSION_1, \
236 OCCTL_NODE_ID_INVALID, \
238 OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_ARC, \
256#define OCCTL_TOPO_WIRE_FIX_DEGENERATE_EDGES_OPTIONS_VERSION_1 1u
273#define OCCTL_TOPO_WIRE_FIX_DEGENERATE_EDGES_OPTIONS_INIT \
274 {OCCTL_TOPO_WIRE_FIX_DEGENERATE_EDGES_OPTIONS_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, 1.0e-9}
291#define OCCTL_TOPO_FACE_CHAMFER_2D_OPTIONS_VERSION_1 1u
312#define OCCTL_TOPO_FACE_CHAMFER_2D_OPTIONS_INIT \
313 {OCCTL_TOPO_FACE_CHAMFER_2D_OPTIONS_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, NULL, 0, 1.0, 1.0}
315#define OCCTL_TOPO_WIRE_CHAMFER_2D_OPTIONS_VERSION_1 1u
334#define OCCTL_TOPO_WIRE_CHAMFER_2D_OPTIONS_INIT \
335 {OCCTL_TOPO_WIRE_CHAMFER_2D_OPTIONS_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, NULL, 0, 1.0, 1.0}
365#define OCCTL_TOPO_MAKE_FACE_INFO_VERSION_1 1u
387#define OCCTL_TOPO_MAKE_FACE_INFO_INIT \
388 {OCCTL_TOPO_MAKE_FACE_INFO_VERSION_1, \
390 OCCTL_REP_ID_INVALID, \
391 OCCTL_NODE_ID_INVALID, \
409#define OCCTL_TOPO_MAKE_FACE_FROM_WIRES_AUTO_OPTIONS_VERSION_1 1u
430#define OCCTL_TOPO_MAKE_FACE_FROM_WIRES_AUTO_OPTIONS_INIT \
431 {OCCTL_TOPO_MAKE_FACE_FROM_WIRES_AUTO_OPTIONS_VERSION_1, \
433 OCCTL_REP_ID_INVALID, \
454#define OCCTL_TOPO_MAKE_SHELL_INFO_VERSION_1 1u
468#define OCCTL_TOPO_MAKE_SHELL_INFO_INIT {OCCTL_TOPO_MAKE_SHELL_INFO_VERSION_1, NULL, NULL, 0, 0}
483#define OCCTL_TOPO_MAKE_SOLID_INFO_VERSION_1 1u
497#define OCCTL_TOPO_MAKE_SOLID_INFO_INIT {OCCTL_TOPO_MAKE_SOLID_INFO_VERSION_1, NULL, NULL, 0}
512#define OCCTL_TOPO_MAKE_COMPOUND_INFO_VERSION_1 1u
526#define OCCTL_TOPO_MAKE_COMPOUND_INFO_INIT {OCCTL_TOPO_MAKE_COMPOUND_INFO_VERSION_1, NULL, NULL, 0}
744 size_t* out_removed);
952#define OCCTL_TOPO_MAKE_COMPSOLID_INFO_VERSION_1 1u
966#define OCCTL_TOPO_MAKE_COMPSOLID_INFO_INIT \
967 {OCCTL_TOPO_MAKE_COMPSOLID_INFO_VERSION_1, NULL, NULL, 0}
1569 int32_t*
const out_has_continuity);
1724 double*
const out_u);
1744 int32_t*
const out_has_polygon3d);
1765 int32_t*
const out_has_polygon_on_surface);
2103#define OCCTL_MATERIAL_INFO_VERSION_1 1u
2126#define OCCTL_MATERIAL_INFO_INIT \
2127 {OCCTL_MATERIAL_INFO_VERSION_1, \
2134 {1.0f, 1.0f, 1.0f, 1.0f}, \
2151 OCCTL_JOINT_RESERVED_FUTURE = 0x7fffffff
2154#define OCCTL_JOINT_INFO_VERSION_1 1u
2181#define OCCTL_JOINT_INFO_INIT \
2182 {OCCTL_JOINT_INFO_VERSION_1, \
2184 OCCTL_JOINT_ID_INVALID, \
2185 OCCTL_JOINT_RIGID, \
2186 OCCTL_NODE_ID_INVALID, \
2187 OCCTL_NODE_ID_INVALID, \
2188 {{1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0}}, \
2189 {{1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0}}, \
2332 OCCTL_SELECT_BBOX_MODE_RESERVED_FUTURE = 0x7fffffff
2343 OCCTL_SELECT_AXIS_RESERVED_FUTURE = 0x7fffffff
2359 OCCTL_SELECT_AXIS_POSITION_RESERVED_FUTURE = 0x7fffffff
2370 OCCTL_SELECT_NORMAL_MODE_RESERVED_FUTURE = 0x7fffffff
2383 OCCTL_SELECT_MEASURE_KIND_RESERVED_FUTURE = 0x7fffffff
2399 OCCTL_SELECT_SORT_KEY_RESERVED_FUTURE = 0x7fffffff
2409 OCCTL_SELECT_SORT_DIRECTION_RESERVED_FUTURE = 0x7fffffff
2423 OCCTL_SELECT_GROUP_KEY_RESERVED_FUTURE = 0x7fffffff
2426#define OCCTL_SELECT_OPTIONS_VERSION_1 1u
2427#define OCCTL_SELECT_METADATA_FILTER_VERSION_1 1u
2428#define OCCTL_SELECT_DISTANCE_TO_NODE_SORT_VERSION_1 1u
2429#define OCCTL_SELECT_GROUP_OPTIONS_VERSION_1 1u
2430#define OCCTL_SELECT_GROUP_VIEW_VERSION_1 1u
2481#define OCCTL_SELECT_OPTIONS_INIT \
2482 {OCCTL_SELECT_OPTIONS_VERSION_1, \
2484 OCCTL_NODE_ID_INVALID, \
2490 {0.0f, 0.0f, 0.0f, 1.0f}, \
2493 {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, \
2494 OCCTL_SELECT_BBOX_INTERSECTS, \
2496 OCCTL_CURVE_KIND_UNDEFINED, \
2498 OCCTL_SURFACE_KIND_UNDEFINED, \
2500 OCCTL_SELECT_AXIS_Z, \
2501 OCCTL_SELECT_AXIS_POSITION_MAX, \
2505 OCCTL_SELECT_NORMAL_PARALLEL, \
2508 OCCTL_SELECT_MEASURE_FACE_AREA, \
2511 OCCTL_SELECT_SORT_NONE, \
2512 OCCTL_SELECT_SORT_ASCENDING, \
2513 OCCTL_SELECT_AXIS_Z, \
2514 OCCTL_SELECT_MEASURE_FACE_AREA, \
2535#define OCCTL_SELECT_METADATA_FILTER_INIT \
2536 {OCCTL_SELECT_METADATA_FILTER_VERSION_1, NULL, NULL, 0u, NULL, 0u, 0}
2557#define OCCTL_SELECT_DISTANCE_TO_NODE_SORT_INIT \
2558 {OCCTL_SELECT_DISTANCE_TO_NODE_SORT_VERSION_1, NULL, OCCTL_NODE_ID_INVALID}
2574#define OCCTL_SELECT_GROUP_OPTIONS_INIT \
2575 {OCCTL_SELECT_GROUP_OPTIONS_VERSION_1, \
2577 OCCTL_SELECT_GROUP_KIND, \
2578 OCCTL_SELECT_AXIS_Z, \
2606#define OCCTL_SELECT_GROUP_VIEW_INIT \
2607 {OCCTL_SELECT_GROUP_VIEW_VERSION_1, \
2609 OCCTL_SELECT_GROUP_KIND, \
2610 OCCTL_KIND_INVALID, \
2611 OCCTL_CURVE_KIND_UNDEFINED, \
2612 OCCTL_SURFACE_KIND_UNDEFINED, \
2617 {0.0f, 0.0f, 0.0f, 0.0f}, \
3059 double* out_distance);
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
enum occtl_node_kind occtl_node_kind_t
OCCT-Light: 3D curve representation in the topology graph.
enum occtl_curve_kind occtl_curve_kind_t
OCCT-Light: geometry primitive types and math utilities.
OCCT-Light: surface geometry via graph + rep_id.
enum occtl_surface_kind occtl_surface_kind_t
occtl_status_t occtl_topo_wire_offset_2d(occtl_graph_t *graph, const occtl_topo_wire_offset_2d_options_t *options, occtl_node_id_t *out_wire)
void occtl_select_iter_free(occtl_select_iter_t *iter)
occtl_status_t occtl_graph_clone(const occtl_graph_t *source, occtl_graph_t **out_graph)
occtl_status_t occtl_topo_shell_add_face(occtl_graph_t *graph, occtl_node_id_t shell, occtl_node_id_t face, occtl_orientation_t orientation)
struct occtl_topo_face_chamfer_2d_options occtl_topo_face_chamfer_2d_options_t
occtl_status_t occtl_topo_add_pcurve(occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t face, occtl_rep_id_t pcurve_id, double first, double last, occtl_orientation_t orientation)
occtl_status_t occtl_topo_set_ref_location(occtl_graph_t *graph, occtl_ref_id_t ref_id, occtl_transform_t transform)
occtl_status_t occtl_topo_set_edge_tolerance(occtl_graph_t *graph, occtl_node_id_t edge, double tol)
occtl_status_t occtl_topo_remove_subgraph(occtl_graph_t *graph, occtl_node_id_t id)
occtl_status_t occtl_topo_curves_to_wire(occtl_graph_t *graph, const occtl_rep_id_t *curve_ids, size_t count, occtl_node_id_t *out_wire)
struct occtl_topo_wire_chamfer_2d_options occtl_topo_wire_chamfer_2d_options_t
occtl_status_t occtl_graph_descendant_faces_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_make_solid(occtl_graph_t *graph, const occtl_topo_make_solid_info_t *info, occtl_node_id_t *out_solid)
occtl_status_t occtl_topo_set_coedge_param_range(occtl_graph_t *graph, occtl_node_id_t coedge, double first, double last)
enum occtl_joint_kind occtl_joint_kind_t
struct occtl_color_rgba occtl_color_rgba_t
occtl_status_t occtl_topo_face_chamfer_2d(occtl_graph_t *graph, const occtl_topo_face_chamfer_2d_options_t *options, occtl_node_id_t *out_face)
struct occtl_graph_uv_bounds occtl_graph_uv_bounds_t
occtl_status_t occtl_topo_replace_coedge_pcurve(occtl_graph_t *graph, occtl_node_id_t coedge, occtl_rep_id_t pcurve_id)
occtl_status_t occtl_topo_remove_with_replacement(occtl_graph_t *graph, occtl_node_id_t node, occtl_node_id_t replacement)
void occtl_topo_wire_fix_degenerate_options_init(occtl_topo_wire_fix_degenerate_edges_options_t *options)
struct occtl_topo_make_wire_info occtl_topo_make_wire_info_t
occtl_status_t occtl_topo_set_edge_is_degenerate(occtl_graph_t *graph, occtl_node_id_t edge, int32_t flag)
struct occtl_select_bbox occtl_select_bbox_t
void occtl_topo_make_shell_info_init(occtl_topo_make_shell_info_t *info)
struct occtl_select_group_view occtl_select_group_view_t
struct occtl_batch occtl_batch_t
Definition occtl_topo_build.h:1064
occtl_status_t occtl_graph_face_uv_bounds_get(occtl_graph_t *graph, occtl_node_id_t face, occtl_graph_uv_bounds_t *out_uv_bounds)
void occtl_topo_make_face_from_wires_auto_options_init(occtl_topo_make_face_from_wires_auto_options_t *options)
occtl_status_t occtl_graph_pair_distance_get(occtl_graph_t *graph, occtl_node_id_t first, occtl_node_id_t second, double *out_distance)
void occtl_select_group_iter_free(occtl_select_group_iter_t *iter)
struct occtl_graph_mass_properties occtl_graph_mass_properties_t
enum occtl_select_group_key occtl_select_group_key_t
struct occtl_topo_edges_to_wires_options occtl_topo_edges_to_wires_options_t
struct occtl_select_metadata_filter occtl_select_metadata_filter_t
void occtl_select_group_options_init(occtl_select_group_options_t *options)
occtl_status_t occtl_topo_compound_add_child(occtl_graph_t *graph, occtl_node_id_t compound, occtl_node_id_t child, occtl_orientation_t orientation)
occtl_status_t occtl_topo_make_edge(occtl_graph_t *graph, const occtl_topo_make_edge_info_t *info, occtl_node_id_t *out_edge)
occtl_status_t occtl_topo_remove_ref(occtl_graph_t *graph, occtl_ref_id_t ref_id)
occtl_status_t occtl_topo_set_wire_ref_is_outer(occtl_graph_t *graph, occtl_ref_id_t ref_id, int32_t flag)
void occtl_topo_make_face_info_init(occtl_topo_make_face_info_t *info)
occtl_status_t occtl_topo_make_face_from_wires_auto(occtl_graph_t *graph, const occtl_topo_make_face_from_wires_auto_options_t *options, occtl_node_id_t *out_face)
occtl_status_t occtl_select_tagged_iter_create(occtl_graph_t *graph, const occtl_select_options_t *options, const char *tag, size_t tagLen, occtl_select_iter_t **out_iter)
enum occtl_select_axis_position occtl_select_axis_position_t
occtl_select_bbox_mode
Definition occtl_topo_build.h:2328
@ OCCTL_SELECT_BBOX_CONTAINS_CENTER
Definition occtl_topo_build.h:2331
@ OCCTL_SELECT_BBOX_INSIDE
Definition occtl_topo_build.h:2330
@ OCCTL_SELECT_BBOX_INTERSECTS
Definition occtl_topo_build.h:2329
occtl_offset_join_type
Definition occtl_topo_build.h:208
@ OCCTL_OFFSET_JOIN_INTERSECTION
Definition occtl_topo_build.h:211
@ OCCTL_OFFSET_JOIN_TANGENT
Definition occtl_topo_build.h:210
@ OCCTL_OFFSET_JOIN_ARC
Definition occtl_topo_build.h:209
occtl_status_t occtl_topo_set_vertex_tolerance(occtl_graph_t *graph, occtl_node_id_t vertex, double tol)
occtl_status_t occtl_topo_edge_has_polygon3d(const occtl_graph_t *const graph, occtl_node_id_t edge, int32_t *const out_has_polygon3d)
occtl_status_t occtl_topo_set_vertex_point(occtl_graph_t *graph, occtl_node_id_t vertex, occtl_point3_t point)
struct occtl_select_group_iter occtl_select_group_iter_t
Definition occtl_topo_build.h:2242
occtl_status_t occtl_batch_commit(occtl_batch_t *batch)
occtl_status_t occtl_topo_compound_remove_child(occtl_graph_t *graph, occtl_node_id_t compound, occtl_node_id_t child)
occtl_status_t occtl_topo_face_add_holes(occtl_graph_t *graph, occtl_node_id_t face, const occtl_node_id_t *holes, size_t hole_count)
struct occtl_topo_make_edge_info occtl_topo_make_edge_info_t
void occtl_topo_wire_offset_2d_options_init(occtl_topo_wire_offset_2d_options_t *options)
occtl_status_t occtl_topo_set_edge_start_vertex(occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t vertex)
void occtl_select_options_init(occtl_select_options_t *options)
occtl_status_t occtl_topo_solid_remove_shell(occtl_graph_t *graph, occtl_node_id_t solid, occtl_node_id_t shell)
struct occtl_topo_make_face_info occtl_topo_make_face_info_t
occtl_topo_wire_offset_2d_join
Definition occtl_topo_build.h:193
@ OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_TANGENT
Definition occtl_topo_build.h:195
@ OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_INTERSECTION
Definition occtl_topo_build.h:196
@ OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_ARC
Definition occtl_topo_build.h:194
struct occtl_topo_make_face_from_wires_auto_options occtl_topo_make_face_from_wires_auto_options_t
occtl_select_axis
Definition occtl_topo_build.h:2339
@ OCCTL_SELECT_AXIS_X
Definition occtl_topo_build.h:2340
@ OCCTL_SELECT_AXIS_Z
Definition occtl_topo_build.h:2342
@ OCCTL_SELECT_AXIS_Y
Definition occtl_topo_build.h:2341
occtl_status_t occtl_topo_edge_has_continuity(const occtl_graph_t *const graph, occtl_node_id_t edge, occtl_node_id_t faceA, occtl_node_id_t faceB, int32_t *const out_has_continuity)
struct occtl_joint_info occtl_joint_info_t
occtl_status_t occtl_topo_edge_find_coedge_on_face_oriented(const occtl_graph_t *const graph, occtl_node_id_t edge, occtl_node_id_t face, occtl_orientation_t orientation, occtl_node_id_t *const out_coedge)
occtl_status_t occtl_topo_set_ref_orientation(occtl_graph_t *graph, occtl_ref_id_t ref_id, occtl_orientation_t orientation)
occtl_status_t occtl_topo_edge_continuity(const occtl_graph_t *const graph, occtl_node_id_t edge, occtl_node_id_t faceA, occtl_node_id_t faceB, occtl_shape_continuity_t *const out_continuity)
occtl_status_t occtl_topo_set_edge_end_vertex(occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t vertex)
enum occtl_offset_join_type occtl_offset_join_type_t
occtl_status_t occtl_topo_remove_rep(occtl_graph_t *graph, occtl_rep_id_t rep_id)
struct occtl_topo_make_shell_info occtl_topo_make_shell_info_t
occtl_status_t occtl_topo_set_face_tolerance(occtl_graph_t *graph, occtl_node_id_t face, double tol)
occtl_status_t occtl_graph_mass_properties_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_graph_mass_properties_t *out_properties)
void occtl_topo_make_compsolid_info_init(occtl_topo_make_compsolid_info_t *info)
occtl_select_normal_mode
Definition occtl_topo_build.h:2366
@ OCCTL_SELECT_NORMAL_PARALLEL
Definition occtl_topo_build.h:2367
@ OCCTL_SELECT_NORMAL_ANTIPARALLEL
Definition occtl_topo_build.h:2368
@ OCCTL_SELECT_NORMAL_EITHER
Definition occtl_topo_build.h:2369
void occtl_topo_wire_chamfer_2d_options_init(occtl_topo_wire_chamfer_2d_options_t *options)
struct occtl_topo_make_solid_info occtl_topo_make_solid_info_t
occtl_status_t occtl_graph_compact(occtl_graph_t *graph)
occtl_status_t occtl_topo_wire_chamfer_2d(occtl_graph_t *graph, const occtl_topo_wire_chamfer_2d_options_t *options, occtl_node_id_t *out_wire)
struct occtl_topo_make_compsolid_info occtl_topo_make_compsolid_info_t
occtl_status_t occtl_topo_set_shell_is_closed(occtl_graph_t *graph, occtl_node_id_t shell, int32_t flag)
occtl_status_t occtl_topo_vertex_pcurve_parameter(const occtl_graph_t *const graph, occtl_node_id_t vertex, occtl_node_id_t coedge, double *const out_u)
occtl_status_t occtl_topo_set_wire_is_closed(occtl_graph_t *graph, occtl_node_id_t wire, int32_t flag)
occtl_select_sort_direction
Definition occtl_topo_build.h:2406
@ OCCTL_SELECT_SORT_ASCENDING
Definition occtl_topo_build.h:2407
@ OCCTL_SELECT_SORT_DESCENDING
Definition occtl_topo_build.h:2408
occtl_status_t occtl_graph_clear_cached(occtl_graph_t *graph, occtl_node_id_t node, occtl_ref_id_t ref)
occtl_select_sort_key
Definition occtl_topo_build.h:2390
@ OCCTL_SELECT_SORT_DISTANCE_TO_POINT
Definition occtl_topo_build.h:2394
@ OCCTL_SELECT_SORT_AXIS_COORDINATE
Definition occtl_topo_build.h:2392
@ OCCTL_SELECT_SORT_NAME
Definition occtl_topo_build.h:2396
@ OCCTL_SELECT_SORT_DISTANCE_TO_NODE
Definition occtl_topo_build.h:2398
@ OCCTL_SELECT_SORT_NONE
Definition occtl_topo_build.h:2391
@ OCCTL_SELECT_SORT_MEASURE
Definition occtl_topo_build.h:2393
@ OCCTL_SELECT_SORT_UID
Definition occtl_topo_build.h:2397
occtl_select_measure_kind
Definition occtl_topo_build.h:2377
@ OCCTL_SELECT_MEASURE_VOLUME
Definition occtl_topo_build.h:2382
@ OCCTL_SELECT_MEASURE_FACE_AREA
Definition occtl_topo_build.h:2380
@ OCCTL_SELECT_MEASURE_SURFACE_AREA
Definition occtl_topo_build.h:2381
@ OCCTL_SELECT_MEASURE_WIRE_LENGTH
Definition occtl_topo_build.h:2379
@ OCCTL_SELECT_MEASURE_EDGE_LENGTH
Definition occtl_topo_build.h:2378
occtl_status_t occtl_topo_set_edge_same_range(occtl_graph_t *graph, occtl_node_id_t edge, int32_t flag)
occtl_status_t occtl_graph_obb_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_graph_obb_t *out_obb)
occtl_status_t occtl_topo_face_uv_bounds_restricted(const occtl_graph_t *const graph, occtl_node_id_t face, double umin, double umax, double vmin, double vmax, double u, double v, occtl_point3_t *const out_point, occtl_vector3_t *const out_d1u, occtl_vector3_t *const out_d1v)
occtl_status_t occtl_select_iter_next(occtl_select_iter_t *iter, occtl_node_id_t *out_node)
occtl_status_t occtl_graph_measure_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_select_measure_kind_t kind, double *out_value)
occtl_status_t occtl_topo_vertex_point_in_usage(const occtl_graph_t *const graph, occtl_node_id_t vertex, occtl_node_id_t parent, occtl_point3_t *const out_point)
enum occtl_select_normal_mode occtl_select_normal_mode_t
occtl_status_t occtl_topo_make_shell(occtl_graph_t *graph, const occtl_topo_make_shell_info_t *info, occtl_node_id_t *out_shell)
occtl_select_axis_position
Definition occtl_topo_build.h:2355
@ OCCTL_SELECT_AXIS_POSITION_CENTER
Definition occtl_topo_build.h:2358
@ OCCTL_SELECT_AXIS_POSITION_MIN
Definition occtl_topo_build.h:2356
@ OCCTL_SELECT_AXIS_POSITION_MAX
Definition occtl_topo_build.h:2357
enum occtl_select_bbox_mode occtl_select_bbox_mode_t
occtl_status_t occtl_graph_adjacent_faces_get(occtl_graph_t *graph, occtl_node_id_t face, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
enum occtl_select_measure_kind occtl_select_measure_kind_t
occtl_status_t occtl_topo_face_remove_holes(occtl_graph_t *graph, occtl_node_id_t face, const occtl_node_id_t *holes, size_t hole_count)
occtl_status_t occtl_graph_begin_batch(occtl_graph_t *graph, occtl_batch_t **out_batch)
void occtl_topo_make_edge_info_init(occtl_topo_make_edge_info_t *info)
occtl_status_t occtl_topo_coedge_orientation(const occtl_graph_t *const graph, occtl_node_id_t coedge, occtl_orientation_t *const out_orientation)
occtl_status_t occtl_topo_set_face_natural_restriction(occtl_graph_t *graph, occtl_node_id_t face, int32_t flag)
occtl_status_t occtl_topo_cleanup_removed_refs(occtl_graph_t *graph)
occtl_status_t occtl_graph_adjacent_edges_get(occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_make_compound(occtl_graph_t *graph, const occtl_topo_make_compound_info_t *info, occtl_node_id_t *out_compound)
occtl_status_t occtl_topo_edge_remove_vertex(occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t vertex)
occtl_status_t occtl_topo_make_vertex(occtl_graph_t *graph, const occtl_topo_make_vertex_info_t *info, occtl_node_id_t *out_vertex)
struct occtl_metadata_key_view occtl_metadata_key_view_t
occtl_status_t occtl_graph_descendant_edges_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_coedge_has_polygon_on_surface(const occtl_graph_t *const graph, occtl_node_id_t coedge, int32_t *const out_has_polygon_on_surface)
occtl_status_t occtl_topo_wire_fix_degenerate(occtl_graph_t *graph, const occtl_topo_wire_fix_degenerate_edges_options_t *options, size_t *out_removed)
occtl_status_t occtl_select_group_iter_create(occtl_graph_t *graph, const occtl_select_options_t *select_options, const occtl_select_group_options_t *group_options, occtl_select_group_iter_t **out_iter)
occtl_status_t occtl_topo_set_edge_is_closed(occtl_graph_t *graph, occtl_node_id_t edge, int32_t flag)
occtl_status_t occtl_select_group_iter_next(occtl_select_group_iter_t *iter, occtl_select_group_view_t *out_view)
void occtl_topo_make_vertex_info_init(occtl_topo_make_vertex_info_t *info)
struct occtl_material_info occtl_material_info_t
struct occtl_select_distance_to_node_sort occtl_select_distance_to_node_sort_t
void occtl_topo_make_solid_info_init(occtl_topo_make_solid_info_t *info)
occtl_status_t occtl_topo_edge_split(occtl_graph_t *graph, occtl_node_id_t edge, double parameter, occtl_node_id_t *out_edge1, occtl_node_id_t *out_edge2)
struct occtl_graph_obb occtl_graph_obb_t
struct occtl_topo_make_compound_info occtl_topo_make_compound_info_t
struct occtl_select_iter occtl_select_iter_t
Definition occtl_topo_build.h:2231
struct occtl_select_options occtl_select_options_t
occtl_status_t occtl_select_iter_create(occtl_graph_t *graph, const occtl_select_options_t *options, occtl_select_iter_t **out_iter)
occtl_status_t occtl_topo_make_face(occtl_graph_t *graph, const occtl_topo_make_face_info_t *info, occtl_node_id_t *out_face)
occtl_status_t occtl_topo_edges_to_wires(occtl_graph_t *graph, const occtl_topo_edges_to_wires_options_t *options, occtl_node_id_t *out_wires, size_t cap, size_t *out_count)
enum occtl_select_axis occtl_select_axis_t
void occtl_select_group_view_init(occtl_select_group_view_t *view)
occtl_status_t occtl_graph_descendant_vertices_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_face_surface_kind_get(occtl_graph_t *graph, occtl_node_id_t face, occtl_surface_kind_t *out_kind)
occtl_status_t occtl_topo_edge_find_coedge_on_face(const occtl_graph_t *const graph, occtl_node_id_t edge, occtl_node_id_t face, occtl_node_id_t *const out_coedge)
struct occtl_topo_wire_offset_2d_options occtl_topo_wire_offset_2d_options_t
occtl_status_t occtl_graph_edge_curve_kind_get(occtl_graph_t *graph, occtl_node_id_t edge, occtl_curve_kind_t *out_kind)
struct occtl_tag_view occtl_tag_view_t
occtl_status_t occtl_batch_abort(occtl_batch_t *batch)
occtl_select_group_key
Definition occtl_topo_build.h:2416
@ OCCTL_SELECT_GROUP_COLOR
Definition occtl_topo_build.h:2422
@ OCCTL_SELECT_GROUP_NAME
Definition occtl_topo_build.h:2421
@ OCCTL_SELECT_GROUP_SURFACE_KIND
Definition occtl_topo_build.h:2420
@ OCCTL_SELECT_GROUP_KIND
Definition occtl_topo_build.h:2417
@ OCCTL_SELECT_GROUP_CURVE_KIND
Definition occtl_topo_build.h:2419
@ OCCTL_SELECT_GROUP_AXIS_COORDINATE
Definition occtl_topo_build.h:2418
struct occtl_topo_make_vertex_info occtl_topo_make_vertex_info_t
struct occtl_topo_wire_fix_degenerate_edges_options occtl_topo_wire_fix_degenerate_edges_options_t
occtl_status_t occtl_topo_edge_add_internal_vertex(occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t vertex)
void occtl_topo_face_chamfer_2d_options_init(occtl_topo_face_chamfer_2d_options_t *options)
occtl_status_t occtl_topo_replace_edge_curve(occtl_graph_t *graph, occtl_node_id_t edge, occtl_rep_id_t curve_id)
void occtl_topo_make_wire_info_init(occtl_topo_make_wire_info_t *info)
void occtl_topo_edges_to_wires_options_init(occtl_topo_edges_to_wires_options_t *options)
occtl_joint_kind
Definition occtl_topo_build.h:2145
@ OCCTL_JOINT_REVOLUTE
Definition occtl_topo_build.h:2147
@ OCCTL_JOINT_LINEAR
Definition occtl_topo_build.h:2148
@ OCCTL_JOINT_RIGID
Definition occtl_topo_build.h:2146
@ OCCTL_JOINT_BALL
Definition occtl_topo_build.h:2150
@ OCCTL_JOINT_CYLINDRICAL
Definition occtl_topo_build.h:2149
occtl_status_t occtl_graph_descendants_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_node_kind_t descendant_kind, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
void occtl_topo_make_compound_info_init(occtl_topo_make_compound_info_t *info)
occtl_status_t occtl_topo_make_compsolid(occtl_graph_t *graph, const occtl_topo_make_compsolid_info_t *info, occtl_node_id_t *out_compsolid)
occtl_status_t occtl_topo_solid_add_shell(occtl_graph_t *graph, occtl_node_id_t solid, occtl_node_id_t shell, occtl_orientation_t orientation)
occtl_status_t occtl_graph_bbox_get(occtl_graph_t *graph, occtl_node_id_t node, occtl_select_bbox_t *out_bbox)
occtl_status_t occtl_topo_set_edge_same_parameter(occtl_graph_t *graph, occtl_node_id_t edge, int32_t flag)
occtl_status_t occtl_topo_remove(occtl_graph_t *graph, occtl_node_id_t id)
enum occtl_select_sort_key occtl_select_sort_key_t
struct occtl_select_group_options occtl_select_group_options_t
enum occtl_topo_wire_offset_2d_join occtl_topo_wire_offset_2d_join_t
occtl_status_t occtl_topo_make_wire(occtl_graph_t *graph, const occtl_topo_make_wire_info_t *info, occtl_node_id_t *out_wire)
occtl_status_t occtl_topo_replace_face_surface(occtl_graph_t *graph, occtl_node_id_t face, occtl_rep_id_t surface_id)
occtl_status_t occtl_topo_edge_max_continuity(const occtl_graph_t *const graph, occtl_node_id_t edge, occtl_shape_continuity_t *const out_continuity)
occtl_status_t occtl_topo_set_edge_param_range(occtl_graph_t *graph, occtl_node_id_t edge, double first, double last)
occtl_status_t occtl_topo_set_coedge_uv_box(occtl_graph_t *graph, occtl_node_id_t coedge, occtl_point2_t uv_lo, occtl_point2_t uv_hi)
enum occtl_select_sort_direction occtl_select_sort_direction_t
occtl_status_t occtl_topo_shell_remove_face(occtl_graph_t *graph, occtl_node_id_t shell, occtl_node_id_t face)
OCCT-Light: Topology relation queries, hit tests, and contact analysis.
enum occtl_shape_continuity occtl_shape_continuity_t
enum occtl_orientation occtl_orientation_t
OCCT-Light: Core topology identity types.
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_topo_build.h:2096
float a
Definition occtl_topo_build.h:2100
float r
Definition occtl_topo_build.h:2097
float b
Definition occtl_topo_build.h:2099
float g
Definition occtl_topo_build.h:2098
Definition occtl_geom.h:98
Definition occtl_topo_build.h:2292
double linear_length
Definition occtl_topo_build.h:2293
double mass
Definition occtl_topo_build.h:2296
double volume
Definition occtl_topo_build.h:2295
occtl_point3_t centre_of_mass
Definition occtl_topo_build.h:2297
double surface_area
Definition occtl_topo_build.h:2294
double inertia[9]
Definition occtl_topo_build.h:2298
Definition occtl_topo_build.h:2260
double x_half_size
Definition occtl_topo_build.h:2265
double y_half_size
Definition occtl_topo_build.h:2266
occtl_direction3_t x_direction
Definition occtl_topo_build.h:2262
double z_half_size
Definition occtl_topo_build.h:2267
occtl_direction3_t y_direction
Definition occtl_topo_build.h:2263
occtl_direction3_t z_direction
Definition occtl_topo_build.h:2264
occtl_point3_t center
Definition occtl_topo_build.h:2261
Definition occtl_topo_build.h:2274
double u_max
Definition occtl_topo_build.h:2276
double v_max
Definition occtl_topo_build.h:2278
double v_min
Definition occtl_topo_build.h:2277
int32_t is_natural_restriction
Definition occtl_topo_build.h:2279
double u_min
Definition occtl_topo_build.h:2275
Definition occtl_topo_types.h:120
Definition occtl_topo_build.h:2165
occtl_transform_t frame_a
Definition occtl_topo_build.h:2172
occtl_uid_t metadata_uid
Definition occtl_topo_build.h:2178
occtl_joint_id_t id
Definition occtl_topo_build.h:2168
occtl_node_id_t node_a
Definition occtl_topo_build.h:2170
const void * p_next
Definition occtl_topo_build.h:2167
double limit_max
Definition occtl_topo_build.h:2177
int32_t has_limit_min
Definition occtl_topo_build.h:2174
int32_t has_limit_max
Definition occtl_topo_build.h:2176
occtl_node_id_t node_b
Definition occtl_topo_build.h:2171
occtl_transform_t frame_b
Definition occtl_topo_build.h:2173
double limit_min
Definition occtl_topo_build.h:2175
uint32_t struct_version
Definition occtl_topo_build.h:2166
occtl_joint_kind_t kind
Definition occtl_topo_build.h:2169
Definition occtl_topo_build.h:2114
uint32_t struct_version
Definition occtl_topo_build.h:2115
double density
Definition occtl_topo_build.h:2120
occtl_color_rgba_t diffuse_color
Definition occtl_topo_build.h:2122
const char * name
Definition occtl_topo_build.h:2117
int32_t has_diffuse_color
Definition occtl_topo_build.h:2121
size_t name_len
Definition occtl_topo_build.h:2118
int32_t has_density
Definition occtl_topo_build.h:2119
occtl_uid_t metadata_uid
Definition occtl_topo_build.h:2123
const void * p_next
Definition occtl_topo_build.h:2116
Definition occtl_topo_types.h:50
Definition occtl_topo_relation.h:81
Definition occtl_geom.h:49
Definition occtl_geom.h:76
Definition occtl_topo_types.h:61
Definition occtl_core.h:251
Definition occtl_topo_build.h:2248
occtl_point3_t max
Definition occtl_topo_build.h:2250
occtl_point3_t min
Definition occtl_topo_build.h:2249
Definition occtl_topo_build.h:2551
const void * p_next
Definition occtl_topo_build.h:2553
occtl_node_id_t target
Definition occtl_topo_build.h:2554
uint32_t struct_version
Definition occtl_topo_build.h:2552
Definition occtl_topo_build.h:2564
uint32_t struct_version
Definition occtl_topo_build.h:2565
occtl_select_group_key_t key
Definition occtl_topo_build.h:2567
const void * p_next
Definition occtl_topo_build.h:2566
int32_t include_missing
Definition occtl_topo_build.h:2571
double tolerance
Definition occtl_topo_build.h:2569
float color_tolerance
Definition occtl_topo_build.h:2570
occtl_select_axis_t axis
Definition occtl_topo_build.h:2568
Definition occtl_topo_build.h:2590
double numeric_key
Definition occtl_topo_build.h:2597
occtl_select_group_key_t key
Definition occtl_topo_build.h:2593
occtl_node_kind_t node_kind
Definition occtl_topo_build.h:2594
size_t node_count
Definition occtl_topo_build.h:2603
occtl_color_rgba_t color
Definition occtl_topo_build.h:2601
const char * name
Definition occtl_topo_build.h:2598
const void * p_next
Definition occtl_topo_build.h:2592
uint32_t struct_version
Definition occtl_topo_build.h:2591
const occtl_node_id_t * nodes
Definition occtl_topo_build.h:2602
size_t name_len
Definition occtl_topo_build.h:2599
occtl_curve_kind_t curve_kind
Definition occtl_topo_build.h:2595
int32_t has_color
Definition occtl_topo_build.h:2600
occtl_surface_kind_t surface_kind
Definition occtl_topo_build.h:2596
Definition occtl_topo_build.h:2444
double normal_angle_tolerance
Definition occtl_topo_build.h:2469
occtl_point3_t sort_point
Definition occtl_topo_build.h:2478
occtl_surface_kind_t surface_kind
Definition occtl_topo_build.h:2461
occtl_select_bbox_t bbox
Definition occtl_topo_build.h:2456
int32_t use_measure
Definition occtl_topo_build.h:2470
float color_tolerance
Definition occtl_topo_build.h:2454
double measure_max
Definition occtl_topo_build.h:2473
int32_t use_axis_position
Definition occtl_topo_build.h:2462
size_t name_len
Definition occtl_topo_build.h:2451
int32_t use_color
Definition occtl_topo_build.h:2452
occtl_select_axis_t axis
Definition occtl_topo_build.h:2463
occtl_select_measure_kind_t sort_measure_kind
Definition occtl_topo_build.h:2477
int32_t include_root
Definition occtl_topo_build.h:2449
int32_t use_normal
Definition occtl_topo_build.h:2466
occtl_select_bbox_mode_t bbox_mode
Definition occtl_topo_build.h:2457
uint32_t struct_version
Definition occtl_topo_build.h:2445
const void * p_next
Definition occtl_topo_build.h:2446
double axis_tolerance
Definition occtl_topo_build.h:2465
occtl_select_axis_position_t axis_position
Definition occtl_topo_build.h:2464
occtl_select_sort_key_t sort_key
Definition occtl_topo_build.h:2474
occtl_color_rgba_t color
Definition occtl_topo_build.h:2453
occtl_select_normal_mode_t normal_mode
Definition occtl_topo_build.h:2468
occtl_node_id_t root
Definition occtl_topo_build.h:2447
int32_t use_surface_kind
Definition occtl_topo_build.h:2460
occtl_direction3_t normal
Definition occtl_topo_build.h:2467
uint64_t kind_mask
Definition occtl_topo_build.h:2448
int32_t use_curve_kind
Definition occtl_topo_build.h:2458
int32_t use_bbox
Definition occtl_topo_build.h:2455
occtl_select_measure_kind_t measure_kind
Definition occtl_topo_build.h:2471
occtl_curve_kind_t curve_kind
Definition occtl_topo_build.h:2459
const char * name
Definition occtl_topo_build.h:2450
occtl_select_sort_direction_t sort_direction
Definition occtl_topo_build.h:2475
double measure_min
Definition occtl_topo_build.h:2472
occtl_select_axis_t sort_axis
Definition occtl_topo_build.h:2476
Definition occtl_topo_build.h:2217
const char * tag
Definition occtl_topo_build.h:2218
size_t tag_len
Definition occtl_topo_build.h:2219
Definition occtl_topo_build.h:161
int32_t allow_open
Definition occtl_topo_build.h:167
size_t edge_count
Definition occtl_topo_build.h:165
const void * p_next
Definition occtl_topo_build.h:163
uint32_t struct_version
Definition occtl_topo_build.h:162
const occtl_node_id_t * edges
Definition occtl_topo_build.h:164
double tolerance
Definition occtl_topo_build.h:166
Definition occtl_topo_build.h:302
uint32_t struct_version
Definition occtl_topo_build.h:303
double distance2
Definition occtl_topo_build.h:309
size_t vertex_count
Definition occtl_topo_build.h:307
const void * p_next
Definition occtl_topo_build.h:304
const occtl_node_id_t * vertices
Definition occtl_topo_build.h:306
double distance1
Definition occtl_topo_build.h:308
occtl_node_id_t face
Definition occtl_topo_build.h:305
Definition occtl_topo_build.h:518
const occtl_oriented_node_t * children
Definition occtl_topo_build.h:522
size_t child_count
Definition occtl_topo_build.h:523
uint32_t struct_version
Definition occtl_topo_build.h:519
const void * p_next
Definition occtl_topo_build.h:520
Definition occtl_topo_build.h:958
const void * p_next
Definition occtl_topo_build.h:960
uint32_t struct_version
Definition occtl_topo_build.h:959
size_t solid_count
Definition occtl_topo_build.h:963
const occtl_oriented_node_t * solids
Definition occtl_topo_build.h:962
Definition occtl_topo_build.h:84
occtl_node_id_t start_vertex
Definition occtl_topo_build.h:87
uint32_t struct_version
Definition occtl_topo_build.h:85
occtl_node_id_t end_vertex
Definition occtl_topo_build.h:88
double tolerance
Definition occtl_topo_build.h:93
occtl_rep_id_t curve
Definition occtl_topo_build.h:90
double last
Definition occtl_topo_build.h:92
const void * p_next
Definition occtl_topo_build.h:86
double first
Definition occtl_topo_build.h:91
Definition occtl_topo_build.h:419
const void * p_next
Definition occtl_topo_build.h:421
double area_tolerance
Definition occtl_topo_build.h:427
double tolerance
Definition occtl_topo_build.h:426
uint32_t struct_version
Definition occtl_topo_build.h:420
size_t wire_count
Definition occtl_topo_build.h:425
occtl_rep_id_t surface
Definition occtl_topo_build.h:423
const occtl_node_id_t * wires
Definition occtl_topo_build.h:424
Definition occtl_topo_build.h:376
uint32_t struct_version
Definition occtl_topo_build.h:377
occtl_rep_id_t surface
Definition occtl_topo_build.h:380
occtl_node_id_t outer_wire
Definition occtl_topo_build.h:381
double tolerance
Definition occtl_topo_build.h:384
const void * p_next
Definition occtl_topo_build.h:378
size_t inner_wire_count
Definition occtl_topo_build.h:383
const occtl_node_id_t * inner_wires
Definition occtl_topo_build.h:382
Definition occtl_topo_build.h:460
size_t face_count
Definition occtl_topo_build.h:464
int32_t is_closed
Definition occtl_topo_build.h:465
uint32_t struct_version
Definition occtl_topo_build.h:461
const void * p_next
Definition occtl_topo_build.h:462
const occtl_oriented_node_t * faces
Definition occtl_topo_build.h:463
Definition occtl_topo_build.h:489
const void * p_next
Definition occtl_topo_build.h:491
const occtl_oriented_node_t * shells
Definition occtl_topo_build.h:493
uint32_t struct_version
Definition occtl_topo_build.h:490
size_t shell_count
Definition occtl_topo_build.h:494
Definition occtl_topo_build.h:52
const void * p_next
Definition occtl_topo_build.h:54
uint32_t struct_version
Definition occtl_topo_build.h:53
double tolerance
Definition occtl_topo_build.h:56
occtl_point3_t point
Definition occtl_topo_build.h:55
Definition occtl_topo_build.h:129
uint32_t struct_version
Definition occtl_topo_build.h:130
const occtl_oriented_node_t * edges
Definition occtl_topo_build.h:132
size_t edge_count
Definition occtl_topo_build.h:133
const void * p_next
Definition occtl_topo_build.h:131
Definition occtl_topo_build.h:324
occtl_node_id_t wire
Definition occtl_topo_build.h:327
const void * p_next
Definition occtl_topo_build.h:326
size_t vertex_count
Definition occtl_topo_build.h:329
const occtl_node_id_t * vertices
Definition occtl_topo_build.h:328
double distance1
Definition occtl_topo_build.h:330
uint32_t struct_version
Definition occtl_topo_build.h:325
double distance2
Definition occtl_topo_build.h:331
Definition occtl_topo_build.h:266
uint32_t struct_version
Definition occtl_topo_build.h:267
const void * p_next
Definition occtl_topo_build.h:268
double min_length
Definition occtl_topo_build.h:270
occtl_node_id_t wire
Definition occtl_topo_build.h:269
Definition occtl_topo_build.h:223
int32_t approximate
Definition occtl_topo_build.h:230
uint32_t struct_version
Definition occtl_topo_build.h:224
const void * p_next
Definition occtl_topo_build.h:225
occtl_node_id_t wire
Definition occtl_topo_build.h:226
double distance
Definition occtl_topo_build.h:227
occtl_topo_wire_offset_2d_join_t join
Definition occtl_topo_build.h:228
int32_t open_result
Definition occtl_topo_build.h:229
Definition occtl_core.h:272
Definition occtl_geom.h:84