75#define OCCTL_MESH_OPTIONS_VERSION_1 1u
139#define OCCTL_MESH_OPTIONS_INIT \
140 {OCCTL_MESH_OPTIONS_VERSION_1, \
157 {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}}, \
159 OCCTL_ANGLE_20_DEG_RAD}
236 size_t* out_required);
288#define OCCTL_MESH_FROM_BUFFERS_OPTIONS_VERSION_1 1u
310#define OCCTL_MESH_FROM_BUFFERS_OPTIONS_INIT \
311 {OCCTL_MESH_FROM_BUFFERS_OPTIONS_VERSION_1, NULL, NULL, 0, NULL, 0, 0.0}
502 uint32_t* out_count);
635#define OCCTL_MESH_TRIANGLE_ADJACENCY_BOUNDARY UINT32_MAX
661#define OCCTL_MESH_TRIANGLE_COMPONENTS_OPTIONS_VERSION_1 1u
682#define OCCTL_MESH_TRIANGLE_COMPONENTS_OPTIONS_INIT \
683 {OCCTL_MESH_TRIANGLE_COMPONENTS_OPTIONS_VERSION_1, \
685 OCCTL_NODE_ID_INVALID, \
686 OCCTL_ANGLE_1_DEG_RAD, \
866#define OCCTL_MESH_TRIANGLE_PLANE_COMPONENTS_OPTIONS_VERSION_1 1u
889#define OCCTL_MESH_TRIANGLE_PLANE_COMPONENTS_OPTIONS_INIT \
890 {OCCTL_MESH_TRIANGLE_PLANE_COMPONENTS_OPTIONS_VERSION_1, \
892 OCCTL_NODE_ID_INVALID, \
893 OCCTL_ANGLE_1_DEG_RAD, \
932#define OCCTL_MESH_TRIANGLE_SPHERE_COMPONENTS_OPTIONS_VERSION_1 1u
956#define OCCTL_MESH_TRIANGLE_SPHERE_COMPONENTS_OPTIONS_INIT \
957 {OCCTL_MESH_TRIANGLE_SPHERE_COMPONENTS_OPTIONS_VERSION_1, \
959 OCCTL_NODE_ID_INVALID, \
960 OCCTL_ANGLE_30_DEG_RAD, \
1000#define OCCTL_MESH_TRIANGLE_CYLINDER_COMPONENTS_OPTIONS_VERSION_1 1u
1026#define OCCTL_MESH_TRIANGLE_CYLINDER_COMPONENTS_OPTIONS_INIT \
1027 {OCCTL_MESH_TRIANGLE_CYLINDER_COMPONENTS_OPTIONS_VERSION_1, \
1029 OCCTL_NODE_ID_INVALID, \
1030 OCCTL_ANGLE_30_DEG_RAD, \
1212 uint32_t component_id,
1249 uint32_t component_id,
1285 uint32_t component_id,
1320 uint32_t component_id,
1531 uint32_t component_id,
1570 uint32_t component_id,
1710 uint32_t component_id,
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
OCCT-Light: geometry primitive types and math utilities.
occtl_status_t occtl_mesh_model_metadata_set(occtl_graph_t *graph, const char *key, size_t keyLen, const char *value, size_t valueLen)
struct occtl_mesh_triangle_sphere_component occtl_mesh_triangle_sphere_component_t
struct occtl_mesh_triangle_component_summaries_view occtl_mesh_triangle_component_summaries_view_t
occtl_status_t occtl_mesh_generate(occtl_graph_t *graph, const occtl_node_id_t *nodes, size_t n_nodes, const occtl_mesh_options_t *options)
struct occtl_mesh_triangle_buffers_view occtl_mesh_triangle_buffers_view_t
occtl_status_t occtl_mesh_triangle_sphere_components(const occtl_graph_t *graph, const occtl_mesh_triangle_sphere_components_options_t *options, occtl_mesh_triangle_sphere_components_view_t *out_view)
struct occtl_polygon_on_tri_view occtl_polygon_on_tri_view_t
struct occtl_triangulation_view occtl_triangulation_view_t
occtl_status_t occtl_mesh_coedge_polygon_on_tri(const occtl_graph_t *graph, occtl_node_id_t coedge, occtl_polygon_on_tri_view_t *out_view)
occtl_status_t occtl_mesh_from_buffers(const occtl_mesh_from_buffers_options_t *options, occtl_graph_t **out_graph, occtl_node_id_t *out_root)
struct occtl_mesh_triangle_cylinder_components_options occtl_mesh_triangle_cylinder_components_options_t
occtl_status_t occtl_mesh_triangle_component_boundary(const occtl_graph_t *graph, const occtl_mesh_triangle_components_options_t *options, uint32_t component_id, occtl_mesh_triangle_component_boundary_view_t *out_view)
occtl_status_t occtl_mesh_model_metadata_unset(occtl_graph_t *graph, const char *key, size_t keyLen)
struct occtl_mesh_triangle_plane_component occtl_mesh_triangle_plane_component_t
struct occtl_mesh_triangle_component_boundary_view occtl_mesh_triangle_component_boundary_view_t
occtl_status_t occtl_mesh_make_plane_component_face(occtl_graph_t *graph, const occtl_mesh_triangle_plane_components_options_t *options, uint32_t component_id, occtl_node_id_t *out_face)
struct occtl_mesh_component_boundary_polylines_view occtl_mesh_component_boundary_polylines_view_t
void occtl_mesh_triangle_components_options_init(occtl_mesh_triangle_components_options_t *options)
occtl_status_t occtl_mesh_make_sphere_component_solid(occtl_graph_t *graph, const occtl_mesh_triangle_sphere_components_options_t *options, uint32_t component_id, occtl_node_id_t *out_solid)
occtl_status_t occtl_mesh_triangle_analysis(const occtl_graph_t *graph, occtl_node_id_t root, occtl_mesh_triangle_analysis_view_t *out_view)
struct occtl_mesh_triangle_sphere_components_options occtl_mesh_triangle_sphere_components_options_t
void occtl_mesh_triangle_sphere_components_options_init(occtl_mesh_triangle_sphere_components_options_t *options)
struct occtl_mesh_triangle_component_boundary_edge occtl_mesh_triangle_component_boundary_edge_t
struct occtl_mesh_component_boundary_polyline occtl_mesh_component_boundary_polyline_t
struct occtl_mesh_triangle_sphere_components_view occtl_mesh_triangle_sphere_components_view_t
occtl_status_t occtl_mesh_make_cylinder_component_solid(occtl_graph_t *graph, const occtl_mesh_triangle_cylinder_components_options_t *options, uint32_t component_id, occtl_node_id_t *out_solid)
occtl_status_t occtl_mesh_face_triangulation_indexed(const occtl_graph_t *graph, occtl_node_id_t face, uint32_t index, occtl_triangulation_view_t *out_view)
void occtl_mesh_options_init(occtl_mesh_options_t *options)
occtl_status_t occtl_mesh_model_metadata_keys(const occtl_graph_t *graph, occtl_metadata_key_view_t *out_keys, size_t cap, size_t *out_count)
occtl_status_t occtl_mesh_edge_polygon3d(const occtl_graph_t *graph, occtl_node_id_t edge, occtl_polygon3d_view_t *out_view)
occtl_status_t occtl_mesh_triangle_buffers(const occtl_graph_t *graph, occtl_node_id_t root, occtl_mesh_triangle_buffers_view_t *out_view)
struct occtl_mesh_triangle_component_boundary_chains_view occtl_mesh_triangle_component_boundary_chains_view_t
void occtl_mesh_triangle_plane_components_options_init(occtl_mesh_triangle_plane_components_options_t *options)
occtl_status_t occtl_mesh_make_sphere_component_solids(occtl_graph_t *graph, const occtl_mesh_triangle_sphere_components_options_t *options, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
void occtl_mesh_from_buffers_options_init(occtl_mesh_from_buffers_options_t *options)
void occtl_mesh_triangle_cylinder_components_options_init(occtl_mesh_triangle_cylinder_components_options_t *options)
struct occtl_mesh_triangle_components_view occtl_mesh_triangle_components_view_t
occtl_status_t occtl_mesh_face_triangulation(const occtl_graph_t *graph, occtl_node_id_t face, occtl_triangulation_view_t *out_view)
occtl_status_t occtl_mesh_make_plane_component_faces(occtl_graph_t *graph, const occtl_mesh_triangle_plane_components_options_t *options, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_mesh_face_triangulation_count(const occtl_graph_t *graph, occtl_node_id_t face, uint32_t *out_count)
struct occtl_mesh_triangle_cylinder_component occtl_mesh_triangle_cylinder_component_t
struct occtl_mesh_from_buffers_options occtl_mesh_from_buffers_options_t
struct occtl_mesh_triangle_cylinder_components_view occtl_mesh_triangle_cylinder_components_view_t
struct occtl_aabb3 occtl_aabb3_t
occtl_status_t occtl_mesh_model_metadata_get(const occtl_graph_t *graph, const char *key, size_t keyLen, char *buf, size_t bufSize, size_t *out_required)
struct occtl_mesh_triangle_components_options occtl_mesh_triangle_components_options_t
occtl_status_t occtl_mesh_make_cylinder_component_solids(occtl_graph_t *graph, const occtl_mesh_triangle_cylinder_components_options_t *options, occtl_node_id_t *out_buf, size_t cap, size_t *out_count)
occtl_status_t occtl_mesh_triangle_components(const occtl_graph_t *graph, const occtl_mesh_triangle_components_options_t *options, occtl_mesh_triangle_components_view_t *out_view)
struct occtl_mesh_options occtl_mesh_options_t
occtl_status_t occtl_mesh_triangle_component_boundary_chains(const occtl_graph_t *graph, const occtl_mesh_triangle_components_options_t *options, uint32_t component_id, occtl_mesh_triangle_component_boundary_chains_view_t *out_view)
struct occtl_mesh_triangle_plane_components_options occtl_mesh_triangle_plane_components_options_t
struct occtl_polygon3d_view occtl_polygon3d_view_t
struct occtl_mesh_triangle_analysis_view occtl_mesh_triangle_analysis_view_t
occtl_status_t occtl_mesh_triangle_cylinder_components(const occtl_graph_t *graph, const occtl_mesh_triangle_cylinder_components_options_t *options, occtl_mesh_triangle_cylinder_components_view_t *out_view)
struct occtl_mesh_triangle_component_triangles_view occtl_mesh_triangle_component_triangles_view_t
occtl_status_t occtl_mesh_triangle_plane_components(const occtl_graph_t *graph, const occtl_mesh_triangle_plane_components_options_t *options, occtl_mesh_triangle_plane_components_view_t *out_view)
struct occtl_mesh_triangle_component_summary occtl_mesh_triangle_component_summary_t
occtl_status_t occtl_mesh_component_boundary_polylines(const occtl_graph_t *graph, const occtl_mesh_triangle_components_options_t *options, uint32_t component_id, occtl_mesh_component_boundary_polylines_view_t *out_view)
struct occtl_mesh_triangle_component_boundary_chain occtl_mesh_triangle_component_boundary_chain_t
occtl_status_t occtl_mesh_triangle_component_triangles(const occtl_graph_t *graph, const occtl_mesh_triangle_components_options_t *options, uint32_t component_id, occtl_mesh_triangle_component_triangles_view_t *out_view)
struct occtl_mesh_triangle_plane_components_view occtl_mesh_triangle_plane_components_view_t
occtl_status_t occtl_mesh_triangle_component_summaries(const occtl_graph_t *graph, const occtl_mesh_triangle_components_options_t *options, occtl_mesh_triangle_component_summaries_view_t *out_view)
OCCT-Light: topology module public API.
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_mesh.h:66
occtl_point3_t min
Definition occtl_mesh.h:67
occtl_point3_t max
Definition occtl_mesh.h:68
Definition occtl_mesh.h:768
uint32_t point_count
Definition occtl_mesh.h:770
uint32_t first_point
Definition occtl_mesh.h:769
int32_t is_closed
Definition occtl_mesh.h:771
Definition occtl_mesh.h:821
size_t polyline_count
Definition occtl_mesh.h:826
const occtl_point3_t * points
Definition occtl_mesh.h:822
occtl_node_id_t root
Definition occtl_mesh.h:828
size_t point_count
Definition occtl_mesh.h:823
const occtl_mesh_component_boundary_polyline_t * polylines
Definition occtl_mesh.h:825
uint32_t component_id
Definition occtl_mesh.h:827
Definition occtl_mesh.h:299
size_t triangle_count
Definition occtl_mesh.h:306
const uint32_t * triangles
Definition occtl_mesh.h:305
const void * p_next
Definition occtl_mesh.h:301
double deflection
Definition occtl_mesh.h:307
const double * nodes
Definition occtl_mesh.h:303
uint32_t struct_version
Definition occtl_mesh.h:300
size_t node_count
Definition occtl_mesh.h:304
Definition occtl_mesh.h:97
double min_size
Definition occtl_mesh.h:108
uint32_t struct_version
Definition occtl_mesh.h:98
int32_t in_parallel
Definition occtl_mesh.h:110
int32_t allow_quality_decrease
Definition occtl_mesh.h:122
int32_t clean_model
Definition occtl_mesh.h:117
double deflection_interior
Definition occtl_mesh.h:104
double angle_interior
Definition occtl_mesh.h:105
double angle
Definition occtl_mesh.h:102
int32_t control_surface_deflection
Definition occtl_mesh.h:114
const void * p_next
Definition occtl_mesh.h:99
int32_t force_face_deflection
Definition occtl_mesh.h:120
double deflection
Definition occtl_mesh.h:101
occtl_aabb3_t bbox
Definition occtl_mesh.h:128
double deviation_angle
Definition occtl_mesh.h:130
double deviation_coefficient
Definition occtl_mesh.h:129
int32_t internal_vertices_mode
Definition occtl_mesh.h:112
int32_t use_bbox
Definition occtl_mesh.h:125
int32_t relative
Definition occtl_mesh.h:111
int32_t adjust_min_size
Definition occtl_mesh.h:119
int32_t control_surface_deflection_all
Definition occtl_mesh.h:115
Definition occtl_mesh.h:652
const double * triangle_normals
Definition occtl_mesh.h:653
size_t triangle_count
Definition occtl_mesh.h:656
occtl_node_id_t root
Definition occtl_mesh.h:658
const uint32_t * triangle_adjacency
Definition occtl_mesh.h:655
size_t face_count
Definition occtl_mesh.h:657
Definition occtl_mesh.h:626
size_t node_count
Definition occtl_mesh.h:628
occtl_node_id_t root
Definition occtl_mesh.h:632
const uint32_t * triangles
Definition occtl_mesh.h:629
size_t face_count
Definition occtl_mesh.h:631
const double * nodes
Definition occtl_mesh.h:627
size_t triangle_count
Definition occtl_mesh.h:630
Definition occtl_mesh.h:753
uint32_t edge_count
Definition occtl_mesh.h:755
int32_t is_closed
Definition occtl_mesh.h:756
uint32_t first_edge
Definition occtl_mesh.h:754
Definition occtl_mesh.h:800
size_t chain_count
Definition occtl_mesh.h:806
size_t edge_count
Definition occtl_mesh.h:803
const occtl_mesh_triangle_component_boundary_chain_t * chains
Definition occtl_mesh.h:805
uint32_t component_id
Definition occtl_mesh.h:807
occtl_node_id_t root
Definition occtl_mesh.h:808
const occtl_mesh_triangle_component_boundary_edge_t * edges
Definition occtl_mesh.h:802
Definition occtl_mesh.h:736
uint32_t node0
Definition occtl_mesh.h:739
uint32_t adjacent_triangle
Definition occtl_mesh.h:741
uint32_t triangle
Definition occtl_mesh.h:737
uint32_t local_edge
Definition occtl_mesh.h:738
uint32_t node1
Definition occtl_mesh.h:740
Definition occtl_mesh.h:782
occtl_node_id_t root
Definition occtl_mesh.h:787
uint32_t component_id
Definition occtl_mesh.h:786
size_t edge_count
Definition occtl_mesh.h:785
const occtl_mesh_triangle_component_boundary_edge_t * edges
Definition occtl_mesh.h:784
Definition occtl_mesh.h:858
size_t component_count
Definition occtl_mesh.h:861
size_t triangle_count
Definition occtl_mesh.h:862
occtl_node_id_t root
Definition occtl_mesh.h:863
const occtl_mesh_triangle_component_summary_t * summaries
Definition occtl_mesh.h:860
Definition occtl_mesh.h:839
double area
Definition occtl_mesh.h:842
occtl_point3_t centroid
Definition occtl_mesh.h:843
occtl_aabb3_t bounds
Definition occtl_mesh.h:845
occtl_vector3_t normal
Definition occtl_mesh.h:844
uint32_t triangle_count
Definition occtl_mesh.h:841
uint32_t component_id
Definition occtl_mesh.h:840
Definition occtl_mesh.h:719
occtl_node_id_t root
Definition occtl_mesh.h:723
const uint32_t * triangles
Definition occtl_mesh.h:720
uint32_t component_id
Definition occtl_mesh.h:722
size_t triangle_count
Definition occtl_mesh.h:721
Definition occtl_mesh.h:673
uint32_t struct_version
Definition occtl_mesh.h:674
occtl_node_id_t root
Definition occtl_mesh.h:676
int32_t include_opposite_normals
Definition occtl_mesh.h:679
double max_normal_angle
Definition occtl_mesh.h:677
const void * p_next
Definition occtl_mesh.h:675
Definition occtl_mesh.h:700
const uint32_t * triangle_component_ids
Definition occtl_mesh.h:702
const uint32_t * component_sizes
Definition occtl_mesh.h:704
size_t triangle_count
Definition occtl_mesh.h:703
size_t component_count
Definition occtl_mesh.h:705
occtl_node_id_t root
Definition occtl_mesh.h:706
Definition occtl_mesh.h:1047
uint32_t triangle_count
Definition occtl_mesh.h:1049
uint32_t component_id
Definition occtl_mesh.h:1048
double max_distance
Definition occtl_mesh.h:1057
double height_min
Definition occtl_mesh.h:1054
double area
Definition occtl_mesh.h:1050
double height_max
Definition occtl_mesh.h:1055
occtl_vector3_t axis_direction
Definition occtl_mesh.h:1052
occtl_point3_t axis_origin
Definition occtl_mesh.h:1051
occtl_aabb3_t bounds
Definition occtl_mesh.h:1056
double radius
Definition occtl_mesh.h:1053
Definition occtl_mesh.h:1012
occtl_node_id_t root
Definition occtl_mesh.h:1016
double min_radius
Definition occtl_mesh.h:1023
uint32_t min_triangle_count
Definition occtl_mesh.h:1022
const void * p_next
Definition occtl_mesh.h:1015
double min_area
Definition occtl_mesh.h:1021
double max_distance
Definition occtl_mesh.h:1020
uint32_t struct_version
Definition occtl_mesh.h:1014
double max_normal_angle
Definition occtl_mesh.h:1017
int32_t include_opposite_normals
Definition occtl_mesh.h:1019
Definition occtl_mesh.h:1067
const occtl_mesh_triangle_cylinder_component_t * components
Definition occtl_mesh.h:1069
occtl_node_id_t root
Definition occtl_mesh.h:1072
size_t component_count
Definition occtl_mesh.h:1070
size_t triangle_count
Definition occtl_mesh.h:1071
Definition occtl_mesh.h:907
occtl_vector3_t normal
Definition occtl_mesh.h:912
double area
Definition occtl_mesh.h:910
uint32_t component_id
Definition occtl_mesh.h:908
double max_distance
Definition occtl_mesh.h:914
uint32_t triangle_count
Definition occtl_mesh.h:909
occtl_point3_t origin
Definition occtl_mesh.h:911
occtl_aabb3_t bounds
Definition occtl_mesh.h:913
Definition occtl_mesh.h:877
occtl_node_id_t root
Definition occtl_mesh.h:880
double min_area
Definition occtl_mesh.h:885
uint32_t struct_version
Definition occtl_mesh.h:878
const void * p_next
Definition occtl_mesh.h:879
double max_distance
Definition occtl_mesh.h:884
double max_normal_angle
Definition occtl_mesh.h:881
uint32_t min_triangle_count
Definition occtl_mesh.h:886
int32_t include_opposite_normals
Definition occtl_mesh.h:883
Definition occtl_mesh.h:924
const occtl_mesh_triangle_plane_component_t * components
Definition occtl_mesh.h:926
occtl_node_id_t root
Definition occtl_mesh.h:929
size_t triangle_count
Definition occtl_mesh.h:928
size_t component_count
Definition occtl_mesh.h:927
Definition occtl_mesh.h:975
uint32_t triangle_count
Definition occtl_mesh.h:977
uint32_t component_id
Definition occtl_mesh.h:976
double max_distance
Definition occtl_mesh.h:982
double radius
Definition occtl_mesh.h:980
occtl_point3_t center
Definition occtl_mesh.h:979
double area
Definition occtl_mesh.h:978
occtl_aabb3_t bounds
Definition occtl_mesh.h:981
Definition occtl_mesh.h:943
int32_t include_opposite_normals
Definition occtl_mesh.h:949
double max_normal_angle
Definition occtl_mesh.h:947
double min_area
Definition occtl_mesh.h:951
uint32_t min_triangle_count
Definition occtl_mesh.h:952
double min_radius
Definition occtl_mesh.h:953
uint32_t struct_version
Definition occtl_mesh.h:944
const void * p_next
Definition occtl_mesh.h:945
double max_distance
Definition occtl_mesh.h:950
occtl_node_id_t root
Definition occtl_mesh.h:946
Definition occtl_mesh.h:992
size_t component_count
Definition occtl_mesh.h:995
size_t triangle_count
Definition occtl_mesh.h:996
occtl_node_id_t root
Definition occtl_mesh.h:997
const occtl_mesh_triangle_sphere_component_t * components
Definition occtl_mesh.h:994
Definition occtl_topo_types.h:50
Definition occtl_geom.h:76
Definition occtl_mesh.h:541
double deflection
Definition occtl_mesh.h:546
occtl_uid_t source_uid
Definition occtl_mesh.h:547
const double * nodes
Definition occtl_mesh.h:542
size_t node_count
Definition occtl_mesh.h:543
const double * parameters
Definition occtl_mesh.h:545
Definition occtl_mesh.h:581
double deflection
Definition occtl_mesh.h:587
occtl_uid_t source_uid
Definition occtl_mesh.h:588
const double * parameters
Definition occtl_mesh.h:586
const uint32_t * node_indices
Definition occtl_mesh.h:582
size_t node_count
Definition occtl_mesh.h:584
Definition occtl_mesh.h:439
size_t node_count
Definition occtl_mesh.h:441
occtl_uid_t source_uid
Definition occtl_mesh.h:448
const double * nodes
Definition occtl_mesh.h:440
const double * uvs
Definition occtl_mesh.h:444
const uint32_t * triangles
Definition occtl_mesh.h:445
const double * normals
Definition occtl_mesh.h:443
size_t triangle_count
Definition occtl_mesh.h:446
double deflection
Definition occtl_mesh.h:447
Definition occtl_core.h:272
Definition occtl_geom.h:84