OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
occtl_topo_build.h
Go to the documentation of this file.
1// Copyright (c) 2026 Capgemini Engineering Research and Development.
2//
3// This file is part of OCCT-Light software library.
4//
5// This library is free software; you can redistribute it and/or modify it under
6// the terms of the GNU Affero General Public License version 3 as published
7// by the Free Software Foundation, with an option to use any later version.
8// Consult the file LICENSE_AGPL_30.txt included in OCCT-Light distribution
9// for complete text of the license and disclaimer of any warranty.
10//
11// Alternatively, this file may be used under the terms of a commercial
12// license or contractual agreement.
13//
14// SPDX-License-Identifier: AGPL-3.0-or-later
15
28#ifndef OCCTL_TOPO_BUILD_H
29#define OCCTL_TOPO_BUILD_H
30
31#include <stddef.h>
32#include <stdint.h>
33
34#include "occtl_core.h"
35#include "occtl_curves.h"
36#include "occtl_geom.h"
37#include "occtl_surfaces.h"
38#include "occtl_topo_relation.h"
39#include "occtl_topo_types.h"
40
41#ifdef __cplusplus
42extern "C"
43{
44#endif
45
46#define OCCTL_TOPO_MAKE_VERTEX_INFO_VERSION_1 1u
47
58
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}
61
74
75#define OCCTL_TOPO_MAKE_EDGE_INFO_VERSION_1 1u
76
95
96#define OCCTL_TOPO_MAKE_EDGE_INFO_INIT \
97 {OCCTL_TOPO_MAKE_EDGE_INFO_VERSION_1, \
98 NULL, \
99 OCCTL_NODE_ID_INVALID, \
100 OCCTL_NODE_ID_INVALID, \
101 OCCTL_REP_ID_INVALID, \
102 0.0, \
103 0.0, \
104 0.0}
105
118
119#define OCCTL_TOPO_MAKE_WIRE_INFO_VERSION_1 1u
120
135
136#define OCCTL_TOPO_MAKE_WIRE_INFO_INIT {OCCTL_TOPO_MAKE_WIRE_INFO_VERSION_1, NULL, NULL, 0}
137
150
151#define OCCTL_TOPO_EDGES_TO_WIRES_OPTIONS_VERSION_1 1u
152
169
170#define OCCTL_TOPO_EDGES_TO_WIRES_OPTIONS_INIT \
171 {OCCTL_TOPO_EDGES_TO_WIRES_OPTIONS_VERSION_1, NULL, NULL, 0, 0.0, 1}
172
184OCCTL_API void OCCTL_CALL
186
187#define OCCTL_TOPO_WIRE_OFFSET_2D_OPTIONS_VERSION_1 1u
188
200
214
232
233#define OCCTL_TOPO_WIRE_OFFSET_2D_OPTIONS_INIT \
234 {OCCTL_TOPO_WIRE_OFFSET_2D_OPTIONS_VERSION_1, \
235 NULL, \
236 OCCTL_NODE_ID_INVALID, \
237 1.0, \
238 OCCTL_TOPO_WIRE_OFFSET_2D_JOIN_ARC, \
239 0, \
240 0}
241
253OCCTL_API void OCCTL_CALL
255
256#define OCCTL_TOPO_WIRE_FIX_DEGENERATE_EDGES_OPTIONS_VERSION_1 1u
257
272
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}
275
290
291#define OCCTL_TOPO_FACE_CHAMFER_2D_OPTIONS_VERSION_1 1u
292
311
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}
314
315#define OCCTL_TOPO_WIRE_CHAMFER_2D_OPTIONS_VERSION_1 1u
316
333
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}
336
348OCCTL_API void OCCTL_CALL
350
362OCCTL_API void OCCTL_CALL
364
365#define OCCTL_TOPO_MAKE_FACE_INFO_VERSION_1 1u
366
386
387#define OCCTL_TOPO_MAKE_FACE_INFO_INIT \
388 {OCCTL_TOPO_MAKE_FACE_INFO_VERSION_1, \
389 NULL, \
390 OCCTL_REP_ID_INVALID, \
391 OCCTL_NODE_ID_INVALID, \
392 NULL, \
393 0, \
394 0.0}
395
408
409#define OCCTL_TOPO_MAKE_FACE_FROM_WIRES_AUTO_OPTIONS_VERSION_1 1u
410
429
430#define OCCTL_TOPO_MAKE_FACE_FROM_WIRES_AUTO_OPTIONS_INIT \
431 {OCCTL_TOPO_MAKE_FACE_FROM_WIRES_AUTO_OPTIONS_VERSION_1, \
432 NULL, \
433 OCCTL_REP_ID_INVALID, \
434 NULL, \
435 0, \
436 0.0, \
437 1.0e-9}
438
453
454#define OCCTL_TOPO_MAKE_SHELL_INFO_VERSION_1 1u
455
467
468#define OCCTL_TOPO_MAKE_SHELL_INFO_INIT {OCCTL_TOPO_MAKE_SHELL_INFO_VERSION_1, NULL, NULL, 0, 0}
469
482
483#define OCCTL_TOPO_MAKE_SOLID_INFO_VERSION_1 1u
484
496
497#define OCCTL_TOPO_MAKE_SOLID_INFO_INIT {OCCTL_TOPO_MAKE_SOLID_INFO_VERSION_1, NULL, NULL, 0}
498
511
512#define OCCTL_TOPO_MAKE_COMPOUND_INFO_VERSION_1 1u
513
525
526#define OCCTL_TOPO_MAKE_COMPOUND_INFO_INIT {OCCTL_TOPO_MAKE_COMPOUND_INFO_VERSION_1, NULL, NULL, 0}
527
540
556OCCTL_API occtl_status_t OCCTL_CALL
559 occtl_node_id_t* out_vertex);
560
581 const occtl_topo_make_edge_info_t* info,
582 occtl_node_id_t* out_edge);
583
606 const occtl_topo_make_wire_info_t* info,
607 occtl_node_id_t* out_wire);
608
642OCCTL_API occtl_status_t OCCTL_CALL
645 occtl_node_id_t* out_wires,
646 size_t cap,
647 size_t* out_count);
648
676OCCTL_API occtl_status_t OCCTL_CALL
679 occtl_node_id_t* out_wire);
680
711 const occtl_rep_id_t* curve_ids,
712 size_t count,
713 occtl_node_id_t* out_wire);
714
741OCCTL_API occtl_status_t OCCTL_CALL
744 size_t* out_removed);
745
775OCCTL_API occtl_status_t OCCTL_CALL
778 occtl_node_id_t* out_face);
779
809OCCTL_API occtl_status_t OCCTL_CALL
812 occtl_node_id_t* out_wire);
813
836 const occtl_topo_make_face_info_t* info,
837 occtl_node_id_t* out_face);
838
868 occtl_graph_t* graph,
870 occtl_node_id_t* out_face);
871
896 occtl_node_id_t* out_shell);
897
922 occtl_node_id_t* out_solid);
923
947OCCTL_API occtl_status_t OCCTL_CALL
950 occtl_node_id_t* out_compound);
951
952#define OCCTL_TOPO_MAKE_COMPSOLID_INFO_VERSION_1 1u
953
965
966#define OCCTL_TOPO_MAKE_COMPSOLID_INFO_INIT \
967 {OCCTL_TOPO_MAKE_COMPSOLID_INFO_VERSION_1, NULL, NULL, 0}
968
980OCCTL_API void OCCTL_CALL
982
1005OCCTL_API occtl_status_t OCCTL_CALL
1008 occtl_node_id_t* out_compsolid);
1009
1032
1050 occtl_node_id_t id);
1051
1064typedef struct occtl_batch occtl_batch_t;
1065
1086 occtl_batch_t** out_batch);
1087
1103
1119
1146 occtl_node_id_t edge,
1147 occtl_rep_id_t curve_id);
1148
1172 occtl_node_id_t face,
1173 occtl_rep_id_t surface_id);
1174
1195 occtl_node_id_t coedge,
1196 occtl_rep_id_t pcurve_id);
1197
1224 occtl_node_id_t edge,
1225 occtl_node_id_t face,
1226 occtl_rep_id_t pcurve_id,
1227 double first,
1228 double last,
1229 occtl_orientation_t orientation);
1230
1250 occtl_node_id_t shell,
1251 occtl_node_id_t face,
1252 occtl_orientation_t orientation);
1253
1275 occtl_node_id_t shell,
1276 occtl_node_id_t face);
1277
1308 occtl_node_id_t face,
1309 const occtl_node_id_t* holes,
1310 size_t hole_count);
1311
1341 occtl_node_id_t face,
1342 const occtl_node_id_t* holes,
1343 size_t hole_count);
1344
1364 occtl_node_id_t solid,
1365 occtl_node_id_t shell,
1366 occtl_orientation_t orientation);
1367
1387 occtl_node_id_t solid,
1388 occtl_node_id_t shell);
1389
1409 occtl_node_id_t compound,
1410 occtl_node_id_t child,
1411 occtl_orientation_t orientation);
1412
1432 occtl_node_id_t compound,
1433 occtl_node_id_t child);
1434
1460 occtl_node_id_t edge,
1461 double parameter,
1462 occtl_node_id_t* out_edge1,
1463 occtl_node_id_t* out_edge2);
1464
1486 occtl_node_id_t edge,
1487 occtl_node_id_t vertex);
1488
1511 occtl_node_id_t edge,
1512 occtl_node_id_t vertex);
1513
1536OCCTL_API occtl_status_t OCCTL_CALL
1538 occtl_node_id_t edge,
1539 occtl_node_id_t faceA,
1540 occtl_node_id_t faceB,
1541 occtl_shape_continuity_t* const out_continuity);
1542
1564OCCTL_API occtl_status_t OCCTL_CALL
1566 occtl_node_id_t edge,
1567 occtl_node_id_t faceA,
1568 occtl_node_id_t faceB,
1569 int32_t* const out_has_continuity);
1570
1590OCCTL_API occtl_status_t OCCTL_CALL
1592 occtl_node_id_t edge,
1593 occtl_shape_continuity_t* const out_continuity);
1594
1613OCCTL_API occtl_status_t OCCTL_CALL
1615 occtl_node_id_t coedge,
1616 occtl_orientation_t* const out_orientation);
1617
1639OCCTL_API occtl_status_t OCCTL_CALL
1641 occtl_node_id_t edge,
1642 occtl_node_id_t face,
1643 occtl_node_id_t* const out_coedge);
1644
1668OCCTL_API occtl_status_t OCCTL_CALL
1670 occtl_node_id_t edge,
1671 occtl_node_id_t face,
1672 occtl_orientation_t orientation,
1673 occtl_node_id_t* const out_coedge);
1674
1697OCCTL_API occtl_status_t OCCTL_CALL
1699 occtl_node_id_t vertex,
1700 occtl_node_id_t parent,
1701 occtl_point3_t* const out_point);
1702
1720OCCTL_API occtl_status_t OCCTL_CALL
1722 occtl_node_id_t vertex,
1723 occtl_node_id_t coedge,
1724 double* const out_u);
1725
1743 occtl_node_id_t edge,
1744 int32_t* const out_has_polygon3d);
1745
1762OCCTL_API occtl_status_t OCCTL_CALL
1764 occtl_node_id_t coedge,
1765 int32_t* const out_has_polygon_on_surface);
1766
1795OCCTL_API occtl_status_t OCCTL_CALL
1797 occtl_node_id_t face,
1798 double umin,
1799 double umax,
1800 double vmin,
1801 double vmax,
1802 double u,
1803 double v,
1804 occtl_point3_t* const out_point,
1805 occtl_vector3_t* const out_d1u,
1806 occtl_vector3_t* const out_d1v);
1807
1825 occtl_node_id_t vertex,
1826 occtl_point3_t point);
1827
1845 occtl_node_id_t vertex,
1846 double tol);
1847
1865 occtl_node_id_t edge,
1866 double tol);
1867
1885 occtl_node_id_t face,
1886 double tol);
1887
1906 occtl_node_id_t edge,
1907 double first,
1908 double last);
1909
1927 occtl_node_id_t edge,
1928 int32_t flag);
1929
1946 occtl_node_id_t edge,
1947 int32_t flag);
1948
1965 occtl_node_id_t edge,
1966 int32_t flag);
1967
1984 occtl_node_id_t edge,
1985 int32_t flag);
1986
2003 occtl_node_id_t wire,
2004 int32_t flag);
2005
2022 occtl_node_id_t shell,
2023 int32_t flag);
2024
2041 occtl_node_id_t face,
2042 int32_t flag);
2043
2062 occtl_node_id_t coedge,
2063 double first,
2064 double last);
2065
2083 occtl_node_id_t coedge,
2084 occtl_point2_t uv_lo,
2085 occtl_point2_t uv_hi);
2086
2095typedef struct occtl_color_rgba
2096{
2097 float r;
2098 float g;
2099 float b;
2100 float a;
2102
2103#define OCCTL_MATERIAL_INFO_VERSION_1 1u
2104
2125
2126#define OCCTL_MATERIAL_INFO_INIT \
2127 {OCCTL_MATERIAL_INFO_VERSION_1, \
2128 NULL, \
2129 NULL, \
2130 0, \
2131 0, \
2132 0.0, \
2133 0, \
2134 {1.0f, 1.0f, 1.0f, 1.0f}, \
2135 OCCTL_UID_INVALID}
2136
2153
2154#define OCCTL_JOINT_INFO_VERSION_1 1u
2155
2180
2181#define OCCTL_JOINT_INFO_INIT \
2182 {OCCTL_JOINT_INFO_VERSION_1, \
2183 NULL, \
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}}, \
2190 0, \
2191 0.0, \
2192 0, \
2193 0.0, \
2194 OCCTL_UID_INVALID}
2195
2208
2216typedef struct occtl_tag_view
2217{
2218 const char* tag;
2219 size_t tag_len;
2221
2231typedef struct occtl_select_iter occtl_select_iter_t;
2232
2242typedef struct occtl_select_group_iter occtl_select_group_iter_t;
2243
2252
2269
2281
2300
2321 occtl_node_id_t node,
2322 occtl_ref_id_t ref);
2323
2334
2339{
2343 OCCTL_SELECT_AXIS_RESERVED_FUTURE = 0x7fffffff
2345
2361
2372
2385
2401
2406{
2409 OCCTL_SELECT_SORT_DIRECTION_RESERVED_FUTURE = 0x7fffffff
2411
2425
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
2431
2480
2481#define OCCTL_SELECT_OPTIONS_INIT \
2482 {OCCTL_SELECT_OPTIONS_VERSION_1, \
2483 NULL, \
2484 OCCTL_NODE_ID_INVALID, \
2485 0u, \
2486 0, \
2487 NULL, \
2488 0u, \
2489 0, \
2490 {0.0f, 0.0f, 0.0f, 1.0f}, \
2491 0.0f, \
2492 0, \
2493 {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, \
2494 OCCTL_SELECT_BBOX_INTERSECTS, \
2495 0, \
2496 OCCTL_CURVE_KIND_UNDEFINED, \
2497 0, \
2498 OCCTL_SURFACE_KIND_UNDEFINED, \
2499 0, \
2500 OCCTL_SELECT_AXIS_Z, \
2501 OCCTL_SELECT_AXIS_POSITION_MAX, \
2502 1.0e-7, \
2503 0, \
2504 {0.0, 0.0, 1.0}, \
2505 OCCTL_SELECT_NORMAL_PARALLEL, \
2506 1.0e-7, \
2507 0, \
2508 OCCTL_SELECT_MEASURE_FACE_AREA, \
2509 0.0, \
2510 0.0, \
2511 OCCTL_SELECT_SORT_NONE, \
2512 OCCTL_SELECT_SORT_ASCENDING, \
2513 OCCTL_SELECT_AXIS_Z, \
2514 OCCTL_SELECT_MEASURE_FACE_AREA, \
2515 {0.0, 0.0, 0.0}}
2516
2525{
2527 const void* p_next;
2528 const char* key;
2529 size_t key_len;
2530 const char* value;
2531 size_t value_len;
2532 int32_t match_value;
2534
2535#define OCCTL_SELECT_METADATA_FILTER_INIT \
2536 {OCCTL_SELECT_METADATA_FILTER_VERSION_1, NULL, NULL, 0u, NULL, 0u, 0}
2537
2556
2557#define OCCTL_SELECT_DISTANCE_TO_NODE_SORT_INIT \
2558 {OCCTL_SELECT_DISTANCE_TO_NODE_SORT_VERSION_1, NULL, OCCTL_NODE_ID_INVALID}
2559
2573
2574#define OCCTL_SELECT_GROUP_OPTIONS_INIT \
2575 {OCCTL_SELECT_GROUP_OPTIONS_VERSION_1, \
2576 NULL, \
2577 OCCTL_SELECT_GROUP_KIND, \
2578 OCCTL_SELECT_AXIS_Z, \
2579 1.0e-7, \
2580 0.0f, \
2581 0}
2582
2605
2606#define OCCTL_SELECT_GROUP_VIEW_INIT \
2607 {OCCTL_SELECT_GROUP_VIEW_VERSION_1, \
2608 NULL, \
2609 OCCTL_SELECT_GROUP_KIND, \
2610 OCCTL_KIND_INVALID, \
2611 OCCTL_CURVE_KIND_UNDEFINED, \
2612 OCCTL_SURFACE_KIND_UNDEFINED, \
2613 0.0, \
2614 NULL, \
2615 0, \
2616 0, \
2617 {0.0f, 0.0f, 0.0f, 0.0f}, \
2618 NULL, \
2619 0}
2620
2631
2642
2653
2674 occtl_node_id_t node,
2675 occtl_select_bbox_t* out_bbox);
2676
2697 occtl_node_id_t node,
2698 occtl_graph_obb_t* out_obb);
2699
2720OCCTL_API occtl_status_t OCCTL_CALL
2722 occtl_node_id_t face,
2723 occtl_graph_uv_bounds_t* out_uv_bounds);
2724
2748 occtl_node_id_t node,
2750 double* out_value);
2751
2772OCCTL_API occtl_status_t OCCTL_CALL
2774 occtl_node_id_t node,
2775 occtl_graph_mass_properties_t* out_properties);
2776
2799 occtl_node_id_t edge,
2800 occtl_curve_kind_t* out_kind);
2801
2823OCCTL_API occtl_status_t OCCTL_CALL
2825 occtl_node_id_t face,
2826 occtl_surface_kind_t* out_kind);
2827
2856 occtl_node_id_t node,
2857 occtl_node_id_t* out_buf,
2858 size_t cap,
2859 size_t* out_count);
2860
2889 occtl_node_id_t node,
2890 occtl_node_id_t* out_buf,
2891 size_t cap,
2892 size_t* out_count);
2893
2922 occtl_node_id_t node,
2923 occtl_node_id_t* out_buf,
2924 size_t cap,
2925 size_t* out_count);
2926
2961 occtl_node_id_t node,
2962 occtl_node_kind_t descendant_kind,
2963 occtl_node_id_t* out_buf,
2964 size_t cap,
2965 size_t* out_count);
2966
2996 occtl_node_id_t face,
2997 occtl_node_id_t* out_buf,
2998 size_t cap,
2999 size_t* out_count);
3000
3030 occtl_node_id_t edge,
3031 occtl_node_id_t* out_buf,
3032 size_t cap,
3033 size_t* out_count);
3034
3057 occtl_node_id_t first,
3058 occtl_node_id_t second,
3059 double* out_distance);
3060
3083 const occtl_select_options_t* options,
3084 occtl_select_iter_t** out_iter);
3085
3112OCCTL_API occtl_status_t OCCTL_CALL
3114 const occtl_select_options_t* options,
3115 const char* tag,
3116 size_t tagLen,
3117 occtl_select_iter_t** out_iter);
3118
3134 occtl_node_id_t* out_node);
3135
3146
3166OCCTL_API occtl_status_t OCCTL_CALL
3168 const occtl_select_options_t* select_options,
3169 const occtl_select_group_options_t* group_options,
3170 occtl_select_group_iter_t** out_iter);
3171
3186OCCTL_API occtl_status_t OCCTL_CALL
3188 occtl_select_group_view_t* out_view);
3189
3200
3222 occtl_graph_t** out_graph);
3223
3245
3266 occtl_node_id_t node,
3267 occtl_node_id_t replacement);
3268
3287 occtl_ref_id_t ref_id);
3288
3307 occtl_rep_id_t rep_id);
3308
3324
3345 occtl_node_id_t edge,
3346 occtl_node_id_t vertex);
3347
3356 occtl_node_id_t edge,
3357 occtl_node_id_t vertex);
3358
3378 occtl_ref_id_t ref_id,
3379 occtl_orientation_t orientation);
3380
3400 occtl_ref_id_t ref_id,
3401 occtl_transform_t transform);
3402
3420 occtl_ref_id_t ref_id,
3421 int32_t flag);
3422
3423#ifdef __cplusplus
3424} /* extern "C" */
3425#endif
3426
3427#endif /* OCCTL_TOPO_BUILD_H */
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_build.h:2204
const char * key
Definition occtl_topo_build.h:2205
size_t key_len
Definition occtl_topo_build.h:2206
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:2525
int32_t match_value
Definition occtl_topo_build.h:2532
uint32_t struct_version
Definition occtl_topo_build.h:2526
const char * value
Definition occtl_topo_build.h:2530
size_t key_len
Definition occtl_topo_build.h:2529
const void * p_next
Definition occtl_topo_build.h:2527
size_t value_len
Definition occtl_topo_build.h:2531
const char * key
Definition occtl_topo_build.h:2528
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_geom.h:171
Definition occtl_core.h:272
Definition occtl_geom.h:84