FLImaging 6.6.27.1
Registration3D.h
1#pragma once
2
11
12#include "DefinitionsThreeDim.h"
13#include "AlgorithmFeature3D_LR_SR_LP_LO_SO.h"
14
16namespace FLImaging
17{
19 namespace ThreeDim
20 {
21 class CInternalRegistration3D;
22
33 class FL_EXPORT CRegistration3D : public CAlgorithmFeature3D_LR_SR_LP_LO_SO
34 {
35 public:
36
46 {
55
64 };
65
75 {
84
93 };
94
100
105 CRegistration3D(const CRegistration3D& Registration3D);
106
111 CRegistration3D(const CRegistration3D* pRegistration3D);
112
118
132 const CRegistration3D& operator=(const CRegistration3D& Registration3D);
133
149 virtual const CResult Assign(const CRegistration3D& Registration3D);
150
166 virtual const CResult Assign(const CRegistration3D* pRegistration3D);
167
181 virtual const CResult Execute();
182
196 virtual const CResult Clear() override;
197
213 virtual const CResult SetSamplingDistance(float f32SamplingDistance = 0.03f);
214
222 virtual float GetSamplingDistance() const;
223
240
248 virtual const EDescriptorType GetDescriptorType() const;
249
266
275
299 virtual const CResult EnableNormalEstimationAutoRadius(bool bEnableAutoRadius = true);
300
309
333 virtual const CResult EnableSHOTLRFAutoRadius(bool bEnableAutoRadius = true);
334
342 virtual bool IsSHOTLRFAutoRadiusEnabled() const;
343
367 virtual const CResult EnableSHOTAutoRadius(bool bEnableAutoRadius = true);
368
376 virtual bool IsSHOTAutoRadiusEnabled() const;
377
397 virtual const CResult SetNormalEstimationCoefficient(float f32Coefficient = 3);
398
406 virtual float GetNormalEstimationCoefficient() const;
407
427 virtual const CResult SetSHOTLRFCoefficient(float f32Coefficient = 2);
428
436 virtual float GetSHOTLRFCoefficient() const;
437
457 virtual const CResult SetSHOTCoefficient(float f32Coefficient = 4);
458
466 virtual float GetSHOTCoefficient() const;
467
485 virtual const CResult SetNormalEstimationRadius(float f32Radius = 0.01f);
486
494 virtual float GetNormalEstimationRadius() const;
495
513 virtual const CResult SetSHOTLRFRadius(float f32Radius = 0.05f);
514
522 virtual float GetSHOTLRFRadius() const;
523
541 virtual const CResult SetSHOTRadius(float f32Radius = 0.1f);
542
550 virtual float GetSHOTRadius() const;
551
569 virtual const CResult GetResultPoseMatrix(Foundation::CMatrix<float>& matPoseMatrix) const;
570
589
607 virtual const CResult GetResultRotationVector(Base::CFLArray<float>& flaResultRotationVector) const;
608
626 virtual const CResult GetResultRotationVector(Base::CFLArray<float>* pFlaResultRotationVector) const;
627
649 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray<float>& flaResultEulerAngle) const;
650
672 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray<float>* pFlaResultEulerAngle) const;
673
691 virtual const CResult GetResultTranslationVector(Base::CFLArray<float>& flaResultTranslationVector) const;
692
710 virtual const CResult GetResultTranslationVector(Base::CFLArray<float>* pFlaResultTranslationVector) const;
711
737 virtual const CResult GetMergedResult3DObject(bool bLearnRecoloring = true, bool bSourceRecoloring = true, const Base::TPoint3<uint8_t>* pTp3LearnColor = nullptr, const Base::TPoint3<uint8_t>* pTp3SourceColor = nullptr, Foundation::CFL3DObject* pFloMergedResult = nullptr);
738
739 virtual bool IsLicenseAvailable() const override;
740
741 DeclareGetClassType();
742 SupportToDuplicateObject(CRegistration3D, *this);
743
744 protected:
745
754
763
772
781
790
799
808
817
826
835
844
853
854 protected:
855 CInternalRegistration3D* m_pInternal;
856 friend class CInternalRegistration3D;
857 };
858 }
859}
Template type 의 배열 클래스.
Definition FLArray.h:53
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
3D 객체의 데이터를 표현하는 클래스
Definition FL3DObject.h:37
3D 공간 상에서의 변환을 용이하게 하기 위한 목적의 행렬 클래스
Definition MatrixFor3DTransform.h:35
행렬을 표현하는 클래스
Definition Matrix.h:79
float m_f32SamplingDistance
Definition Registration3D.h:807
virtual float GetNormalEstimationRadius() const
float m_f32NormalEstimationCoefficient
Definition Registration3D.h:753
virtual const CResult EnableSHOTAutoRadius(bool bEnableAutoRadius=true)
virtual float GetSHOTLRFRadius() const
virtual const CResult SetDescriptorType(EDescriptorType eType)
virtual const CResult SetSHOTCoefficient(float f32Coefficient=4)
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray< float > &flaResultEulerAngle) const
virtual bool IsSHOTAutoRadiusEnabled() const
float m_f32SHOTLRFRadius
Definition Registration3D.h:789
virtual float GetSHOTRadius() const
virtual const CResult EnableSHOTLRFAutoRadius(bool bEnableAutoRadius=true)
virtual const CResult SetRefinementMethod(ERefinementMethod eMethod)
virtual float GetSHOTLRFCoefficient() const
virtual const CResult SetSamplingDistance(float f32SamplingDistance=0.03f)
virtual const CResult EnableNormalEstimationAutoRadius(bool bEnableAutoRadius=true)
virtual const CResult SetSHOTRadius(float f32Radius=0.1f)
float m_f32NormalEstimationRadius
Definition Registration3D.h:780
CRegistration3D(const CRegistration3D &Registration3D)
virtual const ERefinementMethod GetRefinementMethod() const
virtual const CResult Assign(const CRegistration3D *pRegistration3D)
virtual const EDescriptorType GetDescriptorType() const
ERefinementMethod m_eRefinementMethod
Definition Registration3D.h:816
float m_f32SHOTLRFCoefficient
Definition Registration3D.h:762
virtual bool IsSHOTLRFAutoRadiusEnabled() const
virtual const CResult GetResultPoseMatrix(Foundation::CMatrixFor3DTransform< float > &matPoseMatrix) const
float m_f32SHOTRadius
Definition Registration3D.h:798
virtual const CResult SetNormalEstimationRadius(float f32Radius=0.01f)
virtual const CResult GetResultRotationVector(Base::CFLArray< float > &flaResultRotationVector) const
virtual float GetNormalEstimationCoefficient() const
virtual const CResult GetResultPoseMatrix(Foundation::CMatrix< float > &matPoseMatrix) const
virtual float GetSamplingDistance() const
bool m_bAutoSHOTRadius
Definition Registration3D.h:843
EDescriptorType
Definition Registration3D.h:46
@ EDescriptorType_SHOT352
Definition Registration3D.h:54
@ EDescriptorType_FPFH
Definition Registration3D.h:63
virtual const CResult Execute()
virtual const CResult Clear() override
virtual float GetSHOTCoefficient() const
virtual const CResult SetSHOTLRFRadius(float f32Radius=0.05f)
virtual const CResult GetResultRotationVector(Base::CFLArray< float > *pFlaResultRotationVector) const
virtual const CResult GetResultTranslationVector(Base::CFLArray< float > &flaResultTranslationVector) const
virtual const CResult GetResultTranslationVector(Base::CFLArray< float > *pFlaResultTranslationVector) const
EDescriptorType m_eDescriptorType
Definition Registration3D.h:852
virtual const CResult SetSHOTLRFCoefficient(float f32Coefficient=2)
virtual bool IsLicenseAvailable() const override
현재 보유한 라이선스로 해당 알고리즘을 사용할 수 있는지에 대한 여부를 반환 합니다.
virtual const CResult SetNormalEstimationCoefficient(float f32Coefficient=3)
virtual const CResult GetMergedResult3DObject(bool bLearnRecoloring=true, bool bSourceRecoloring=true, const Base::TPoint3< uint8_t > *pTp3LearnColor=nullptr, const Base::TPoint3< uint8_t > *pTp3SourceColor=nullptr, Foundation::CFL3DObject *pFloMergedResult=nullptr)
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray< float > *pFlaResultEulerAngle) const
bool m_bAutoNormalEstimationRadius
Definition Registration3D.h:825
ERefinementMethod
Definition Registration3D.h:75
@ ERefinementMethod_None
Definition Registration3D.h:83
@ ERefinementMethod_Fast
Definition Registration3D.h:92
virtual const CResult Assign(const CRegistration3D &Registration3D)
CRegistration3D(const CRegistration3D *pRegistration3D)
bool m_bAutoSHOTLRFRadius
Definition Registration3D.h:834
virtual bool IsNormalEstimationAutoRadiusEnabled() const
float m_f32SHOTCoefficient
Definition Registration3D.h:771
const CRegistration3D & operator=(const CRegistration3D &Registration3D)
EEulerSequence
회전 순서
Definition DefinitionsMathematics.h:240
Definition Algorithm3DBase.h:16