OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
occtl_prim_sweep.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
21#ifndef OCCTL_PRIM_SWEEP_H
22#define OCCTL_PRIM_SWEEP_H
23
24#include "occtl_core.h"
25#include "occtl_curves2d.h"
26#include "occtl_geom.h"
27#include "occtl_surfaces.h"
28#include "occtl_topo.h"
29
30#ifdef __cplusplus
31extern "C"
32{
33#endif
34
35#define OCCTL_PRIM_PRISM_INFO_VERSION_1 1u
36
54
55#define OCCTL_PRIM_PRISM_INFO_INIT \
56 {OCCTL_PRIM_PRISM_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, {0.0, 0.0, 0.0}, 0, 1}
57
70
100 const occtl_prim_prism_info_t* info,
101 occtl_node_id_t* out_shape);
102
103#define OCCTL_PRIM_TWIST_EXTRUSION_INFO_VERSION_1 1u
104
125
126#define OCCTL_PRIM_TWIST_EXTRUSION_INFO_INIT \
127 {OCCTL_PRIM_TWIST_EXTRUSION_INFO_VERSION_1, \
128 NULL, \
129 OCCTL_NODE_ID_INVALID, \
130 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}}, \
131 1.0, \
132 0.0, \
133 9, \
134 1, \
135 1, \
136 1.0e-6}
137
149OCCTL_API void OCCTL_CALL
151
181OCCTL_API occtl_status_t OCCTL_CALL
184 occtl_node_id_t* out_shape);
185
186#define OCCTL_PRIM_EXTRUDE_TWIST_INFO_VERSION_1 1u
187
207
208#define OCCTL_PRIM_EXTRUDE_TWIST_INFO_INIT \
209 {OCCTL_PRIM_EXTRUDE_TWIST_INFO_VERSION_1, \
210 NULL, \
211 OCCTL_NODE_ID_INVALID, \
212 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}}, \
213 1.0, \
214 0.0, \
215 9, \
216 1, \
217 1, \
218 1.0e-6}
219
232
258OCCTL_API occtl_status_t OCCTL_CALL
261 occtl_node_id_t* out_shape);
262
263#define OCCTL_PRIM_REVOL_INFO_VERSION_1 1u
264
281
282#define OCCTL_PRIM_REVOL_INFO_INIT \
283 {OCCTL_PRIM_REVOL_INFO_VERSION_1, \
284 NULL, \
285 OCCTL_NODE_ID_INVALID, \
286 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}}, \
287 OCCTL_TWO_PI, \
288 0}
289
302
328 const occtl_prim_revol_info_t* info,
329 occtl_node_id_t* out_shape);
330
331#define OCCTL_PRIM_PIPE_INFO_VERSION_1 1u
332
347
348#define OCCTL_PRIM_PIPE_INFO_INIT \
349 {OCCTL_PRIM_PIPE_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, OCCTL_NODE_ID_INVALID}
350
363
390 const occtl_prim_pipe_info_t* info,
391 occtl_node_id_t* out_shape);
392
393#define OCCTL_PRIM_LOFT_INFO_VERSION_1 1u
394
414
415#define OCCTL_PRIM_LOFT_INFO_INIT {OCCTL_PRIM_LOFT_INFO_VERSION_1, NULL, NULL, 0, 0, 0, 1.0e-6}
416
429
458 const occtl_prim_loft_info_t* info,
459 occtl_node_id_t* out_shape);
460
462{
467 3,
469 4,
470 OCCTL_PIPE_MODE_RESERVED_FUTURE = 0x7fffffff
471} occtl_prim_pipe_mode_t;
472
485
486#define OCCTL_PRIM_PIPE_SHELL_INFO_VERSION_1 1u
487
511
512#define OCCTL_PRIM_PIPE_SHELL_INFO_INIT \
513 {OCCTL_PRIM_PIPE_SHELL_INFO_VERSION_1, \
514 NULL, \
515 OCCTL_NODE_ID_INVALID, \
516 NULL, \
517 0, \
518 OCCTL_PIPE_MODE_CORRECTED_FRENET, \
519 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
520 {0.0, 0.0, 1.0}, \
521 OCCTL_PIPE_TRANSITION_MODIFIED, \
522 0, \
523 0, \
524 0}
525
538
569OCCTL_API occtl_status_t OCCTL_CALL
572 occtl_node_id_t* out_shape);
573
574#define OCCTL_PRIM_PIPE_SHELL_LINEAR_LAW_INFO_VERSION_1 1u
575
600
601#define OCCTL_PRIM_PIPE_SHELL_LINEAR_LAW_INFO_INIT \
602 {OCCTL_PRIM_PIPE_SHELL_LINEAR_LAW_INFO_VERSION_1, \
603 NULL, \
604 OCCTL_NODE_ID_INVALID, \
605 OCCTL_NODE_ID_INVALID, \
606 1.0, \
607 1.0, \
608 OCCTL_PIPE_MODE_CORRECTED_FRENET, \
609 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
610 {0.0, 0.0, 1.0}, \
611 OCCTL_PIPE_TRANSITION_MODIFIED, \
612 0, \
613 0, \
614 0}
615
627OCCTL_API void OCCTL_CALL
629
662OCCTL_API occtl_status_t OCCTL_CALL
665 occtl_node_id_t* out_shape);
666
667#define OCCTL_PRIM_PIPE_SHELL_INTERPOLATED_LAW_INFO_VERSION_1 1u
668
699
700#define OCCTL_PRIM_PIPE_SHELL_INTERPOLATED_LAW_INFO_INIT \
701 {OCCTL_PRIM_PIPE_SHELL_INTERPOLATED_LAW_INFO_VERSION_1, \
702 NULL, \
703 OCCTL_NODE_ID_INVALID, \
704 OCCTL_NODE_ID_INVALID, \
705 NULL, \
706 NULL, \
707 0, \
708 OCCTL_PIPE_MODE_CORRECTED_FRENET, \
709 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
710 {0.0, 0.0, 1.0}, \
711 OCCTL_PIPE_TRANSITION_MODIFIED, \
712 0, \
713 0, \
714 0}
715
729
765 occtl_graph_t* graph,
767 occtl_node_id_t* out_shape);
768
779
780#define OCCTL_PRIM_OFFSET_SHAPE_INFO_VERSION_1 1u
781
804
805#define OCCTL_PRIM_OFFSET_SHAPE_INFO_INIT \
806 {OCCTL_PRIM_OFFSET_SHAPE_INFO_VERSION_1, \
807 NULL, \
808 OCCTL_NODE_ID_INVALID, \
809 0.0, \
810 1.0e-3, \
811 OCCTL_OFFSET_MODE_SKIN, \
812 OCCTL_OFFSET_JOIN_ARC, \
813 0, \
814 0, \
815 0}
816
829
852OCCTL_API occtl_status_t OCCTL_CALL
855 occtl_node_id_t* out_shape);
856
857#define OCCTL_PRIM_THICK_SOLID_INFO_VERSION_1 1u
858
882
883#define OCCTL_PRIM_THICK_SOLID_INFO_INIT \
884 {OCCTL_PRIM_THICK_SOLID_INFO_VERSION_1, \
885 NULL, \
886 OCCTL_NODE_ID_INVALID, \
887 NULL, \
888 0, \
889 0.0, \
890 1.0e-3, \
891 OCCTL_OFFSET_MODE_SKIN, \
892 OCCTL_OFFSET_JOIN_ARC, \
893 0, \
894 0, \
895 0}
896
909
933OCCTL_API occtl_status_t OCCTL_CALL
936 occtl_node_id_t* out_solid);
937
938#ifdef __cplusplus
939}
940#endif
941
942#endif /* OCCTL_PRIM_SWEEP_H */
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
OCCT-Light: 2D curve (pcurve) API on BRepGraph.
OCCT-Light: geometry primitive types and math utilities.
occtl_prim_pipe_transition
Definition occtl_prim_sweep.h:479
@ OCCTL_PIPE_TRANSITION_MODIFIED
Definition occtl_prim_sweep.h:480
@ OCCTL_PIPE_TRANSITION_RIGHT_CORNER
Definition occtl_prim_sweep.h:481
@ OCCTL_PIPE_TRANSITION_ROUND_CORNER
Definition occtl_prim_sweep.h:482
void occtl_prim_pipe_shell_interpolated_law_info_init(occtl_prim_pipe_shell_interpolated_law_info_t *info)
struct occtl_prim_offset_shape_info occtl_prim_offset_shape_info_t
void occtl_prim_pipe_info_init(occtl_prim_pipe_info_t *info)
occtl_status_t occtl_prim_make_offset_shape(occtl_graph_t *graph, const occtl_prim_offset_shape_info_t *info, occtl_node_id_t *out_shape)
void occtl_prim_revol_info_init(occtl_prim_revol_info_t *info)
struct occtl_prim_loft_info occtl_prim_loft_info_t
struct occtl_prim_twist_extrusion_info occtl_prim_twist_extrusion_info_t
struct occtl_prim_prism_info occtl_prim_prism_info_t
occtl_status_t occtl_prim_make_pipe_shell_interpolated_law(occtl_graph_t *graph, const occtl_prim_pipe_shell_interpolated_law_info_t *info, occtl_node_id_t *out_shape)
struct occtl_prim_pipe_shell_linear_law_info occtl_prim_pipe_shell_linear_law_info_t
occtl_status_t occtl_prim_make_pipe(occtl_graph_t *graph, const occtl_prim_pipe_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_loft(occtl_graph_t *graph, const occtl_prim_loft_info_t *info, occtl_node_id_t *out_shape)
struct occtl_prim_thick_solid_info occtl_prim_thick_solid_info_t
occtl_status_t occtl_prim_make_extrude_twist(occtl_graph_t *graph, const occtl_prim_extrude_twist_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_pipe_shell_linear_law(occtl_graph_t *graph, const occtl_prim_pipe_shell_linear_law_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_prism(occtl_graph_t *graph, const occtl_prim_prism_info_t *info, occtl_node_id_t *out_shape)
struct occtl_prim_pipe_shell_info occtl_prim_pipe_shell_info_t
void occtl_prim_loft_info_init(occtl_prim_loft_info_t *info)
void occtl_prim_prism_info_init(occtl_prim_prism_info_t *info)
void occtl_prim_thick_solid_info_init(occtl_prim_thick_solid_info_t *info)
struct occtl_prim_pipe_shell_interpolated_law_info occtl_prim_pipe_shell_interpolated_law_info_t
enum occtl_prim_pipe_transition occtl_prim_pipe_transition_t
occtl_prim_offset_mode
Definition occtl_prim_sweep.h:773
@ OCCTL_OFFSET_MODE_PIPE
Definition occtl_prim_sweep.h:775
@ OCCTL_OFFSET_MODE_SKIN
Definition occtl_prim_sweep.h:774
@ OCCTL_OFFSET_MODE_RECTO_VERSO
Definition occtl_prim_sweep.h:776
struct occtl_prim_extrude_twist_info occtl_prim_extrude_twist_info_t
enum occtl_prim_offset_mode occtl_prim_offset_mode_t
void occtl_prim_offset_shape_info_init(occtl_prim_offset_shape_info_t *info)
occtl_status_t occtl_prim_make_twist_extrusion(occtl_graph_t *graph, const occtl_prim_twist_extrusion_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_revol(occtl_graph_t *graph, const occtl_prim_revol_info_t *info, occtl_node_id_t *out_shape)
struct occtl_prim_revol_info occtl_prim_revol_info_t
occtl_prim_pipe_mode
Definition occtl_prim_sweep.h:462
@ OCCTL_PIPE_MODE_DISCRETE
Definition occtl_prim_sweep.h:465
@ OCCTL_PIPE_MODE_CORRECTED_FRENET
Definition occtl_prim_sweep.h:463
@ OCCTL_PIPE_MODE_FRENET
Definition occtl_prim_sweep.h:464
@ OCCTL_PIPE_MODE_CONSTANT_AXIS
Definition occtl_prim_sweep.h:466
@ OCCTL_PIPE_MODE_CONSTANT_BINORMAL
Definition occtl_prim_sweep.h:468
struct occtl_prim_pipe_info occtl_prim_pipe_info_t
void occtl_prim_pipe_shell_info_init(occtl_prim_pipe_shell_info_t *info)
void occtl_prim_extrude_twist_info_init(occtl_prim_extrude_twist_info_t *info)
void occtl_prim_pipe_shell_linear_law_info_init(occtl_prim_pipe_shell_linear_law_info_t *info)
occtl_status_t occtl_prim_make_pipe_shell(occtl_graph_t *graph, const occtl_prim_pipe_shell_info_t *info, occtl_node_id_t *out_shape)
occtl_status_t occtl_prim_make_thick_solid(occtl_graph_t *graph, const occtl_prim_thick_solid_info_t *info, occtl_node_id_t *out_solid)
void occtl_prim_twist_extrusion_info_init(occtl_prim_twist_extrusion_info_t *info)
OCCT-Light: surface geometry via graph + rep_id.
OCCT-Light: topology module public API.
enum occtl_offset_join_type occtl_offset_join_type_t
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_geom.h:111
Definition occtl_geom.h:128
Definition occtl_geom.h:98
Definition occtl_topo_types.h:50
Definition occtl_prim_sweep.h:195
double height
Definition occtl_prim_sweep.h:200
int32_t ruled
Definition occtl_prim_sweep.h:204
const void * p_next
Definition occtl_prim_sweep.h:197
occtl_axis1_placement_t axis
Definition occtl_prim_sweep.h:199
uint32_t struct_version
Definition occtl_prim_sweep.h:196
double pres3d
Definition occtl_prim_sweep.h:205
int32_t section_count
Definition occtl_prim_sweep.h:202
double angle
Definition occtl_prim_sweep.h:201
int32_t make_solid
Definition occtl_prim_sweep.h:203
occtl_node_id_t profile_wire
Definition occtl_prim_sweep.h:198
Definition occtl_prim_sweep.h:405
size_t section_count
Definition occtl_prim_sweep.h:409
const void * p_next
Definition occtl_prim_sweep.h:407
int32_t is_solid
Definition occtl_prim_sweep.h:410
uint32_t struct_version
Definition occtl_prim_sweep.h:406
double pres3d
Definition occtl_prim_sweep.h:412
int32_t ruled
Definition occtl_prim_sweep.h:411
const occtl_node_id_t * sections
Definition occtl_prim_sweep.h:408
Definition occtl_prim_sweep.h:790
int32_t self_intersection
Definition occtl_prim_sweep.h:800
occtl_offset_join_type_t join
Definition occtl_prim_sweep.h:797
int32_t intersection
Definition occtl_prim_sweep.h:799
uint32_t struct_version
Definition occtl_prim_sweep.h:791
occtl_node_id_t shape
Definition occtl_prim_sweep.h:793
int32_t remove_internal_edges
Definition occtl_prim_sweep.h:802
double offset
Definition occtl_prim_sweep.h:794
double tolerance
Definition occtl_prim_sweep.h:795
const void * p_next
Definition occtl_prim_sweep.h:792
occtl_prim_offset_mode_t mode
Definition occtl_prim_sweep.h:796
Definition occtl_prim_sweep.h:341
const void * p_next
Definition occtl_prim_sweep.h:343
occtl_node_id_t profile
Definition occtl_prim_sweep.h:344
occtl_node_id_t spine_wire
Definition occtl_prim_sweep.h:345
uint32_t struct_version
Definition occtl_prim_sweep.h:342
Definition occtl_prim_sweep.h:497
int32_t with_contact
Definition occtl_prim_sweep.h:507
occtl_prim_pipe_mode_t mode
Definition occtl_prim_sweep.h:503
size_t profile_count
Definition occtl_prim_sweep.h:502
occtl_axis2_placement_t mode_axis
Definition occtl_prim_sweep.h:504
int32_t with_correction
Definition occtl_prim_sweep.h:508
uint32_t struct_version
Definition occtl_prim_sweep.h:498
int32_t make_solid
Definition occtl_prim_sweep.h:509
occtl_prim_pipe_transition_t transition
Definition occtl_prim_sweep.h:506
occtl_direction3_t mode_binormal
Definition occtl_prim_sweep.h:505
occtl_node_id_t spine_wire
Definition occtl_prim_sweep.h:500
const occtl_node_id_t * profiles
Definition occtl_prim_sweep.h:501
const void * p_next
Definition occtl_prim_sweep.h:499
Definition occtl_prim_sweep.h:682
int32_t make_solid
Definition occtl_prim_sweep.h:697
occtl_node_id_t spine_wire
Definition occtl_prim_sweep.h:685
const void * p_next
Definition occtl_prim_sweep.h:684
const double * parameters
Definition occtl_prim_sweep.h:688
int32_t with_contact
Definition occtl_prim_sweep.h:695
occtl_prim_pipe_mode_t mode
Definition occtl_prim_sweep.h:691
const double * scales
Definition occtl_prim_sweep.h:689
size_t sample_count
Definition occtl_prim_sweep.h:690
occtl_axis2_placement_t mode_axis
Definition occtl_prim_sweep.h:692
occtl_direction3_t mode_binormal
Definition occtl_prim_sweep.h:693
occtl_node_id_t profile
Definition occtl_prim_sweep.h:686
uint32_t struct_version
Definition occtl_prim_sweep.h:683
int32_t with_correction
Definition occtl_prim_sweep.h:696
occtl_prim_pipe_transition_t transition
Definition occtl_prim_sweep.h:694
Definition occtl_prim_sweep.h:585
double scale_last
Definition occtl_prim_sweep.h:591
uint32_t struct_version
Definition occtl_prim_sweep.h:586
occtl_node_id_t spine_wire
Definition occtl_prim_sweep.h:588
occtl_node_id_t profile
Definition occtl_prim_sweep.h:589
double scale_first
Definition occtl_prim_sweep.h:590
int32_t make_solid
Definition occtl_prim_sweep.h:598
int32_t with_contact
Definition occtl_prim_sweep.h:596
occtl_prim_pipe_transition_t transition
Definition occtl_prim_sweep.h:595
const void * p_next
Definition occtl_prim_sweep.h:587
occtl_axis2_placement_t mode_axis
Definition occtl_prim_sweep.h:593
occtl_direction3_t mode_binormal
Definition occtl_prim_sweep.h:594
int32_t with_correction
Definition occtl_prim_sweep.h:597
occtl_prim_pipe_mode_t mode
Definition occtl_prim_sweep.h:592
Definition occtl_prim_sweep.h:46
occtl_node_id_t profile
Definition occtl_prim_sweep.h:49
occtl_vector3_t direction
Definition occtl_prim_sweep.h:50
uint32_t struct_version
Definition occtl_prim_sweep.h:47
const void * p_next
Definition occtl_prim_sweep.h:48
int32_t canonize
Definition occtl_prim_sweep.h:52
int32_t copy
Definition occtl_prim_sweep.h:51
Definition occtl_prim_sweep.h:273
const void * p_next
Definition occtl_prim_sweep.h:275
uint32_t struct_version
Definition occtl_prim_sweep.h:274
double angle
Definition occtl_prim_sweep.h:278
occtl_axis1_placement_t axis
Definition occtl_prim_sweep.h:277
occtl_node_id_t profile
Definition occtl_prim_sweep.h:276
int32_t copy
Definition occtl_prim_sweep.h:279
Definition occtl_prim_sweep.h:867
const void * p_next
Definition occtl_prim_sweep.h:869
occtl_node_id_t solid
Definition occtl_prim_sweep.h:870
double offset
Definition occtl_prim_sweep.h:874
int32_t intersection
Definition occtl_prim_sweep.h:878
occtl_prim_offset_mode_t mode
Definition occtl_prim_sweep.h:876
int32_t self_intersection
Definition occtl_prim_sweep.h:879
int32_t remove_internal_edges
Definition occtl_prim_sweep.h:880
size_t closing_face_count
Definition occtl_prim_sweep.h:873
const occtl_node_id_t * closing_faces
Definition occtl_prim_sweep.h:872
double tolerance
Definition occtl_prim_sweep.h:875
occtl_offset_join_type_t join
Definition occtl_prim_sweep.h:877
uint32_t struct_version
Definition occtl_prim_sweep.h:868
Definition occtl_prim_sweep.h:113
const void * p_next
Definition occtl_prim_sweep.h:115
int32_t ruled
Definition occtl_prim_sweep.h:122
double pres3d
Definition occtl_prim_sweep.h:123
int32_t make_solid
Definition occtl_prim_sweep.h:121
occtl_node_id_t profile_wire
Definition occtl_prim_sweep.h:116
double height
Definition occtl_prim_sweep.h:118
uint32_t struct_version
Definition occtl_prim_sweep.h:114
occtl_axis1_placement_t axis
Definition occtl_prim_sweep.h:117
int32_t section_count
Definition occtl_prim_sweep.h:120
double angle
Definition occtl_prim_sweep.h:119
Definition occtl_geom.h:84