634 double* out_tolerance);
651 uint32_t* out_count);
689 double* out_tolerance);
707 int32_t* out_is_degenerated);
725 int32_t* out_has_curve);
805 int32_t* out_is_seam);
862 double* out_tolerance);
879 uint32_t* out_count);
1355 int32_t* out_has_surface);
1395 int32_t* out_is_closed);
1412 uint32_t* out_count);
1430 int32_t* out_is_closed);
1447 uint32_t* out_count);
1469 double* out_parameter);
1509 int32_t* out_has_same_parameter);
1527 int32_t* out_has_same_range);
1546 int32_t* out_is_manifold);
1565 int32_t* out_is_boundary);
1589 int32_t* out_is_seam);
1606 uint32_t* out_count);
1623 int32_t* out_is_reversed);
1641 int32_t* out_has_pcurve);
1661 double* out_parameter);
1741 int32_t* out_has_natural_restriction);
1762 int32_t* out_has_triangulation);
1779 uint32_t* out_count);
1818 int32_t* out_is_outer);
1835 uint32_t* out_count);
1852 uint32_t* out_count);
1869 uint32_t* out_count);
1889 uint32_t* out_count);
1908 uint32_t* out_count);
1925 uint32_t* out_count);
2285 uint64_t ref_kind_mask,
2304 uint64_t rep_kind_mask,
2484 size_t* out_required);
2574 size_t name_buf_size,
2575 size_t* out_name_required);
2648 double length_unit_to_meter,
2681 double* out_length_unit_to_meter,
2683 size_t name_buf_size,
2684 size_t* out_name_required);
2756 size_t* out_required);
2884 size_t* out_required);
3030 int32_t* out_has_tag);
3205#define OCCTL_TOPO_MAKE_PRODUCT_INFO_VERSION_1 1u
3221#define OCCTL_TOPO_MAKE_PRODUCT_INFO_INIT \
3222 {OCCTL_TOPO_MAKE_PRODUCT_INFO_VERSION_1, \
3224 OCCTL_NODE_ID_INVALID, \
3225 {1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0}}
3492#define OCCTL_EDGE_VIEW_VERSION_1 1u
3533#define OCCTL_EDGE_VIEW_INIT \
3534 {OCCTL_EDGE_VIEW_VERSION_1, \
3539 OCCTL_NODE_ID_INVALID, \
3540 OCCTL_NODE_ID_INVALID, \
3592#define OCCTL_COEDGE_VIEW_VERSION_1 1u
3619#define OCCTL_COEDGE_VIEW_INIT \
3620 {OCCTL_COEDGE_VIEW_VERSION_1, \
3622 OCCTL_NODE_ID_INVALID, \
3623 OCCTL_NODE_ID_INVALID, \
3624 OCCTL_ORIENTATION_FORWARD, \
3662#define OCCTL_FACE_VIEW_VERSION_1 1u
3684#define OCCTL_FACE_VIEW_INIT \
3685 {OCCTL_FACE_VIEW_VERSION_1, NULL, 0.0, 0.0, 0.0, 0.0, 0.0, OCCTL_NODE_ID_INVALID, 0u, 0, 0, 0}
3716#define OCCTL_VERTEX_VIEW_VERSION_1 1u
3730#define OCCTL_VERTEX_VIEW_INIT {OCCTL_VERTEX_VIEW_VERSION_1, NULL, {0.0, 0.0, 0.0}, 0.0}
3761#define OCCTL_WIRE_VIEW_VERSION_1 1u
3776#define OCCTL_WIRE_VIEW_INIT {OCCTL_WIRE_VIEW_VERSION_1, NULL, 0, 0, 0}
3807#define OCCTL_SHELL_VIEW_VERSION_1 1u
3821#define OCCTL_SHELL_VIEW_INIT {OCCTL_SHELL_VIEW_VERSION_1, NULL, 0, 0}
3852#define OCCTL_SOLID_VIEW_VERSION_1 1u
3865#define OCCTL_SOLID_VIEW_INIT {OCCTL_SOLID_VIEW_VERSION_1, NULL, 0}
3896#define OCCTL_COMPOUND_VIEW_VERSION_1 1u
3909#define OCCTL_COMPOUND_VIEW_INIT {OCCTL_COMPOUND_VIEW_VERSION_1, NULL, 0}
3948 return count_fn(graph, &aCount) ==
OCCTL_OK ? aCount : 0;
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
enum occtl_rep_kind occtl_rep_kind_t
enum occtl_ref_kind occtl_ref_kind_t
@ OCCTL_OK
Definition occtl_core.h:133
enum occtl_node_kind occtl_node_kind_t
OCCT-Light: 2D curve (pcurve) API on BRepGraph.
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_graph_units_set(occtl_graph_t *graph, double length_unit_to_meter, const char *name, size_t nameLen)
occtl_status_t occtl_graph_ref_uid_from_ref_id(const occtl_graph_t *graph, occtl_ref_id_t ref_id, occtl_ref_uid_t *out_ref_uid)
occtl_status_t occtl_graph_wire_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_metadata_keys(const occtl_graph_t *graph, occtl_metadata_key_view_t *out_keys, size_t cap, size_t *out_count)
void occtl_shell_view_init(occtl_shell_view_t *view)
occtl_status_t occtl_rep_uid_to_bytes(occtl_rep_uid_t rep_uid, uint8_t *out_bytes)
occtl_status_t occtl_topo_edge_start_vertex(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t *out_vertex)
struct occtl_node_iter occtl_node_iter_t
Definition occtl_topo.h:1951
void occtl_edge_view_init(occtl_edge_view_t *view)
occtl_status_t occtl_topo_edge_vertex_count(const occtl_graph_t *graph, occtl_node_id_t edge, uint32_t *out_count)
occtl_status_t(* occtl_rep_visitor_t)(occtl_rep_id_t rep, void *user_data)
Callback for occtl_graph_for_each_rep.
Definition occtl_topo.h:2268
occtl_status_t occtl_graph_compound_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_edge_eval_dn(const occtl_graph_t *graph, occtl_node_id_t edge, double u, uint32_t n, occtl_vector3_t *out_dn)
struct occtl_coedge_view occtl_coedge_view_t
occtl_status_t(* occtl_ref_visitor_t)(occtl_ref_id_t ref, void *user_data)
Callback for occtl_graph_for_each_ref.
Definition occtl_topo.h:2265
occtl_status_t occtl_topo_edge_curve_kind(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_curve_kind_t *out_kind)
occtl_status_t occtl_topo_face_eval_dn(const occtl_graph_t *graph, occtl_node_id_t face, double u, double v, uint32_t nu, uint32_t nv, occtl_vector3_t *out_dn)
occtl_status_t occtl_graph_metadata_set(occtl_graph_t *graph, const char *key, size_t keyLen, const char *value, size_t valueLen)
occtl_status_t occtl_graph_name_get(const occtl_graph_t *graph, occtl_node_id_t target, char *buf, size_t bufSize, size_t *out_required)
occtl_status_t occtl_graph_material_set(occtl_graph_t *graph, occtl_node_id_t target, const occtl_material_info_t *info)
occtl_status_t occtl_graph_solid_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_compound_child_count(const occtl_graph_t *graph, occtl_node_id_t compound, uint32_t *out_count)
occtl_status_t occtl_topo_compound_view(const occtl_graph_t *graph, occtl_node_id_t compound, occtl_compound_view_t *view)
occtl_status_t occtl_topo_occurrence_set_transform(occtl_graph_t *graph, occtl_node_id_t occurrence, occtl_transform_t transform)
occtl_status_t occtl_topo_face_view(const occtl_graph_t *graph, occtl_node_id_t face, occtl_face_view_t *view)
occtl_status_t occtl_topo_coedge_is_reversed(const occtl_graph_t *graph, occtl_node_id_t coedge, int32_t *out_is_reversed)
struct occtl_compound_view occtl_compound_view_t
occtl_status_t occtl_graph_metadata_get(const occtl_graph_t *graph, const char *key, size_t keyLen, char *buf, size_t bufSize, size_t *out_required)
occtl_status_t occtl_graph_occurrence_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_tag_nodes(const occtl_graph_t *graph, const char *tag, size_t tagLen, occtl_node_id_t *out_nodes, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_history_modified(const occtl_graph_t *graph, occtl_uid_t input_uid, occtl_uid_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_edge_has_curve(const occtl_graph_t *graph, occtl_node_id_t edge, int32_t *out_has_curve)
occtl_status_t occtl_topo_coedge_is_seam(const occtl_graph_t *graph, occtl_node_id_t coedge, int32_t *out_is_seam)
occtl_status_t occtl_graph_name_set(occtl_graph_t *graph, occtl_node_id_t target, const char *name, size_t nameLen)
occtl_status_t occtl_topo_coedge_edge_of(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_node_id_t *out_edge)
occtl_status_t occtl_topo_solid_shell_count(const occtl_graph_t *graph, occtl_node_id_t solid, uint32_t *out_count)
occtl_status_t occtl_graph_product_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t(* occtl_node_visitor_t)(occtl_node_id_t node, void *user_data)
Callback for occtl_graph_for_each.
Definition occtl_topo.h:2244
occtl_status_t occtl_joint_list(const occtl_graph_t *graph, occtl_node_id_t node, occtl_joint_id_t *out_joints, size_t cap, size_t *out_count)
struct occtl_solid_view occtl_solid_view_t
occtl_status_t occtl_graph_edge_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_for_each_related(const occtl_graph_t *graph, occtl_node_id_t node, occtl_node_visitor_t visitor, void *user_data)
occtl_status_t occtl_topo_face_surface_kind(const occtl_graph_t *graph, occtl_node_id_t face, occtl_surface_kind_t *out_kind)
occtl_status_t occtl_graph_tag_list(const occtl_graph_t *graph, occtl_node_id_t target, occtl_tag_view_t *out_tags, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_color_get(const occtl_graph_t *graph, occtl_node_id_t target, occtl_color_rgba_t *out_color)
occtl_status_t occtl_topo_coedge_pcurve_eval_d3(const occtl_graph_t *graph, occtl_node_id_t coedge, double u, occtl_point2_t *out_uv, occtl_vector2_t *out_d1, occtl_vector2_t *out_d2, occtl_vector2_t *out_d3)
occtl_status_t occtl_topo_edge_is_manifold(const occtl_graph_t *graph, occtl_node_id_t edge, int32_t *out_is_manifold)
occtl_status_t occtl_topo_vertex_parameters(const occtl_graph_t *graph, occtl_node_id_t vertex, occtl_node_id_t face, occtl_point2_t *out_uv)
occtl_status_t occtl_graph_occurrence_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_link_product(occtl_graph_t *graph, occtl_node_id_t product, occtl_node_id_t root, occtl_transform_t placement)
occtl_status_t occtl_topo_wire_face_of(const occtl_graph_t *graph, occtl_node_id_t wire, occtl_node_id_t *out_face)
occtl_status_t occtl_topo_coedges_of_wire_iter_create(const occtl_graph_t *graph, occtl_node_id_t wire, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_vertex_view(const occtl_graph_t *graph, occtl_node_id_t vertex, occtl_vertex_view_t *view)
occtl_status_t occtl_ref_uid_from_bytes(const uint8_t *in_bytes, occtl_ref_uid_t *out_ref_uid)
occtl_status_t occtl_rep_uid_from_bytes(const uint8_t *in_bytes, occtl_rep_uid_t *out_rep_uid)
void occtl_solid_view_init(occtl_solid_view_t *view)
occtl_status_t occtl_topo_wires_of_face_iter_create(const occtl_graph_t *graph, occtl_node_id_t face, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_rep_id_from_rep_uid(const occtl_graph_t *graph, occtl_rep_uid_t rep_uid, occtl_rep_id_t *out_rep_id)
struct occtl_topo_make_product_info occtl_topo_make_product_info_t
occtl_status_t occtl_topo_face_eval_d1(const occtl_graph_t *graph, occtl_node_id_t face, double u, double v, occtl_point3_t *out_p, occtl_vector3_t *out_d1u, occtl_vector3_t *out_d1v)
occtl_status_t occtl_graph_tag_add(occtl_graph_t *graph, occtl_node_id_t target, const char *tag, size_t tagLen)
occtl_status_t occtl_graph_node_metadata_unset(occtl_graph_t *graph, occtl_node_id_t target, const char *key, size_t keyLen)
occtl_status_t occtl_topo_face_has_triangulation(const occtl_graph_t *graph, occtl_node_id_t face, int32_t *out_has_triangulation)
occtl_status_t occtl_topo_face_eval(const occtl_graph_t *graph, occtl_node_id_t face, double u, double v, occtl_point3_t *out_p)
occtl_status_t occtl_graph_node_metadata_set(occtl_graph_t *graph, occtl_node_id_t target, const char *key, size_t keyLen, const char *value, size_t valueLen)
occtl_status_t occtl_topo_edge_is_seam_on_face(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t face, int32_t *out_is_seam)
void occtl_wire_view_init(occtl_wire_view_t *view)
occtl_status_t occtl_topo_solid_view(const occtl_graph_t *graph, occtl_node_id_t solid, occtl_solid_view_t *view)
occtl_status_t occtl_topo_coedge_seam_pair(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_node_id_t *out_pair)
occtl_status_t occtl_graph_tag_has(const occtl_graph_t *graph, occtl_node_id_t target, const char *tag, size_t tagLen, int32_t *out_has_tag)
occtl_status_t occtl_joint_get(const occtl_graph_t *graph, occtl_joint_id_t joint, occtl_joint_info_t *out_info)
occtl_status_t occtl_topo_coedge_range(const occtl_graph_t *graph, occtl_node_id_t coedge, double *out_first, double *out_last)
occtl_status_t occtl_topo_occurrence_transform(const occtl_graph_t *graph, occtl_node_id_t occurrence, occtl_transform_t *out_transform)
occtl_status_t occtl_topo_shell_face_count(const occtl_graph_t *graph, occtl_node_id_t shell, uint32_t *out_count)
occtl_status_t occtl_topo_edge_tolerance(const occtl_graph_t *graph, occtl_node_id_t edge, double *out_tolerance)
struct occtl_shell_view occtl_shell_view_t
occtl_status_t occtl_graph_metadata_unset(occtl_graph_t *graph, const char *key, size_t keyLen)
occtl_status_t occtl_graph_coedge_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_shell_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_topo_coedge_has_pcurve(const occtl_graph_t *graph, occtl_node_id_t coedge, int32_t *out_has_pcurve)
struct occtl_edge_view occtl_edge_view_t
occtl_status_t occtl_graph_color_set(occtl_graph_t *graph, occtl_node_id_t target, occtl_color_rgba_t color)
occtl_status_t occtl_topo_face_eval_d3(const occtl_graph_t *graph, occtl_node_id_t face, double u, double v, occtl_point3_t *out_p, occtl_vector3_t *out_d1u, occtl_vector3_t *out_d1v, occtl_vector3_t *out_d2u, occtl_vector3_t *out_d2v, occtl_vector3_t *out_d2uv, occtl_vector3_t *out_d3u, occtl_vector3_t *out_d3v, occtl_vector3_t *out_d3uuv, occtl_vector3_t *out_d3uvv)
occtl_status_t occtl_graph_vertex_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_vertex_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_color_entries(const occtl_graph_t *graph, occtl_node_id_t *out_nodes, occtl_color_rgba_t *out_colors, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_coedge_pcurve_eval_d2(const occtl_graph_t *graph, occtl_node_id_t coedge, double u, occtl_point2_t *out_uv, occtl_vector2_t *out_d1, occtl_vector2_t *out_d2)
void occtl_coedge_view_init(occtl_coedge_view_t *view)
occtl_status_t occtl_graph_history_generated(const occtl_graph_t *graph, occtl_uid_t input_uid, occtl_uid_t *out_buf, size_t cap, size_t *out_count)
void occtl_node_iter_free(occtl_node_iter_t *iter)
occtl_status_t occtl_graph_for_each(const occtl_graph_t *graph, uint64_t kind_mask, occtl_node_visitor_t visitor, void *user_data)
occtl_status_t occtl_topo_occurrences_of_product_iter_create(const occtl_graph_t *graph, occtl_node_id_t product, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_ref_uid_table(const occtl_graph_t *graph, occtl_ref_uid_t *out_ref_uids, occtl_ref_id_t *out_refs, size_t cap, size_t *out_count)
occtl_status_t occtl_joint_remove(occtl_graph_t *graph, occtl_joint_id_t joint)
occtl_status_t occtl_topo_coedge_view(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_coedge_view_t *view)
occtl_status_t occtl_topo_link_products_occurrence(occtl_graph_t *graph, occtl_node_id_t parentProduct, occtl_node_id_t childProduct, occtl_transform_t placement, occtl_node_id_t parentOccurrence, occtl_node_id_t *out_occurrence)
occtl_status_t occtl_topo_vertex_point(const occtl_graph_t *graph, occtl_node_id_t vertex, occtl_point3_t *out_point)
occtl_status_t occtl_graph_rep_kind(const occtl_graph_t *graph, occtl_rep_id_t id, occtl_rep_kind_t *out_kind)
occtl_status_t occtl_graph_node_id_from_uid(const occtl_graph_t *graph, occtl_uid_t uid, occtl_node_id_t *out_node_id)
occtl_status_t occtl_graph_wire_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_solid_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_node_metadata_nodes(const occtl_graph_t *graph, occtl_node_id_t *out_nodes, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_uid_from_node_id(const occtl_graph_t *graph, occtl_node_id_t id, occtl_uid_t *out_uid)
occtl_status_t occtl_topo_shells_of_solid_iter_create(const occtl_graph_t *graph, occtl_node_id_t solid, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_face_tolerance(const occtl_graph_t *graph, occtl_node_id_t face, double *out_tolerance)
occtl_status_t occtl_topo_edge_eval_d3(const occtl_graph_t *graph, occtl_node_id_t edge, double u, occtl_point3_t *out_p, occtl_vector3_t *out_d1, occtl_vector3_t *out_d2, occtl_vector3_t *out_d3)
occtl_status_t occtl_topo_wire_is_outer(const occtl_graph_t *graph, occtl_node_id_t wire, int32_t *out_is_outer)
occtl_status_t occtl_topo_coedge_pcurve_eval_d1(const occtl_graph_t *graph, occtl_node_id_t coedge, double u, occtl_point2_t *out_uv, occtl_vector2_t *out_d1)
occtl_status_t occtl_topo_face_uv_bounds(const occtl_graph_t *graph, occtl_node_id_t face, double *out_umin, double *out_umax, double *out_vmin, double *out_vmax)
occtl_status_t occtl_graph_compound_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_name_nodes(const occtl_graph_t *graph, occtl_node_id_t *out_nodes, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_material_get(const occtl_graph_t *graph, occtl_node_id_t target, occtl_material_info_t *out_info, char *name_buf, size_t name_buf_size, size_t *out_name_required)
occtl_status_t occtl_ref_uid_to_bytes(occtl_ref_uid_t ref_uid, uint8_t *out_bytes)
occtl_status_t occtl_topo_face_has_surface(const occtl_graph_t *graph, occtl_node_id_t face, int32_t *out_has_surface)
occtl_status_t occtl_topo_vertex_parameter(const occtl_graph_t *graph, occtl_node_id_t vertex, occtl_node_id_t edge, double *out_parameter)
occtl_status_t occtl_topo_compsolid_solid_count(const occtl_graph_t *graph, occtl_node_id_t compsolid, uint32_t *out_count)
occtl_status_t occtl_topo_wire_distinct_edge_count(const occtl_graph_t *graph, occtl_node_id_t wire, uint32_t *out_count)
occtl_status_t occtl_topo_edge_end_vertex(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_id_t *out_vertex)
occtl_status_t occtl_graph_color_unset(occtl_graph_t *graph, occtl_node_id_t target)
occtl_status_t occtl_graph_root_product_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_vertex_tolerance(const occtl_graph_t *graph, occtl_node_id_t vertex, double *out_tolerance)
occtl_status_t occtl_topo_face_wire_count(const occtl_graph_t *graph, occtl_node_id_t face, uint32_t *out_count)
occtl_status_t occtl_graph_uid_table(const occtl_graph_t *graph, occtl_uid_t *out_uids, occtl_node_id_t *out_nodes, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_face_natural_restriction(const occtl_graph_t *graph, occtl_node_id_t face, int32_t *out_has_natural_restriction)
occtl_status_t occtl_topo_coedge_pcurve_parameter(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_node_id_t vertex, double *out_parameter)
void occtl_compound_view_init(occtl_compound_view_t *view)
occtl_status_t occtl_topo_faces_of_shell_iter_create(const occtl_graph_t *graph, occtl_node_id_t shell, occtl_node_iter_t **out_iter)
struct occtl_face_view occtl_face_view_t
occtl_status_t occtl_graph_shell_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_rep_uid_from_rep_id(const occtl_graph_t *graph, occtl_rep_id_t rep_id, occtl_rep_uid_t *out_rep_uid)
occtl_status_t occtl_topo_edge_is_degenerated(const occtl_graph_t *graph, occtl_node_id_t edge, int32_t *out_is_degenerated)
void occtl_topo_make_product_info_init(occtl_topo_make_product_info_t *info)
void occtl_vertex_view_init(occtl_vertex_view_t *view)
occtl_status_t occtl_topo_wire_explorer_create(const occtl_graph_t *graph, occtl_node_id_t wire, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_material_unset(occtl_graph_t *graph, occtl_node_id_t target)
occtl_status_t occtl_topo_edge_eval(const occtl_graph_t *graph, occtl_node_id_t edge, double u, occtl_point3_t *out_p)
occtl_status_t occtl_topo_coedge_face_of(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_node_id_t *out_face)
occtl_status_t occtl_graph_face_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_create(occtl_graph_t **out_graph)
occtl_status_t occtl_graph_units_get(const occtl_graph_t *graph, double *out_length_unit_to_meter, char *name_buf, size_t name_buf_size, size_t *out_name_required)
occtl_status_t occtl_graph_compsolid_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_product_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_topo_face_eval_d2(const occtl_graph_t *graph, occtl_node_id_t face, double u, double v, occtl_point3_t *out_p, occtl_vector3_t *out_d1u, occtl_vector3_t *out_d1v, occtl_vector3_t *out_d2u, occtl_vector3_t *out_d2v, occtl_vector3_t *out_d2uv)
occtl_status_t occtl_topo_coedge_uv_points(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_point2_t *out_uv_start, occtl_point2_t *out_uv_end)
occtl_status_t occtl_graph_ref_kind(const occtl_graph_t *graph, occtl_ref_id_t id, occtl_ref_kind_t *out_kind)
occtl_status_t occtl_topo_shell_view(const occtl_graph_t *graph, occtl_node_id_t shell, occtl_shell_view_t *view)
struct occtl_vertex_view occtl_vertex_view_t
occtl_status_t occtl_graph_ref_uid_kind(const occtl_graph_t *graph, occtl_ref_uid_t ref_uid, occtl_ref_kind_t *out_kind)
occtl_status_t occtl_topo_edge_eval_d2(const occtl_graph_t *graph, occtl_node_id_t edge, double u, occtl_point3_t *out_p, occtl_vector3_t *out_d1, occtl_vector3_t *out_d2)
occtl_status_t occtl_topo_edges_of_wire_iter_create(const occtl_graph_t *graph, occtl_node_id_t wire, occtl_node_iter_t **out_iter)
occtl_status_t occtl_topo_occurrence_world_transform(const occtl_graph_t *graph, occtl_node_id_t root, occtl_node_id_t occurrence, occtl_transform_t *out_transform)
occtl_status_t occtl_topo_link_products(occtl_graph_t *graph, occtl_node_id_t parentProduct, occtl_node_id_t childProduct, occtl_transform_t placement, occtl_node_id_t parentOccurrence)
occtl_status_t occtl_topo_wire_is_closed(const occtl_graph_t *graph, occtl_node_id_t wire, int32_t *out_is_closed)
occtl_status_t occtl_topo_wire_coedge_count(const occtl_graph_t *graph, occtl_node_id_t wire, uint32_t *out_count)
occtl_status_t occtl_topo_edge_face_count(const occtl_graph_t *graph, occtl_node_id_t edge, uint32_t *out_count)
void occtl_joint_info_init(occtl_joint_info_t *info)
occtl_status_t occtl_topo_vertex_edge_count(const occtl_graph_t *graph, occtl_node_id_t vertex, uint32_t *out_count)
occtl_status_t occtl_graph_edge_count(const occtl_graph_t *graph, size_t *out_count)
void occtl_face_view_init(occtl_face_view_t *view)
occtl_status_t occtl_graph_coedge_iter_create(const occtl_graph_t *graph, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_for_each_ref(const occtl_graph_t *graph, uint64_t ref_kind_mask, occtl_ref_visitor_t visitor, void *user_data)
occtl_status_t occtl_topo_make_product(occtl_graph_t *graph, const occtl_topo_make_product_info_t *info, occtl_node_id_t *out_product)
occtl_status_t occtl_topo_wire_view(const occtl_graph_t *graph, occtl_node_id_t wire, occtl_wire_view_t *view)
occtl_status_t occtl_graph_face_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_node_kind(const occtl_graph_t *graph, occtl_node_id_t id, occtl_node_kind_t *out_kind)
occtl_status_t occtl_topo_edge_eval_d1(const occtl_graph_t *graph, occtl_node_id_t edge, double u, occtl_point3_t *out_p, occtl_vector3_t *out_d1)
occtl_status_t occtl_topo_product_occurrence_count(const occtl_graph_t *graph, occtl_node_id_t product, uint32_t *out_count)
occtl_status_t occtl_topo_link_product_occurrence(occtl_graph_t *graph, occtl_node_id_t product, occtl_node_id_t root, occtl_transform_t placement, occtl_node_id_t *out_occurrence)
occtl_status_t occtl_graph_tag_remove(occtl_graph_t *graph, occtl_node_id_t target, const char *tag, size_t tagLen)
occtl_status_t occtl_graph_ref_id_from_ref_uid(const occtl_graph_t *graph, occtl_ref_uid_t ref_uid, occtl_ref_id_t *out_ref_id)
occtl_status_t occtl_topo_wire_edge_count(const occtl_graph_t *graph, occtl_node_id_t wire, uint32_t *out_count)
occtl_status_t occtl_topo_edge_range(const occtl_graph_t *graph, occtl_node_id_t edge, double *out_first, double *out_last)
occtl_status_t occtl_topo_coedge_pcurve_eval(const occtl_graph_t *graph, occtl_node_id_t coedge, double u, occtl_point2_t *out_uv)
occtl_status_t occtl_graph_node_metadata_get(const occtl_graph_t *graph, occtl_node_id_t target, const char *key, size_t keyLen, char *buf, size_t bufSize, size_t *out_required)
occtl_status_t occtl_graph_node_count(const occtl_graph_t *graph, size_t *out_count)
occtl_status_t occtl_graph_uid_kind(const occtl_graph_t *graph, occtl_uid_t uid, occtl_node_kind_t *out_kind)
occtl_status_t occtl_topo_edge_same_parameter(const occtl_graph_t *graph, occtl_node_id_t edge, int32_t *out_has_same_parameter)
occtl_status_t occtl_graph_for_each_rep(const occtl_graph_t *graph, uint64_t rep_kind_mask, occtl_rep_visitor_t visitor, void *user_data)
occtl_status_t occtl_joint_create(occtl_graph_t *graph, const occtl_joint_info_t *info, occtl_joint_id_t *out_joint)
struct occtl_wire_view occtl_wire_view_t
occtl_status_t occtl_topo_vertices_of_edge_iter_create(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_node_iter_t **out_iter)
occtl_status_t occtl_graph_node_metadata_keys(const occtl_graph_t *graph, occtl_node_id_t target, occtl_metadata_key_view_t *out_keys, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_history_deleted_all(const occtl_graph_t *graph, occtl_uid_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_topo_remove_occurrence(occtl_graph_t *graph, occtl_ref_id_t occurrence_ref)
occtl_status_t occtl_topo_edge_view(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_edge_view_t *view)
occtl_status_t occtl_topo_coedge_pcurve_eval_dn(const occtl_graph_t *graph, occtl_node_id_t coedge, double u, uint32_t n, occtl_vector2_t *out_dn)
occtl_status_t occtl_node_iter_next(occtl_node_iter_t *iter, occtl_node_id_t *out_id)
occtl_status_t occtl_topo_edge_same_range(const occtl_graph_t *graph, occtl_node_id_t edge, int32_t *out_has_same_range)
occtl_status_t occtl_topo_edge_is_boundary(const occtl_graph_t *graph, occtl_node_id_t edge, int32_t *out_is_boundary)
occtl_status_t occtl_graph_material_nodes(const occtl_graph_t *graph, occtl_node_id_t *out_nodes, size_t cap, size_t *out_count)
occtl_status_t occtl_graph_compsolid_count(const occtl_graph_t *graph, size_t *out_count)
void occtl_graph_free(occtl_graph_t *graph)
occtl_status_t occtl_topo_face_outer_wire(const occtl_graph_t *graph, occtl_node_id_t face, occtl_node_id_t *out_wire)
occtl_status_t occtl_topo_shell_is_closed(const occtl_graph_t *graph, occtl_node_id_t shell, int32_t *out_is_closed)
OCCT-Light: Topology builders, mutations, and property setters.
OCCT-Light: Topology relation queries, hit tests, and contact analysis.
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.h:3603
int32_t is_seam
Definition occtl_topo.h:3614
int32_t has_pcurve
Definition occtl_topo.h:3616
double t_max
Definition occtl_topo.h:3611
occtl_point2_t uv_start
Definition occtl_topo.h:3612
double t_min
Definition occtl_topo.h:3610
const void * p_next
Definition occtl_topo.h:3605
occtl_orientation_t orientation
Definition occtl_topo.h:3609
uint32_t struct_version
Definition occtl_topo.h:3604
occtl_node_id_t edge_of
Definition occtl_topo.h:3607
occtl_node_id_t face_of
Definition occtl_topo.h:3608
int32_t is_reversed
Definition occtl_topo.h:3615
occtl_point2_t uv_end
Definition occtl_topo.h:3613
Definition occtl_topo_build.h:2096
Definition occtl_topo.h:3902
const void * p_next
Definition occtl_topo.h:3904
size_t child_count
Definition occtl_topo.h:3906
uint32_t struct_version
Definition occtl_topo.h:3903
Definition occtl_topo.h:3513
uint32_t struct_version
Definition occtl_topo.h:3514
uint32_t internal_vertex_count
Definition occtl_topo.h:3522
const void * p_next
Definition occtl_topo.h:3515
int32_t is_closed
Definition occtl_topo.h:3526
uint32_t face_count
Definition occtl_topo.h:3523
double t_min
Definition occtl_topo.h:3517
occtl_node_id_t end_vertex
Definition occtl_topo.h:3521
int32_t same_range
Definition occtl_topo.h:3528
int32_t same_parameter
Definition occtl_topo.h:3527
int32_t is_boundary
Definition occtl_topo.h:3530
int32_t is_manifold
Definition occtl_topo.h:3529
int32_t has_curve
Definition occtl_topo.h:3524
int32_t is_degenerated
Definition occtl_topo.h:3525
double tolerance
Definition occtl_topo.h:3519
double t_max
Definition occtl_topo.h:3518
occtl_node_id_t start_vertex
Definition occtl_topo.h:3520
Definition occtl_topo.h:3668
int32_t natural_restriction
Definition occtl_topo.h:3681
uint32_t struct_version
Definition occtl_topo.h:3669
const void * p_next
Definition occtl_topo.h:3670
uint32_t wire_count
Definition occtl_topo.h:3678
occtl_node_id_t outer_wire
Definition occtl_topo.h:3677
int32_t has_surface
Definition occtl_topo.h:3679
double tolerance
Definition occtl_topo.h:3676
double v_max
Definition occtl_topo.h:3675
double u_max
Definition occtl_topo.h:3673
double v_min
Definition occtl_topo.h:3674
int32_t has_triangulation
Definition occtl_topo.h:3680
double u_min
Definition occtl_topo.h:3672
Definition occtl_topo_types.h:120
Definition occtl_topo_build.h:2165
Definition occtl_topo_build.h:2114
Definition occtl_topo_types.h:50
Definition occtl_geom.h:49
Definition occtl_geom.h:76
Definition occtl_topo_types.h:61
Definition occtl_topo_types.h:76
Definition occtl_core.h:251
Definition occtl_topo_types.h:91
Definition occtl_topo.h:3813
uint32_t struct_version
Definition occtl_topo.h:3814
const void * p_next
Definition occtl_topo.h:3815
size_t face_count
Definition occtl_topo.h:3818
int32_t is_closed
Definition occtl_topo.h:3817
Definition occtl_topo.h:3858
size_t shell_count
Definition occtl_topo.h:3862
uint32_t struct_version
Definition occtl_topo.h:3859
const void * p_next
Definition occtl_topo.h:3860
Definition occtl_topo_build.h:2217
Definition occtl_topo.h:3214
occtl_node_id_t root
Definition occtl_topo.h:3217
uint32_t struct_version
Definition occtl_topo.h:3215
occtl_transform_t placement
Definition occtl_topo.h:3218
const void * p_next
Definition occtl_topo.h:3216
Definition occtl_core.h:272
Definition occtl_geom.h:56
Definition occtl_geom.h:84
Definition occtl_topo.h:3722
uint32_t struct_version
Definition occtl_topo.h:3723
double tolerance
Definition occtl_topo.h:3727
occtl_point3_t point
Definition occtl_topo.h:3726
const void * p_next
Definition occtl_topo.h:3724
Definition occtl_topo.h:3767
size_t coedge_count
Definition occtl_topo.h:3772
uint32_t struct_version
Definition occtl_topo.h:3768
int32_t is_closed
Definition occtl_topo.h:3771
size_t distinct_edge_count
Definition occtl_topo.h:3773
const void * p_next
Definition occtl_topo.h:3769