OpenLexocad
27.1
Ax1.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
25
#include <
Geom/Dir.h
>
26
#include <
Geom/Pnt.h
>
27
28
namespace
Geom
29
{
30
class
Ax1;
31
class
Ax2;
32
class
Trsf;
33
class
Vec;
34
}
// namespace Geom
35
36
namespace
Geom
37
{
50
class
LX_GEOM_EXPORT
Ax1
51
{
52
public
:
54
// //
55
// --------------------- BEGIN API --------------------- //
56
// //
57
// ATTENTION: DO NOT CHANGE ANY SIGNATURES IN THE API ! //
58
// //
60
61
// Methods PUBLIC
62
//
64
Ax1
() =
default
;
65
67
Ax1
(
const
Geom::Pnt
& P,
const
Geom::Dir
& V);
69
void
setDirection(
const
Geom::Dir
& V);
71
void
setLocation(
const
Geom::Pnt
& P);
73
const
Geom::Dir
& direction()
const
;
75
const
Geom::Pnt
& location()
const
;
76
77
85
bool
isCoaxial(
const
Ax1
& Other,
const
double
AngularTolerance,
const
double
LinearTolerance)
const
;
86
91
bool
isNormal(
const
Ax1
& Other,
const
double
AngularTolerance)
const
;
92
97
bool
isOpposite(
const
Ax1
& Other,
const
double
AngularTolerance)
const
;
98
104
bool
isParallel(
const
Ax1
& Other,
const
double
AngularTolerance)
const
;
105
109
double
angle(
const
Ax1
& Other)
const
;
112
void
reverse();
114
Ax1
reversed()
const
;
115
116
120
void
mirror(
const
Geom::Pnt
& P);
121
125
Ax1
mirrored(
const
Geom::Pnt
& P)
const
;
126
127
131
void
mirror(
const
Ax1
& A1);
132
133
137
Ax1
mirrored(
const
Ax1
& A1)
const
;
138
139
144
void
mirror(
const
Geom::Ax2
& A2);
145
146
151
Ax1
mirrored(
const
Geom::Ax2
& A2)
const
;
154
void
rotate(
const
Ax1
& A1,
const
double
Ang);
157
Ax1
rotated(
const
Ax1
& A1,
const
double
Ang)
const
;
158
162
void
scale(
const
Geom::Pnt
& P,
const
double
S);
163
167
Ax1
scaled(
const
Geom::Pnt
& P,
const
double
S)
const
;
170
void
transform
(
const
Geom::Trsf
& T);
171
175
Ax1
transformed(
const
Geom::Trsf
& T)
const
;
176
179
void
translate(
const
Geom::Vec
& V);
180
183
Ax1
translated(
const
Geom::Vec
& V)
const
;
184
188
void
translate(
const
Geom::Pnt
& P1,
const
Geom::Pnt
& P2);
189
193
Ax1
translated(
const
Geom::Pnt
& P1,
const
Geom::Pnt
& P2)
const
;
194
196
// //
197
// ---------------------- END API ---------------------- //
198
// //
200
201
private
:
202
Geom::Pnt
loc;
203
Geom::Dir
vdir;
204
};
205
206
}
// namespace Geom
Pnt.h
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
Geom::Ax1
Definition:
Ax1.h:50
Geom::Vec
Defines a non-persistent vector in 3D space.
Definition:
Vec.h:44
lexocad
Geom
include
Geom
Ax1.h
Generated by
1.8.15