OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
geom.hpp
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
24#ifndef OCCTL_HPP_GEOM_HPP
25#define OCCTL_HPP_GEOM_HPP
26
27#include <occtl/occtl_geom.h>
28
29#include <occtl-hpp/core.hpp>
30
31#include <cmath>
32
33namespace occtl
34{
35
37struct Point2
38{
40 Point2() noexcept
41 : myData{0.0, 0.0}
42 {
43 }
44
46 Point2(const double theX, const double theY) noexcept
47 : myData{theX, theY}
48 {
49 }
50
52 explicit Point2(const occtl_point2_t& theC) noexcept
53 : myData(theC)
54 {
55 }
56
58 const occtl_point2_t& c_type() const noexcept { return myData; }
59
60 double x() const noexcept { return myData.x; }
61
62 double y() const noexcept { return myData.y; }
63
65 double distance_to(const Point2& theOther) const noexcept
66 {
67 return ::occtl_point2_distance(myData, theOther.myData);
68 }
69
71 Point2 midpoint(const Point2& theOther) const noexcept
72 {
73 return Point2(::occtl_point2_midpoint(myData, theOther.myData));
74 }
75
76private:
77 occtl_point2_t myData;
78};
79
81struct Point3
82{
84 Point3() noexcept
85 : myData{0.0, 0.0, 0.0}
86 {
87 }
88
90 Point3(const double theX, const double theY, const double theZ) noexcept
91 : myData{theX, theY, theZ}
92 {
93 }
94
96 explicit Point3(const occtl_point3_t& theC) noexcept
97 : myData(theC)
98 {
99 }
100
102 const occtl_point3_t& c_type() const noexcept { return myData; }
103
104 double x() const noexcept { return myData.x; }
105
106 double y() const noexcept { return myData.y; }
107
108 double z() const noexcept { return myData.z; }
109
111 double distance_to(const Point3& theOther) const noexcept
112 {
113 return ::occtl_point3_distance(myData, theOther.myData);
114 }
115
117 Point3 midpoint(const Point3& theOther) const noexcept
118 {
119 return Point3(::occtl_point3_midpoint(myData, theOther.myData));
120 }
121
122private:
123 occtl_point3_t myData;
124};
125
128{
130 Vector2() noexcept
131 : myData{0.0, 0.0}
132 {
133 }
134
136 Vector2(const double theX, const double theY) noexcept
137 : myData{theX, theY}
138 {
139 }
140
142 explicit Vector2(const occtl_vector2_t& theC) noexcept
143 : myData(theC)
144 {
145 }
146
148 const occtl_vector2_t& c_type() const noexcept { return myData; }
149
150 double x() const noexcept { return myData.x; }
151
152 double y() const noexcept { return myData.y; }
153
155 double dot(const Vector2& theOther) const noexcept
156 {
157 return ::occtl_vector2_dot(myData, theOther.myData);
158 }
159
161 double cross(const Vector2& theOther) const noexcept
162 {
163 return ::occtl_vector2_cross(myData, theOther.myData);
164 }
165
167 double magnitude() const noexcept { return ::occtl_vector2_magnitude(myData); }
168
172 {
173 occtl_vector2_t aResult{};
174 check(::occtl_vector2_normalized(myData, &aResult));
175 return Vector2(aResult);
176 }
177
178private:
179 occtl_vector2_t myData;
180};
181
184{
186 Vector3() noexcept
187 : myData{0.0, 0.0, 0.0}
188 {
189 }
190
192 Vector3(const double theX, const double theY, const double theZ) noexcept
193 : myData{theX, theY, theZ}
194 {
195 }
196
198 explicit Vector3(const occtl_vector3_t& theC) noexcept
199 : myData(theC)
200 {
201 }
202
204 const occtl_vector3_t& c_type() const noexcept { return myData; }
205
206 double x() const noexcept { return myData.x; }
207
208 double y() const noexcept { return myData.y; }
209
210 double z() const noexcept { return myData.z; }
211
213 double dot(const Vector3& theOther) const noexcept
214 {
215 return ::occtl_vector3_dot(myData, theOther.myData);
216 }
217
219 Vector3 cross(const Vector3& theOther) const noexcept
220 {
221 return Vector3(::occtl_vector3_cross(myData, theOther.myData));
222 }
223
225 double magnitude() const noexcept { return ::occtl_vector3_magnitude(myData); }
226
230 {
231 occtl_vector3_t aResult{};
232 check(::occtl_vector3_normalized(myData, &aResult));
233 return Vector3(aResult);
234 }
235
237 Vector3 operator+(const Vector3& theOther) const noexcept
238 {
239 return Vector3(::occtl_vector3_add(myData, theOther.myData));
240 }
241
243 Vector3 operator-(const Vector3& theOther) const noexcept
244 {
245 return Vector3(::occtl_vector3_sub(myData, theOther.myData));
246 }
247
249 Vector3 operator*(const double theS) const noexcept
250 {
251 return Vector3(::occtl_vector3_scaled(myData, theS));
252 }
253
255 Vector3 reversed() const noexcept { return Vector3(::occtl_vector3_reversed(myData)); }
256
259 double angle(const Vector3& theOther) const
260 {
261 double aRad = 0.0;
262 check(::occtl_vector3_angle(myData, theOther.myData, &aRad));
263 return aRad;
264 }
265
266private:
267 occtl_vector3_t myData;
268};
269
275{
277 explicit Direction2(const occtl_direction2_t& theC) noexcept
278 : myData(theC)
279 {
280 }
281
284 static Direction2 from_vector(const Vector2& theV)
285 {
286 occtl_direction2_t aResult{};
288 return Direction2(aResult);
289 }
290
292 const occtl_direction2_t& c_type() const noexcept { return myData; }
293
294 double x() const noexcept { return myData.x; }
295
296 double y() const noexcept { return myData.y; }
297
299 double angle(const Direction2& theOther) const noexcept
300 {
301 return ::occtl_direction2_angle(myData, theOther.myData);
302 }
303
304private:
305 occtl_direction2_t myData;
306};
307
313{
315 explicit Direction3(const occtl_direction3_t& theC) noexcept
316 : myData(theC)
317 {
318 }
319
322 static Direction3 from_vector(const Vector3& theV)
323 {
324 occtl_direction3_t aResult{};
326 return Direction3(aResult);
327 }
328
330 const occtl_direction3_t& c_type() const noexcept { return myData; }
331
332 double x() const noexcept { return myData.x; }
333
334 double y() const noexcept { return myData.y; }
335
336 double z() const noexcept { return myData.z; }
337
339 double dot(const Direction3& theOther) const noexcept
340 {
341 return ::occtl_direction3_dot(myData, theOther.myData);
342 }
343
345 Vector3 cross(const Direction3& theOther) const noexcept
346 {
347 return Vector3(::occtl_direction3_cross(myData, theOther.myData));
348 }
349
351 double angle(const Direction3& theOther) const noexcept
352 {
353 return ::occtl_direction3_angle(myData, theOther.myData);
354 }
355
357 Direction3 reversed() const noexcept { return Direction3(::occtl_direction3_reversed(myData)); }
358
359private:
360 occtl_direction3_t myData;
361};
362
365{
367 explicit Axis1Placement(const occtl_axis1_placement_t& theC) noexcept
368 : myData(theC)
369 {
370 }
371
373 Axis1Placement(const Point3& theLocation, const Direction3& theDir) noexcept
374 : myData{theLocation.c_type(), theDir.c_type()}
375 {
376 }
377
379 const occtl_axis1_placement_t& c_type() const noexcept { return myData; }
380
381private:
383};
384
388{
390 explicit Axis2Placement(const occtl_axis2_placement_t& theC) noexcept
391 : myData(theC)
392 {
393 }
394
398 Axis2Placement(const Point3& theLocation,
399 const Direction3& theXDir,
400 const Direction3& theXDirRef) noexcept
401 : myData{theLocation.c_type(), theXDir.c_type(), theXDirRef.c_type()}
402 {
403 }
404
406 const occtl_axis2_placement_t& c_type() const noexcept { return myData; }
407
408private:
410};
411
415{
417 explicit Axis3Placement(const occtl_axis3_placement_t& theC) noexcept
418 : myData(theC)
419 {
420 }
421
423 Axis3Placement(const Point3& theLocation,
424 const Direction3& theXDir,
425 const Direction3& theYDir,
426 const Direction3& theZDir) noexcept
427 : myData{theLocation.c_type(), theXDir.c_type(), theYDir.c_type(), theZDir.c_type()}
428 {
429 }
430
432 const occtl_axis3_placement_t& c_type() const noexcept { return myData; }
433
434private:
436};
437
442{
444 explicit Transform(const occtl_transform_t& theC) noexcept
445 : myData(theC)
446 {
447 }
448
451
453 static Transform translation(const Vector3& theV) noexcept
454 {
455 return Transform(::occtl_transform_translation(theV.c_type()));
456 }
457
460 static Transform rotation(const Axis1Placement& theAxis, const double theAngle)
461 {
462 occtl_transform_t aResult{};
463 check(::occtl_transform_rotation(theAxis.c_type(), theAngle, &aResult));
464 return Transform(aResult);
465 }
466
469 static Transform scale(const Point3& theCenter, const double theFactor)
470 {
471 occtl_transform_t aResult{};
472 check(::occtl_transform_scale(theCenter.c_type(), theFactor, &aResult));
473 return Transform(aResult);
474 }
475
478 static Transform from_axis2(const Axis2Placement& theFrame)
479 {
480 occtl_transform_t aResult{};
481 check(::occtl_transform_from_axis2(theFrame.c_type(), &aResult));
482 return Transform(aResult);
483 }
484
487 static Transform from_axis3(const Axis3Placement& theFrame)
488 {
489 occtl_transform_t aResult{};
490 check(::occtl_transform_from_axis3(theFrame.c_type(), &aResult));
491 return Transform(aResult);
492 }
493
495 const occtl_transform_t& c_type() const noexcept { return myData; }
496
498 Point3 apply(const Point3& theP) const noexcept
499 {
500 return Point3(::occtl_transform_apply_point3(myData, theP.c_type()));
501 }
502
504 Vector3 apply(const Vector3& theV) const noexcept
505 {
506 return Vector3(::occtl_transform_apply_vector3(myData, theV.c_type()));
507 }
508
512 Direction3 apply(const Direction3& theD) const
513 {
514 occtl_direction3_t aResult{};
515 check(::occtl_direction3_transform(theD.c_type(), myData, &aResult));
516 return Direction3(aResult);
517 }
518
521 Transform compose(const Transform& theSecond) const noexcept
522 {
523 return Transform(::occtl_transform_compose(myData, theSecond.myData));
524 }
525
529 {
530 occtl_transform_t aResult{};
531 check(::occtl_transform_inverted(myData, &aResult));
532 return Transform(aResult);
533 }
534
535private:
536 occtl_transform_t myData;
537};
538
539} // namespace occtl
540
541#endif // OCCTL_HPP_GEOM_HPP
C++ veneer for the core module.
void check(const ::occtl_status_t theStatus)
Throw on non-OK; otherwise a no-op.
Definition core.hpp:85
OCCT-Light: geometry primitive types and math utilities.
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)
occtl_status_t occtl_transform_inverted(occtl_transform_t t, occtl_transform_t *out_transform)
occtl_transform_t occtl_transform_identity(void)
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)
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)
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_vector3_t occtl_vector3_reversed(occtl_vector3_t v)
occtl_status_t occtl_direction3_transform(occtl_direction3_t d, occtl_transform_t t, occtl_direction3_t *out_direction)
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_vector3_t occtl_direction3_cross(occtl_direction3_t a, occtl_direction3_t b)
Directed line in 3D (origin + unit direction). Mirrors occtl_axis1_placement_t.
Definition geom.hpp:365
Axis1Placement(const Point3 &theLocation, const Direction3 &theDir) noexcept
Constructs from origin and direction.
Definition geom.hpp:373
Axis1Placement(const occtl_axis1_placement_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:367
const occtl_axis1_placement_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:379
Right-handed coordinate frame (origin + main direction + reference direction). Mirrors occtl_axis2_pl...
Definition geom.hpp:388
const occtl_axis2_placement_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:406
Axis2Placement(const occtl_axis2_placement_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:390
Axis2Placement(const Point3 &theLocation, const Direction3 &theXDir, const Direction3 &theXDirRef) noexcept
Constructs from origin, X direction, and an in-plane reference direction. theXDirRef must not be para...
Definition geom.hpp:398
Explicit 3-axis coordinate frame. Mirrors occtl_axis3_placement_t. No orthonormality or right-handedn...
Definition geom.hpp:415
Axis3Placement(const occtl_axis3_placement_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:417
const occtl_axis3_placement_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:432
Axis3Placement(const Point3 &theLocation, const Direction3 &theXDir, const Direction3 &theYDir, const Direction3 &theZDir) noexcept
Constructs from origin and three explicit axis directions.
Definition geom.hpp:423
2D unit-direction value type. Mirrors occtl_direction2_t.
Definition geom.hpp:275
double angle(const Direction2 &theOther) const noexcept
Angle in radians between this and theOther, in [0, π]. Never throws.
Definition geom.hpp:299
double y() const noexcept
Y component (unit-normalised).
Definition geom.hpp:296
double x() const noexcept
X component (unit-normalised).
Definition geom.hpp:294
Direction2(const occtl_direction2_t &theC) noexcept
Wraps an existing C value type (zero-cost). Caller guarantees unit norm.
Definition geom.hpp:277
const occtl_direction2_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:292
static Direction2 from_vector(const Vector2 &theV)
Builds a normalised direction from a vector.
Definition geom.hpp:284
3D unit-direction value type. Mirrors occtl_direction3_t.
Definition geom.hpp:313
Direction3 reversed() const noexcept
Returns this direction negated. Never throws.
Definition geom.hpp:357
Direction3(const occtl_direction3_t &theC) noexcept
Wraps an existing C value type (zero-cost). Caller guarantees unit norm.
Definition geom.hpp:315
double dot(const Direction3 &theOther) const noexcept
Dot product. Returns a value in [-1, 1]. Never throws.
Definition geom.hpp:339
double angle(const Direction3 &theOther) const noexcept
Angle in radians, in [0, π]. Never throws.
Definition geom.hpp:351
double z() const noexcept
Z component (unit-normalised).
Definition geom.hpp:336
const occtl_direction3_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:330
Vector3 cross(const Direction3 &theOther) const noexcept
Cross product as a free vector. Zero for parallel/anti-parallel inputs.
Definition geom.hpp:345
static Direction3 from_vector(const Vector3 &theV)
Builds a normalised direction from a vector.
Definition geom.hpp:322
double x() const noexcept
X component (unit-normalised).
Definition geom.hpp:332
double y() const noexcept
Y component (unit-normalised).
Definition geom.hpp:334
2D point value type. Mirrors occtl_point2_t with STL-flavoured access.
Definition geom.hpp:38
Point2 midpoint(const Point2 &theOther) const noexcept
Midpoint between this and another point. Never throws.
Definition geom.hpp:71
Point2() noexcept
Default-constructs the origin (0, 0).
Definition geom.hpp:40
double x() const noexcept
X coordinate.
Definition geom.hpp:60
Point2(const occtl_point2_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:52
double distance_to(const Point2 &theOther) const noexcept
Euclidean distance to another point. Never throws.
Definition geom.hpp:65
double y() const noexcept
Y coordinate.
Definition geom.hpp:62
const occtl_point2_t & c_type() const noexcept
Borrows-it view of the underlying C value type, for direct ABI calls.
Definition geom.hpp:58
Point2(const double theX, const double theY) noexcept
Constructs from explicit coordinates.
Definition geom.hpp:46
3D point value type. Mirrors occtl_point3_t with STL-flavoured access.
Definition geom.hpp:82
Point3() noexcept
Default-constructs the origin (0, 0, 0).
Definition geom.hpp:84
Point3(const double theX, const double theY, const double theZ) noexcept
Constructs from explicit coordinates.
Definition geom.hpp:90
const occtl_point3_t & c_type() const noexcept
Borrows-it view of the underlying C value type, for direct ABI calls.
Definition geom.hpp:102
double x() const noexcept
X coordinate.
Definition geom.hpp:104
double z() const noexcept
Z coordinate.
Definition geom.hpp:108
Point3(const occtl_point3_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:96
Point3 midpoint(const Point3 &theOther) const noexcept
Midpoint between this and another point. Never throws.
Definition geom.hpp:117
double distance_to(const Point3 &theOther) const noexcept
Euclidean distance to another point. Never throws.
Definition geom.hpp:111
double y() const noexcept
Y coordinate.
Definition geom.hpp:106
3-by-4 affine transform value type. Mirrors occtl_transform_t.
Definition geom.hpp:442
static Transform scale(const Point3 &theCenter, const double theFactor)
Returns a uniform-scale transform centred on theCenter.
Definition geom.hpp:469
Transform compose(const Transform &theSecond) const noexcept
Composition: returns "apply *this first, then @c theSecond". Equivalent to the matrix product theSeco...
Definition geom.hpp:521
static Transform from_axis3(const Axis3Placement &theFrame)
Returns the transform whose linear columns are the explicit axes.
Definition geom.hpp:487
Point3 apply(const Point3 &theP) const noexcept
Applies the full affine transform to a point (includes translation).
Definition geom.hpp:498
static Transform rotation(const Axis1Placement &theAxis, const double theAngle)
Returns a rotation transform around theAxis by theAngle radians.
Definition geom.hpp:460
const occtl_transform_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:495
Transform(const occtl_transform_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:444
Transform inverted() const
Returns the inverse transform.
Definition geom.hpp:528
Vector3 apply(const Vector3 &theV) const noexcept
Applies only the linear (3×3) part to a vector. No translation.
Definition geom.hpp:504
static Transform from_axis2(const Axis2Placement &theFrame)
Returns the world→frame transform for the given coordinate frame.
Definition geom.hpp:478
static Transform identity() noexcept
Returns the identity transform.
Definition geom.hpp:450
static Transform translation(const Vector3 &theV) noexcept
Returns a pure-translation transform.
Definition geom.hpp:453
Direction3 apply(const Direction3 &theD) const
Applies the linear part to a unit direction and re-normalises the result.
Definition geom.hpp:512
2D free-vector value type. Mirrors occtl_vector2_t.
Definition geom.hpp:128
double dot(const Vector2 &theOther) const noexcept
Dot product with another vector. Never throws.
Definition geom.hpp:155
double x() const noexcept
X component.
Definition geom.hpp:150
const occtl_vector2_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:148
Vector2(const double theX, const double theY) noexcept
Constructs from explicit components.
Definition geom.hpp:136
Vector2 normalized() const
Returns this vector normalised to unit length.
Definition geom.hpp:171
Vector2() noexcept
Default-constructs the zero vector.
Definition geom.hpp:130
double y() const noexcept
Y component.
Definition geom.hpp:152
double magnitude() const noexcept
Euclidean length. Never throws.
Definition geom.hpp:167
Vector2(const occtl_vector2_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:142
double cross(const Vector2 &theOther) const noexcept
Signed scalar cross product (Z-component). Never throws.
Definition geom.hpp:161
3D free-vector value type. Mirrors occtl_vector3_t.
Definition geom.hpp:184
Vector3 cross(const Vector3 &theOther) const noexcept
Cross product with another vector. Never throws.
Definition geom.hpp:219
Vector3 operator+(const Vector3 &theOther) const noexcept
Component-wise sum.
Definition geom.hpp:237
Vector3 operator-(const Vector3 &theOther) const noexcept
Component-wise difference.
Definition geom.hpp:243
Vector3(const double theX, const double theY, const double theZ) noexcept
Constructs from explicit components.
Definition geom.hpp:192
double angle(const Vector3 &theOther) const
Angle in radians between this and theOther, in [0, π].
Definition geom.hpp:259
Vector3(const occtl_vector3_t &theC) noexcept
Wraps an existing C value type (zero-cost).
Definition geom.hpp:198
Vector3() noexcept
Default-constructs the zero vector.
Definition geom.hpp:186
const occtl_vector3_t & c_type() const noexcept
Borrows-it view of the underlying C value type.
Definition geom.hpp:204
double magnitude() const noexcept
Euclidean length. Never throws.
Definition geom.hpp:225
Vector3 reversed() const noexcept
Returns this vector negated.
Definition geom.hpp:255
double dot(const Vector3 &theOther) const noexcept
Dot product with another vector. Never throws.
Definition geom.hpp:213
double x() const noexcept
X component.
Definition geom.hpp:206
double y() const noexcept
Y component.
Definition geom.hpp:208
Vector3 normalized() const
Returns this vector normalised to unit length.
Definition geom.hpp:229
double z() const noexcept
Z component.
Definition geom.hpp:210
Vector3 operator*(const double theS) const noexcept
Scalar multiplication.
Definition geom.hpp:249
Definition occtl_geom.h:111
Definition occtl_geom.h:128
Definition occtl_geom.h:146
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: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