OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
occtl_prim_solid.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_SOLID_H
22#define OCCTL_PRIM_SOLID_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_BOX_INFO_VERSION_1 1u
36
56
57#define OCCTL_PRIM_BOX_INFO_INIT \
58 {OCCTL_PRIM_BOX_INFO_VERSION_1, \
59 NULL, \
60 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
61 0.0, \
62 0.0, \
63 0.0}
64
77
104 const occtl_prim_box_info_t* info,
105 occtl_node_id_t* out_solid);
106
107#define OCCTL_PRIM_SPHERE_INFO_VERSION_1 1u
108
127
128#define OCCTL_PRIM_SPHERE_INFO_INIT \
129 {OCCTL_PRIM_SPHERE_INFO_VERSION_1, \
130 NULL, \
131 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
132 0.0, \
133 -OCCTL_PI_OVER_TWO, \
134 OCCTL_PI_OVER_TWO, \
135 OCCTL_TWO_PI}
136
149
171 const occtl_prim_sphere_info_t* info,
172 occtl_node_id_t* out_solid);
173
174#define OCCTL_PRIM_CYLINDER_INFO_VERSION_1 1u
175
192
193#define OCCTL_PRIM_CYLINDER_INFO_INIT \
194 {OCCTL_PRIM_CYLINDER_INFO_VERSION_1, \
195 NULL, \
196 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
197 0.0, \
198 0.0, \
199 OCCTL_TWO_PI}
200
213
236 const occtl_prim_cylinder_info_t* info,
237 occtl_node_id_t* out_solid);
238
239#define OCCTL_PRIM_CONE_INFO_VERSION_1 1u
240
260
261#define OCCTL_PRIM_CONE_INFO_INIT \
262 {OCCTL_PRIM_CONE_INFO_VERSION_1, \
263 NULL, \
264 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
265 0.0, \
266 0.0, \
267 0.0, \
268 OCCTL_TWO_PI}
269
282
306 const occtl_prim_cone_info_t* info,
307 occtl_node_id_t* out_solid);
308
309#define OCCTL_PRIM_TORUS_INFO_VERSION_1 1u
310
330
331#define OCCTL_PRIM_TORUS_INFO_INIT \
332 {OCCTL_PRIM_TORUS_INFO_VERSION_1, \
333 NULL, \
334 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
335 0.0, \
336 0.0, \
337 0.0, \
338 OCCTL_TWO_PI, \
339 OCCTL_TWO_PI}
340
353
377 const occtl_prim_torus_info_t* info,
378 occtl_node_id_t* out_solid);
379
380#define OCCTL_PRIM_WEDGE_INFO_VERSION_1 1u
381
399
400#define OCCTL_PRIM_WEDGE_INFO_INIT \
401 {OCCTL_PRIM_WEDGE_INFO_VERSION_1, \
402 NULL, \
403 {{0.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}}, \
404 0.0, \
405 0.0, \
406 0.0, \
407 0.0}
408
421
445 const occtl_prim_wedge_info_t* info,
446 occtl_node_id_t* out_solid);
447
448#define OCCTL_PRIM_HALFSPACE_INFO_VERSION_1 1u
449
465
466#define OCCTL_PRIM_HALFSPACE_INFO_INIT \
467 {OCCTL_PRIM_HALFSPACE_INFO_VERSION_1, NULL, OCCTL_NODE_ID_INVALID, {0.0, 0.0, 0.0}}
468
481
506OCCTL_API occtl_status_t OCCTL_CALL
508 const occtl_prim_halfspace_info_t* info,
509 occtl_node_id_t* out_solid);
510
511#ifdef __cplusplus
512}
513#endif
514
515#endif /* OCCTL_PRIM_SOLID_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.
struct occtl_prim_cylinder_info occtl_prim_cylinder_info_t
void occtl_prim_halfspace_info_init(occtl_prim_halfspace_info_t *info)
occtl_status_t occtl_prim_make_wedge(occtl_graph_t *graph, const occtl_prim_wedge_info_t *info, occtl_node_id_t *out_solid)
struct occtl_prim_wedge_info occtl_prim_wedge_info_t
occtl_status_t occtl_prim_make_cone(occtl_graph_t *graph, const occtl_prim_cone_info_t *info, occtl_node_id_t *out_solid)
struct occtl_prim_sphere_info occtl_prim_sphere_info_t
struct occtl_prim_torus_info occtl_prim_torus_info_t
void occtl_prim_cylinder_info_init(occtl_prim_cylinder_info_t *info)
void occtl_prim_cone_info_init(occtl_prim_cone_info_t *info)
occtl_status_t occtl_prim_make_torus(occtl_graph_t *graph, const occtl_prim_torus_info_t *info, occtl_node_id_t *out_solid)
void occtl_prim_wedge_info_init(occtl_prim_wedge_info_t *info)
struct occtl_prim_halfspace_info occtl_prim_halfspace_info_t
occtl_status_t occtl_prim_make_cylinder(occtl_graph_t *graph, const occtl_prim_cylinder_info_t *info, occtl_node_id_t *out_solid)
void occtl_prim_box_info_init(occtl_prim_box_info_t *info)
void occtl_prim_torus_info_init(occtl_prim_torus_info_t *info)
struct occtl_prim_box_info occtl_prim_box_info_t
struct occtl_prim_cone_info occtl_prim_cone_info_t
occtl_status_t occtl_prim_make_sphere(occtl_graph_t *graph, const occtl_prim_sphere_info_t *info, occtl_node_id_t *out_solid)
occtl_status_t occtl_prim_make_box(occtl_graph_t *graph, const occtl_prim_box_info_t *info, occtl_node_id_t *out_solid)
occtl_status_t occtl_prim_make_halfspace(occtl_graph_t *graph, const occtl_prim_halfspace_info_t *info, occtl_node_id_t *out_solid)
void occtl_prim_sphere_info_init(occtl_prim_sphere_info_t *info)
OCCT-Light: surface geometry via graph + rep_id.
OCCT-Light: topology module public API.
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_geom.h:128
Definition occtl_topo_types.h:50
Definition occtl_geom.h:76
Definition occtl_prim_solid.h:48
double dz
Definition occtl_prim_solid.h:54
occtl_axis2_placement_t placement
Definition occtl_prim_solid.h:51
uint32_t struct_version
Definition occtl_prim_solid.h:49
const void * p_next
Definition occtl_prim_solid.h:50
double dx
Definition occtl_prim_solid.h:52
double dy
Definition occtl_prim_solid.h:53
Definition occtl_prim_solid.h:251
double height
Definition occtl_prim_solid.h:257
uint32_t struct_version
Definition occtl_prim_solid.h:252
double angle
Definition occtl_prim_solid.h:258
const void * p_next
Definition occtl_prim_solid.h:253
double r2
Definition occtl_prim_solid.h:256
occtl_axis2_placement_t placement
Definition occtl_prim_solid.h:254
double r1
Definition occtl_prim_solid.h:255
Definition occtl_prim_solid.h:184
occtl_axis2_placement_t placement
Definition occtl_prim_solid.h:187
double height
Definition occtl_prim_solid.h:189
double angle
Definition occtl_prim_solid.h:190
uint32_t struct_version
Definition occtl_prim_solid.h:185
double radius
Definition occtl_prim_solid.h:188
const void * p_next
Definition occtl_prim_solid.h:186
Definition occtl_prim_solid.h:459
uint32_t struct_version
Definition occtl_prim_solid.h:460
occtl_node_id_t face
Definition occtl_prim_solid.h:462
occtl_point3_t reference_point
Definition occtl_prim_solid.h:463
const void * p_next
Definition occtl_prim_solid.h:461
Definition occtl_prim_solid.h:118
double radius
Definition occtl_prim_solid.h:122
const void * p_next
Definition occtl_prim_solid.h:120
double angle2
Definition occtl_prim_solid.h:124
uint32_t struct_version
Definition occtl_prim_solid.h:119
double angle1
Definition occtl_prim_solid.h:123
double angle
Definition occtl_prim_solid.h:125
occtl_axis2_placement_t placement
Definition occtl_prim_solid.h:121
Definition occtl_prim_solid.h:320
double angle
Definition occtl_prim_solid.h:328
double r1
Definition occtl_prim_solid.h:324
double r2
Definition occtl_prim_solid.h:325
const void * p_next
Definition occtl_prim_solid.h:322
double angle1
Definition occtl_prim_solid.h:326
occtl_axis2_placement_t placement
Definition occtl_prim_solid.h:323
uint32_t struct_version
Definition occtl_prim_solid.h:321
double angle2
Definition occtl_prim_solid.h:327
Definition occtl_prim_solid.h:390
double dy
Definition occtl_prim_solid.h:395
double ltx
Definition occtl_prim_solid.h:397
uint32_t struct_version
Definition occtl_prim_solid.h:391
double dz
Definition occtl_prim_solid.h:396
double dx
Definition occtl_prim_solid.h:394
occtl_axis2_placement_t placement
Definition occtl_prim_solid.h:393
const void * p_next
Definition occtl_prim_solid.h:392