FLImaging 6.5.8.1
FLGeometry3DLine.h
1#pragma once
2#include "FLGeometry3DAxis.h"
3
5namespace FLImaging
6{
8 namespace Foundation
9 {
10 template <typename Ty>
11 class FL_EXPORT CMatrixFor3DTransform;
12
13 template <typename Ty>
14 class FL_EXPORT CFLGeometry3DDirection;
15
16 template <typename Ty>
17 class FL_EXPORT CFLPoint3;
18
24 template <typename Ty>
25 class FL_EXPORT CFLGeometry3DLine : public Base::CFLBase
26 {
27 public:
33
41
51
56 void Reverse();
57
64
72
79 void SetLocation(const CFLPoint3<Ty>& flp3Origin);
80
88
95
102
109
116 double GetAngle(const CFLGeometry3DLine<Ty>& rhs) const;
117
124 double GetAngleInRadian(const CFLGeometry3DLine<Ty>& rhs) const;
125
134 bool Contains(const CFLPoint3<Ty>& flp3, const double f64LinearTolerance) const;
135
143 double GetDistance(const CFLPoint3<Ty>& flp3Point) const;
144
151 double GetDistance(const CFLGeometry3DLine<Ty>& rhs) const;
152
160 double GetSquareDistance(const CFLPoint3<Ty>& flp3) const;
161
168 double GetSquareDistance(const CFLGeometry3DLine<Ty>& rhs) const;
169
178
188 const CResult Mirror(const CFLPoint3<Ty>& flp3Pivot);
189
199
209 const CResult Mirror(const CFLGeometry3DAxis<Ty>& axisOfSymmetry);
210
220
231
241
252 const CResult Rotate(const CFLGeometry3DAxis<Ty>& axisOfRotation, const double f64Angle);
253
263 CFLGeometry3DLine<Ty> GetRotated(const CFLGeometry3DAxis<Ty>& axisOfRotation, const double f64Angle) const;
264
275 const CResult Scale(const CFLPoint3<Ty>& flp3Pivot, const double f64Scale);
276
286 CFLGeometry3DLine<Ty> GetScaled(const CFLPoint3<Ty>& flp3Pivot, const double f64Scale) const;
287
298
308
318 const CResult Translate(const CFLGeometry3DVector<Ty>& vecTranslate);
319
329
340 const CResult Translate(const CFLPoint3<Ty>& flp3From, const CFLPoint3<Ty>& flp3To);
341
351 CFLGeometry3DLine<Ty> GetTranslated(const CFLPoint3<Ty>& flp3From, const CFLPoint3<Ty>& flp3To) const;
352
353 SupportToDuplicateObject(CFLGeometry3DLine<Ty>, *this);
354 DeclareGetClassType();
355
356 protected:
357 CFLGeometry3DAxis<Ty> m_axisPos;
358 };
359 }
360}
FLImaging의 최상위 기저 클래스
Definition FLBase.h:36
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514
3D 공간에서 축을 나타내는 클래스.
Definition FLGeometry3DAxis.h:31
3D 공간에서 오른손 좌표계를 나타내는 클래스.
Definition FLGeometry3DCoordinateSystemRH.h:32
3D 공간 상의 방향 벡터를 표현하는 클래스
Definition FLGeometry3DDirection.h:32
원점과 단위 벡터로 표현되는 3D 공간 상의 직선을 표현하는 클래스
Definition FLGeometry3DLine.h:26
const CResult Mirror(const CFLGeometry3DCoordinateSystemRH< Ty > &planeOfSymmetry)
double GetSquareDistance(const CFLPoint3< Ty > &flp3) const
double GetAngle(const CFLGeometry3DLine< Ty > &rhs) const
CFLGeometry3DLine< Ty > GetMirrored(const CFLGeometry3DCoordinateSystemRH< Ty > &planeOfSymmetry) const
void SetDirection(const CFLGeometry3DDirection< Ty > &dir)
const CResult Translate(const CFLGeometry3DVector< Ty > &vecTranslate)
CFLGeometry3DLine< Ty > GetTranslated(const CFLGeometry3DVector< Ty > &vecTranslate) const
const CFLGeometry3DAxis< Ty > * GetPosition() const
CFLGeometry3DLine< Ty > GetRotated(const CFLGeometry3DAxis< Ty > &axisOfRotation, const double f64Angle) const
double GetSquareDistance(const CFLGeometry3DLine< Ty > &rhs) const
CFLGeometry3DLine< Ty > GetScaled(const CFLPoint3< Ty > &flp3Pivot, const double f64Scale) const
const CResult Scale(const CFLPoint3< Ty > &flp3Pivot, const double f64Scale)
bool Contains(const CFLPoint3< Ty > &flp3, const double f64LinearTolerance) const
const CFLPoint3< Ty > * GetLocation() const
void SetPosition(const CFLGeometry3DAxis< Ty > &axis)
CFLGeometry3DLine< Ty > GetMirrored(const CFLPoint3< Ty > &flp3Pivot) const
double GetAngleInRadian(const CFLGeometry3DLine< Ty > &rhs) const
double GetDistance(const CFLGeometry3DLine< Ty > &rhs) const
CFLGeometry3DLine< Ty > GetTranslated(const CFLPoint3< Ty > &flp3From, const CFLPoint3< Ty > &flp3To) const
const CFLGeometry3DDirection< Ty > * GetDirection() const
const CResult Translate(const CFLPoint3< Ty > &flp3From, const CFLPoint3< Ty > &flp3To)
CFLGeometry3DLine< Ty > GetMirrored(const CFLGeometry3DAxis< Ty > &axisOfSymmetry) const
CFLGeometry3DLine< Ty > GetReversed() const
const CResult Transform(const CMatrixFor3DTransform< Ty > &trsf)
double GetDistance(const CFLPoint3< Ty > &flp3Point) const
const CResult Mirror(const CFLGeometry3DAxis< Ty > &axisOfSymmetry)
void SetLocation(const CFLPoint3< Ty > &flp3Origin)
CFLGeometry3DLine(const CFLPoint3< Ty > &flp3Origin, const CFLGeometry3DDirection< Ty > &dir)
CFLGeometry3DLine< Ty > GetNormalLine(const CFLPoint3< Ty > &flp3) const
const CResult Mirror(const CFLPoint3< Ty > &flp3Pivot)
const CResult Rotate(const CFLGeometry3DAxis< Ty > &axisOfRotation, const double f64Angle)
CFLGeometry3DLine< Ty > GetTransformed(const CMatrixFor3DTransform< Ty > &trsf) const
CFLGeometry3DLine(const CFLGeometry3DAxis< Ty > &axisPos)
3D 공간 상의 벡터를 표현하며, 방향과 크기를 내포하는 클래스
Definition FLGeometry3DVector.h:33
3차원 점을 표현하는 클래스
Definition FLPoint3.h:36
3D 공간 상에서의 변환을 용이하게 하기 위한 목적의 행렬 클래스
Definition MatrixFor3DTransform.h:35