OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
occtl_geom.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
34#ifndef OCCTL_GEOM_H
35#define OCCTL_GEOM_H
36
37#include <stddef.h>
38#include <stdint.h>
39
40#include "occtl_core.h"
41
42#ifdef __cplusplus
43extern "C"
44{
45#endif
46
48typedef struct
49{
50 double x;
51 double y;
53
55typedef struct
56{
57 double x;
58 double y;
60
68typedef struct
69{
70 double x;
71 double y;
73
75typedef struct
76{
77 double x;
78 double y;
79 double z;
81
83typedef struct
84{
85 double x;
86 double y;
87 double z;
89
97typedef struct
98{
99 double x;
100 double y;
101 double z;
103
115
134
152
170typedef struct
171{
172 double m[12];
174
188
202
216
231
245
259
273
287
300
318 occtl_vector3_t* out_result);
319
339 double* out_radians);
340
354
368
382
395
409
426
439
457 occtl_vector2_t* out_result);
458
476 occtl_direction3_t* out_direction);
477
491
509
526
539
564 occtl_direction3_t* out_direction);
565
583 occtl_direction2_t* out_direction);
584
598
611
624
648 double angle,
649 occtl_transform_t* out_transform);
650
669 double s,
670 occtl_transform_t* out_transform);
671
688 occtl_transform_t second);
689
707 occtl_transform_t* out_transform);
708
724
748 occtl_transform_t* out_transform);
749
773 occtl_transform_t* out_transform);
774
786
804
812
824
837
850
861
869
878
890
900
909
919
930
941
954
967
968#ifdef __cplusplus
969} /* extern "C" */
970#endif
971
972#endif /* OCCTL_GEOM_H */
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
occtl_transform_t occtl_transform_compose(occtl_transform_t first, occtl_transform_t second)
occtl_direction3_t occtl_direction3_reversed(occtl_direction3_t d)
occtl_status_t occtl_transform_from_axis2(occtl_axis2_placement_t frame, occtl_transform_t *out_transform)
double occtl_direction3_dot(occtl_direction3_t a, occtl_direction3_t b)
occtl_status_t occtl_transform_inverted(occtl_transform_t t, occtl_transform_t *out_transform)
double occtl_vector3_magnitude(occtl_vector3_t v)
double occtl_point3_distance(occtl_point3_t a, occtl_point3_t b)
occtl_transform_t occtl_transform_identity(void)
double occtl_vector2_cross(occtl_vector2_t a, occtl_vector2_t b)
occtl_vector3_t occtl_transform_apply_vector3(occtl_transform_t t, occtl_vector3_t v)
occtl_point3_t occtl_point3_midpoint(occtl_point3_t a, occtl_point3_t b)
occtl_status_t occtl_vector3_normalized(occtl_vector3_t v, occtl_vector3_t *out_result)
occtl_transform_t occtl_transform_translation(occtl_vector3_t v)
occtl_status_t occtl_transform_rotation(occtl_axis1_placement_t axis, double angle, occtl_transform_t *out_transform)
occtl_vector3_t occtl_vector3_add(occtl_vector3_t a, occtl_vector3_t b)
double occtl_vector2_dot(occtl_vector2_t a, occtl_vector2_t b)
occtl_point3_t occtl_transform_apply_point3(occtl_transform_t t, occtl_point3_t p)
occtl_point2_t occtl_point2_midpoint(occtl_point2_t a, occtl_point2_t b)
occtl_vector3_t occtl_vector3_cross(occtl_vector3_t a, occtl_vector3_t b)
occtl_status_t occtl_vector3_angle(occtl_vector3_t a, occtl_vector3_t b, double *out_radians)
enum occtl_geom_continuity occtl_geom_continuity_t
occtl_vector3_t occtl_vector3_scaled(occtl_vector3_t v, double s)
occtl_status_t occtl_direction2_from_vector(occtl_vector2_t v, occtl_direction2_t *out_direction)
occtl_status_t occtl_direction3_from_vector(occtl_vector3_t v, occtl_direction3_t *out_direction)
occtl_vector3_t occtl_vector3_sub(occtl_vector3_t a, occtl_vector3_t b)
occtl_point3_t occtl_point3_translate(occtl_point3_t p, occtl_vector3_t v)
double occtl_vector2_magnitude(occtl_vector2_t v)
double occtl_point2_distance(occtl_point2_t a, occtl_point2_t b)
double occtl_vector3_dot(occtl_vector3_t a, occtl_vector3_t b)
occtl_vector3_t occtl_vector3_reversed(occtl_vector3_t v)
occtl_axis1_placement_t occtl_geom_line_t
Definition occtl_geom.h:811
double occtl_direction3_angle(occtl_direction3_t a, occtl_direction3_t b)
occtl_status_t occtl_direction3_transform(occtl_direction3_t d, occtl_transform_t t, occtl_direction3_t *out_direction)
double occtl_direction2_angle(occtl_direction2_t a, occtl_direction2_t b)
occtl_status_t occtl_transform_from_axis3(occtl_axis3_placement_t frame, occtl_transform_t *out_transform)
occtl_status_t occtl_transform_scale(occtl_point3_t center, double s, occtl_transform_t *out_transform)
occtl_status_t occtl_vector2_normalized(occtl_vector2_t v, occtl_vector2_t *out_result)
occtl_geom_continuity
Definition occtl_geom.h:794
@ OCCTL_GEOM_CONTINUITY_CN
Definition occtl_geom.h:801
@ OCCTL_GEOM_CONTINUITY_C2
Definition occtl_geom.h:799
@ OCCTL_GEOM_CONTINUITY_C1
Definition occtl_geom.h:797
@ OCCTL_GEOM_CONTINUITY_C0
Definition occtl_geom.h:795
@ OCCTL_GEOM_CONTINUITY_G1
Definition occtl_geom.h:796
@ OCCTL_GEOM_CONTINUITY_C3
Definition occtl_geom.h:800
@ OCCTL_GEOM_CONTINUITY_G2
Definition occtl_geom.h:798
occtl_vector3_t occtl_direction3_cross(occtl_direction3_t a, occtl_direction3_t b)
Definition occtl_geom.h:111
occtl_point3_t location
Definition occtl_geom.h:112
occtl_direction3_t direction
Definition occtl_geom.h:113
Definition occtl_geom.h:782
occtl_point2_t location
Definition occtl_geom.h:783
occtl_direction2_t x_dir
Definition occtl_geom.h:784
Definition occtl_geom.h:128
occtl_direction3_t x_dir
Definition occtl_geom.h:130
occtl_point3_t location
Definition occtl_geom.h:129
occtl_direction3_t x_dir_ref
Definition occtl_geom.h:132
Definition occtl_geom.h:146
occtl_direction3_t x_dir
Definition occtl_geom.h:148
occtl_direction3_t z_dir
Definition occtl_geom.h:150
occtl_direction3_t y_dir
Definition occtl_geom.h:149
occtl_point3_t location
Definition occtl_geom.h:147
Definition occtl_geom.h:69
double y
Definition occtl_geom.h:71
double x
Definition occtl_geom.h:70
Definition occtl_geom.h:98
double z
Definition occtl_geom.h:101
double x
Definition occtl_geom.h:99
double y
Definition occtl_geom.h:100
Definition occtl_geom.h:874
double radius
Definition occtl_geom.h:876
occtl_axis2_placement2d_t position
Definition occtl_geom.h:875
Definition occtl_geom.h:885
double major_radius
Definition occtl_geom.h:887
double minor_radius
Definition occtl_geom.h:888
occtl_axis2_placement2d_t position
Definition occtl_geom.h:886
Definition occtl_geom.h:895
double major_radius
Definition occtl_geom.h:897
double minor_radius
Definition occtl_geom.h:898
occtl_axis2_placement2d_t position
Definition occtl_geom.h:896
Definition occtl_geom.h:866
occtl_axis2_placement2d_t position
Definition occtl_geom.h:867
Definition occtl_geom.h:905
occtl_axis2_placement2d_t position
Definition occtl_geom.h:906
double focal_length
Definition occtl_geom.h:907
Definition occtl_geom.h:820
double radius
Definition occtl_geom.h:822
occtl_axis2_placement_t position
Definition occtl_geom.h:821
Definition occtl_geom.h:949
double semi_angle
Definition occtl_geom.h:951
occtl_axis3_placement_t position
Definition occtl_geom.h:950
double radius
Definition occtl_geom.h:952
Definition occtl_geom.h:926
occtl_axis3_placement_t position
Definition occtl_geom.h:927
double radius
Definition occtl_geom.h:928
Definition occtl_geom.h:832
double minor_radius
Definition occtl_geom.h:835
occtl_axis2_placement_t position
Definition occtl_geom.h:833
double major_radius
Definition occtl_geom.h:834
Definition occtl_geom.h:845
double major_radius
Definition occtl_geom.h:847
occtl_axis2_placement_t position
Definition occtl_geom.h:846
double minor_radius
Definition occtl_geom.h:848
Definition occtl_geom.h:857
double focal_length
Definition occtl_geom.h:859
occtl_axis2_placement_t position
Definition occtl_geom.h:858
Definition occtl_geom.h:916
occtl_axis3_placement_t position
Definition occtl_geom.h:917
Definition occtl_geom.h:937
occtl_axis3_placement_t position
Definition occtl_geom.h:938
double radius
Definition occtl_geom.h:939
Definition occtl_geom.h:962
double minor_radius
Definition occtl_geom.h:965
occtl_axis3_placement_t position
Definition occtl_geom.h:963
double major_radius
Definition occtl_geom.h:964
Definition occtl_geom.h:49
double y
Definition occtl_geom.h:51
double x
Definition occtl_geom.h:50
Definition occtl_geom.h:76
double z
Definition occtl_geom.h:79
double y
Definition occtl_geom.h:78
double x
Definition occtl_geom.h:77
Definition occtl_geom.h:171
Definition occtl_geom.h:56
double x
Definition occtl_geom.h:57
double y
Definition occtl_geom.h:58
Definition occtl_geom.h:84
double y
Definition occtl_geom.h:86
double z
Definition occtl_geom.h:87
double x
Definition occtl_geom.h:85