OpenLexocad
27.1
Ax3.h
Go to the documentation of this file.
1
//
3
// Copyright(C) 2013-2016 OpenCascade [www.opencascade.org]
4
//
5
// This library is free software; you can redistribute it and / or
6
// modify it under the terms of the GNU Lesser General Public
7
// License as published by the Free Software Foundation; either
8
// version 2.1 of the License, or (at your option) any later version.
9
//
10
// This library is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU
13
// Lesser General Public License for more details.
14
//
15
// You should have received a copy of the GNU Lesser General Public
16
// License along with this library; if not, write to the Free Software
17
// Foundation, Inc., 51 Franklin Street,
18
// Fifth Floor, Boston, MA 02110 - 1301 USA
19
//
21
22
#pragma once
23
24
#include <
Geom/Ax1.h
>
25
#include <
Geom/Dir.h
>
26
27
namespace
Geom
28
{
29
class
Ax2;
30
class
Ax3;
31
class
Trsf;
32
class
Vec;
33
class
Pnt;
34
69
class
LX_GEOM_EXPORT
Ax3
70
{
71
public
:
72
// Methods PUBLIC
73
//
74
76
// //
77
// --------------------- BEGIN API --------------------- //
78
// //
79
// ATTENTION: DO NOT CHANGE ANY SIGNATURES IN THE API ! //
80
// //
82
84
Ax3
();
85
88
Ax3
(
const
Geom::Ax2
& A);
89
94
Ax3
(
const
Geom::Pnt
& P,
const
Geom::Dir
& N,
const
Geom::Dir
& Vx);
95
96
99
Ax3
(
const
Geom::Pnt
& P,
const
Geom::Dir
& V);
100
102
void
xReverse();
103
105
void
yReverse();
106
108
void
zReverse();
109
122
void
setAxis(
const
Geom::Ax1
& A1);
123
124
134
void
setDirection(
const
Geom::Dir
& V);
135
136
138
void
setLocation(
const
Geom::Pnt
& P);
139
140
147
void
setXDirection(
const
Geom::Dir
& Vx);
148
155
void
setYDirection(
const
Geom::Dir
& Vy);
156
160
double
angle(
const
Ax3
& Other)
const
;
161
164
const
Geom::Ax1
& axis()
const
;
165
172
Geom::Ax2
axis2()
const
;
173
175
const
Geom::Dir
& direction()
const
;
176
178
const
Geom::Pnt
& location()
const
;
179
181
const
Geom::Dir
& xDirection()
const
;
182
184
const
Geom::Dir
& yDirection()
const
;
187
bool
direct()
const
;
188
196
bool
isCoplanar(
const
Ax3
& Other,
const
double
LinearTolerance,
const
double
AngularTolerance)
const
;
203
bool
isCoplanar(
const
Geom::Ax1
& A1,
const
double
LinearTolerance,
const
double
AngularTolerance)
const
;
204
205
206
void
mirror(
const
Geom::Pnt
& P);
207
208
216
Ax3
mirrored(
const
Geom::Pnt
& P)
const
;
217
218
219
void
mirror(
const
Geom::Ax1
& A1);
220
221
229
Ax3
mirrored(
const
Geom::Ax1
& A1)
const
;
230
231
232
void
mirror(
const
Geom::Ax2
& A2);
233
234
243
Ax3
mirrored(
const
Geom::Ax2
& A2)
const
;
244
245
246
void
rotate(
const
Geom::Ax1
& A1,
const
double
Ang);
247
248
252
Ax3
rotated(
const
Geom::Ax1
& A1,
const
double
Ang)
const
;
253
254
255
void
scale(
const
Geom::Pnt
& P,
const
double
S);
256
257
265
Ax3
scaled(
const
Geom::Pnt
& P,
const
double
S)
const
;
266
267
268
void
transform
(
const
Geom::Trsf
& T);
269
270
276
Ax3
transformed(
const
Geom::Trsf
& T)
const
;
277
278
279
void
translate(
const
Geom::Vec
& V);
280
281
284
Ax3
translated(
const
Geom::Vec
& V)
const
;
285
286
287
void
translate(
const
Geom::Pnt
& P1,
const
Geom::Pnt
& P2);
288
289
292
Ax3
translated(
const
Geom::Pnt
& P1,
const
Geom::Pnt
& P2)
const
;
293
295
// //
296
// ---------------------- END API ---------------------- //
297
// //
299
300
301
private
:
302
Geom::Ax1
myaxis;
303
Geom::Dir
vydir;
304
Geom::Dir
vxdir;
305
};
306
307
}
// namespace Geom
Geom
Definition:
Variant.h:60
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition:
Pnt.h:43
Dir.h
Base::transform
void transform(Container container, OutputIt out, BinaryFunction function)
Definition:
Algorithms.h:29
Geom::Ax2
Definition:
Ax2.h:67
Geom::Trsf
Definition:
Trsf.h:57
Geom::Dir
Definition:
Dir.h:45
Ax1.h
Geom::Ax3
Definition:
Ax3.h:69
Geom::Ax1
Definition:
Ax1.h:50
Geom::Vec
Defines a non-persistent vector in 3D space.
Definition:
Vec.h:44
lexocad
Geom
include
Geom
Ax3.h
Generated by
1.8.15