FLImaging 6.5.8.1
LeastSquares3D.h
1#pragma once
8#include "FLFigureForwardDeclaration.h"
9#include "DefinitionsMathematics.h"
10
12namespace FLImaging
13{
15 namespace Foundation
16 {
17 template<typename T>
18 class CInternalLeastSquares3D;
19
25 template<typename T>
26 class FL_EXPORT CLeastSquares3D : public Base::CFLBase
27 {
28 public:
36
44
56 const CResult Clear();
57
75 const CResult Set(const Base::TPoint3<T>* pTpArrXYZ, int32_t i32Count);
76
95
114
134 const CResult Set(T* pTArrX, T* pTArrY, T* pTArrZ, int32_t i32Count);
135
154
173
192
211
230
249
268
287
307 const CResult Assign(int32_t* pI32X, int32_t* pI32Y, int32_t* pI32Z, int32_t i32Count);
308
328 const CResult Assign(int64_t* pI64X, int64_t* pI64Y, int64_t* pI64Z, int32_t i32Count);
329
349 const CResult Assign(float* pF32X, float* pF32Y, float* pF32Z, int32_t i32Count);
350
370 const CResult Assign(double* pF64X, double* pF64Y, double* pF64Z, int32_t i32Count);
371
389 const CResult Assign(const CFLPoint3<float>* pData, int32_t i32Count);
390
408 const CResult Assign(const CFLPoint3<double>* pData, int32_t i32Count);
409
427 const CResult Add(int32_t i32X, int32_t i32Y, int32_t i32Z);
428
446 const CResult Add(int64_t i64X, int64_t i64Y, int64_t i64Z);
447
465 const CResult Add(float f32X, float f32Y, float f32Z);
466
484 const CResult Add(double f64X, double f64Y, double f64Z);
485
501 const CResult Add(const CFLPoint3<double>& flpData);
502
518 const CResult Add(const CFLPoint3<float>& flpData);
519
535 const CResult Add(const CFLPoint3<double>* pFlpData);
536
552 const CResult Add(const CFLPoint3<float>* pFlpData);
553
569 const CResult Add(const Base::TPoint3<double>& tpData);
570
586 const CResult Add(const Base::TPoint3<float>& tpData);
587
603 const CResult Add(const Base::TPoint3<int64_t>& tpData);
604
620 const CResult Add(const Base::TPoint3<int32_t>& tpData);
621
637 const CResult Add(const Base::TPoint3<double>* pTpData);
638
654 const CResult Add(const Base::TPoint3<float>* pTpData);
655
671 const CResult Add(const Base::TPoint3<int64_t>* pTpData);
672
688 const CResult Add(const Base::TPoint3<int32_t>* pTpData);
689
708
727
746
765
784
803
822
841
861 const CResult Add(double* pArrX, double* pArrY, double* pArrZ, int32_t i32Count);
862
882 const CResult Add(float* pArrX, float* pArrY, float* pArrZ, int32_t i32Count);
883
903 const CResult Add(int64_t* pArrX, int64_t* pArrY, int64_t* pArrZ, int32_t i32Count);
904
924 const CResult Add(int32_t* pArrX, int32_t* pArrY, int32_t* pArrZ, int32_t i32Count);
925
939 Base::TPoint3<T>* Get(size_t stIndex) const;
940
960 const CResult Get(size_t stIndex, T** ppTArrX, T** ppTArrY, T** ppTArrZ) const;
961
971 size_t GetCount();
972
998 const CResult GetPlane(T& tA, T& tB, T& tC, T& tD, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3.) const;
999
1025 const CResult GetSphere(T& tU, T& tV, T& tW, T& tR, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3.) const;
1026
1050 const CResult GetLine(CFLPoint3<T>& flpDirectionVector, CFLPoint3<T>& flpBasePosition, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3.) const;
1051
1075 const CResult GetLine(CFLPoint3<T>* pFlpDirectionVector, CFLPoint3<T>* pFlpBasePosition, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3.) const;
1076
1077 SupportToDuplicateObject(CLeastSquares3D, *this);
1078 DeclareGetClassType();
1079
1080 private:
1081 CInternalLeastSquares3D<T>* m_pInternal;
1082 };
1083
1086 }
1087}
1088
Template type 의 배열 클래스.
Definition RangeTree.h:19
FLImaging의 최상위 기저 클래스
Definition FLBase.h:36
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514
3차원 점을 표현하는 클래스
Definition FLPoint3.h:36
3차원 최소제곱법 계산 클래스
Definition LeastSquares3D.h:27
const CResult Add(const Base::TPoint3< double > &tpData)
데이터를 추가합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< float > > &flaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
Base::TPoint3< T > * Get(size_t stIndex) const
지정한 인덱스의 데이터를 얻어 옵니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< int64_t > > *pFlaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult GetLine(CFLPoint3< T > *pFlpDirectionVector, CFLPoint3< T > *pFlpBasePosition, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3.) const
각각의 점들과 거리 차이가 최소가 되는 직선을 찾는 함수 로 표현되는 3차원 직선에서 정규화된 방향벡터 A와 직선 위의 한 점 B를 얻어옵니다.
const CResult Get(size_t stIndex, T **ppTArrX, T **ppTArrY, T **ppTArrZ) const
지정한 인덱스의 데이터를 얻어 옵니다.
const CResult Add(int32_t *pArrX, int32_t *pArrY, int32_t *pArrZ, int32_t i32Count)
데이터를 복사하여 추가합니다.
const CResult Assign(int32_t *pI32X, int32_t *pI32Y, int32_t *pI32Z, int32_t i32Count)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(const CFLPoint3< double > &flpData)
데이터를 추가합니다.
const CResult Assign(const CFLPoint3< double > *pData, int32_t i32Count)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(int32_t i32X, int32_t i32Y, int32_t i32Z)
데이터를 추가합니다.
const CResult Add(float *pArrX, float *pArrY, float *pArrZ, int32_t i32Count)
데이터를 복사하여 추가합니다.
const CResult Assign(int64_t *pI64X, int64_t *pI64Y, int64_t *pI64Z, int32_t i32Count)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(const Base::TPoint3< int32_t > &tpData)
데이터를 추가합니다.
const CResult Add(const Base::TPoint3< int32_t > *pTpData)
데이터를 추가합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< double > > *pFlaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< int32_t > > *pFlaData)
데이터를 추가합니다.
const CResult Add(float f32X, float f32Y, float f32Z)
데이터를 추가합니다.
const CResult Assign(const CFLPoint3< float > *pData, int32_t i32Count)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< int64_t > > &flaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< int32_t > > *pFlaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(double f64X, double f64Y, double f64Z)
데이터를 추가합니다.
const CResult Assign(double *pF64X, double *pF64Y, double *pF64Z, int32_t i32Count)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult GetLine(CFLPoint3< T > &flpDirectionVector, CFLPoint3< T > &flpBasePosition, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3.) const
각각의 점들과 거리 차이가 최소가 되는 직선을 찾는 함수 로 표현되는 3차원 직선에서 정규화된 방향벡터 A와 직선 위의 한 점 B를 얻어옵니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< int32_t > > &flaData)
데이터를 추가합니다.
const CResult Set(const Base::CFLArray< Base::TPoint3< T > > *pFlaData)
데이터를 할당하는 함수로, 배열 객체를 새로 복사 생성하지 않고 파라미터의 배열 포인터 주소만 할당합니다.
const CResult Add(double *pArrX, double *pArrY, double *pArrZ, int32_t i32Count)
데이터를 복사하여 추가합니다.
const CResult Add(const Base::TPoint3< float > &tpData)
데이터를 추가합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< double > > &flaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< float > > *pFlaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(const Base::TPoint3< int64_t > *pTpData)
데이터를 추가합니다.
const CResult Assign(const Base::CFLArray< Base::TPoint3< int32_t > > &flaData)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult GetPlane(T &tA, T &tB, T &tC, T &tD, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3.) const
각각의 점들과 거리 차이가 최소가 되는 면을 찾는 함수 면의 방정식 에 해당하는 계수를 얻어옵니다.
const CResult Add(const CFLPoint3< float > *pFlpData)
데이터를 추가합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< double > > &flaData)
데이터를 추가합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< int64_t > > *pFlaData)
데이터를 추가합니다.
const CResult Add(const Base::TPoint3< float > *pTpData)
데이터를 추가합니다.
const CResult Assign(float *pF32X, float *pF32Y, float *pF32Z, int32_t i32Count)
데이터를 할당하는 함수로, 배열을 복사 생성합니다.
const CResult Add(const Base::TPoint3< int64_t > &tpData)
데이터를 추가합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< float > > *pFlaData)
데이터를 추가합니다.
const CResult GetSphere(T &tU, T &tV, T &tW, T &tR, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3.) const
각각의 점들과 거리 차이가 최소가 되는 구를 찾는 함수 구의 방정식 에 해당하는 계수를 얻어옵니다.
const CResult Set(const Base::CFLArray< Base::TPoint3< T > > &flaData)
데이터를 할당하는 함수로, 배열 객체를 새로 복사 생성하지 않고 파라미터의 배열 포인터 주소만 할당합니다.
const CResult Set(T *pTArrX, T *pTArrY, T *pTArrZ, int32_t i32Count)
데이터를 할당하는 함수로, 배열 객체를 새로 복사 생성하지 않고 파라미터의 배열 포인터 주소만 할당합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< double > > *pFlaData)
데이터를 추가합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< float > > &flaData)
데이터를 추가합니다.
const CResult Clear()
파라미터를 초기화합니다.
const CResult Add(const Base::CFLArray< Base::TPoint3< int64_t > > &flaData)
데이터를 추가합니다.
const CResult Add(const Base::TPoint3< double > *pTpData)
데이터를 추가합니다.
virtual ~CLeastSquares3D()
기본 소멸자
const CResult Set(const Base::TPoint3< T > *pTpArrXYZ, int32_t i32Count)
데이터를 할당하는 함수로, 배열 객체를 새로 복사 생성하지 않고 파라미터의 배열 포인터 주소만 할당합니다.
const CResult Add(int64_t *pArrX, int64_t *pArrY, int64_t *pArrZ, int32_t i32Count)
데이터를 복사하여 추가합니다.
const CResult Add(int64_t i64X, int64_t i64Y, int64_t i64Z)
데이터를 추가합니다.
const CResult Add(const CFLPoint3< double > *pFlpData)
데이터를 추가합니다.
size_t GetCount()
데이터 개수를 얻어 옵니다.
const CResult Add(const CFLPoint3< float > &flpData)
데이터를 추가합니다.