FLImaging 7.8.25.3
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() override;
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 EnableFPFHAutoRadius(bool bEnableAutoRadius = true);
300
308 virtual bool IsFPFHAutoRadiusEnabled() const;
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 SetFPFHRadiusCoefficient(float f32Coefficient = 3);
398
406 virtual float GetFPFHRadiusCoefficient() 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 SetFPFHRadius(float f32Radius = 0.01f);
486
494 virtual float GetFPFHRadius() 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
553
570 virtual const CResult GetResultPoseMatrix(Foundation::CMatrix<float>& matPoseMatrix) const;
571 virtual const CResult GetResultPoseMatrix(Foundation::CMatrix<float>* pMatPoseMatrix) const;
575
593 virtual const CResult GetResultRotationVector(Base::CFLArray<float>& flaResultRotationVector) const;
594
612 virtual const CResult GetResultRotationVector(Base::CFLArray<float>* pFlaResultRotationVector) const;
613
635 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray<float>& flaResultEulerAngle) const;
636
658 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray<float>* pFlaResultEulerAngle) const;
659
677 virtual const CResult GetResultTranslationVector(Base::CFLArray<float>& flaResultTranslationVector) const;
678
696 virtual const CResult GetResultTranslationVector(Base::CFLArray<float>* pFlaResultTranslationVector) const;
697
699
716 virtual const CResult GetResultPoseMatrix(Foundation::CMatrix<double>& matPoseMatrix) const;
717 virtual const CResult GetResultPoseMatrix(Foundation::CMatrix<double>* pMatPoseMatrix) const;
721
739 virtual const CResult GetResultRotationVector(Base::CFLArray<double>& flaResultRotationVector) const;
740
758 virtual const CResult GetResultRotationVector(Base::CFLArray<double>* pFlaResultRotationVector) const;
759
781 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray<double>& flaResultEulerAngle) const;
782
804 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray<double>* pFlaResultEulerAngle) const;
805
823 virtual const CResult GetResultTranslationVector(Base::CFLArray<double>& flaResultTranslationVector) const;
824
842 virtual const CResult GetResultTranslationVector(Base::CFLArray<double>* pFlaResultTranslationVector) const;
843
861 virtual const CResult GetResultRotationVector(Base::TPoint3<double>& tp3ResultRotationVector) const;
862
880 virtual const CResult GetResultRotationVector(Base::TPoint3<double>* ptp3ResultRotationVector) const;
881
903 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::TPoint3<double>& tp3ResultEulerAngle) const;
904
926 virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::TPoint3<double>* ptp3ResultEulerAngle) const;
927
945 virtual const CResult GetResultTranslationVector(Base::TPoint3<double>& tp3ResultTranslationVector) const;
946
964 virtual const CResult GetResultTranslationVector(Base::TPoint3<double>* ptp3ResultTranslationVector) const;
965
967
992 virtual const CResult GetMergedResult3DObject(bool bLearnRecoloring, bool bSourceRecoloring, const Base::TPoint3<uint8_t>& tp3LearnColor, const Base::TPoint3<uint8_t>& tp3SourceColor, Foundation::CFL3DObject& floMergedResult);
993 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);
995
996 virtual bool IsLicenseAvailable() const override;
997
998 DeclareGetClassType();
999 SupportToDuplicateObject(CRegistration3D, *this);
1000
1001 protected:
1002
1011
1020
1029
1038
1047
1056
1065
1074
1083
1092
1101
1110
1111 protected:
1112 CInternalRegistration3D* m_pInternal;
1113 friend class CInternalRegistration3D;
1114 };
1115 }
1116}
Template type array class.
Definition FLArray.h:71
Simplified class representing a 3-D point.
Definition TPoint3.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1704
A class representing 3D object data.
Definition FL3DObject.h:42
A matrix class for 3D transform.
Definition MatrixFor3DTransform.h:40
A class representing matrix.
Definition Matrix.h:79
float m_f32SamplingDistance
Definition Registration3D.h:1064
virtual const CResult EnableSHOTAutoRadius(bool bEnableAutoRadius=true)
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::TPoint3< double > &tp3ResultEulerAngle) const
virtual float GetSHOTLRFRadius() const
virtual const CResult SetDescriptorType(EDescriptorType eType)
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::TPoint3< double > *ptp3ResultEulerAngle) const
virtual const CResult SetSHOTCoefficient(float f32Coefficient=4)
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray< float > &flaResultEulerAngle) const
virtual bool IsSHOTAutoRadiusEnabled() const
virtual float GetFPFHRadiusCoefficient() const
float m_f32SHOTLRFRadius
Definition Registration3D.h:1046
virtual const CResult GetResultRotationVector(Base::TPoint3< double > &tp3ResultRotationVector) const
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray< double > &flaResultEulerAngle) const
virtual float GetSHOTRadius() const
virtual const CResult EnableSHOTLRFAutoRadius(bool bEnableAutoRadius=true)
virtual const CResult SetRefinementMethod(ERefinementMethod eMethod)
virtual float GetSHOTLRFCoefficient() const
float m_f32FPFHRadius
Definition Registration3D.h:1037
virtual const CResult SetSamplingDistance(float f32SamplingDistance=0.03f)
virtual const CResult GetResultPoseMatrix(Foundation::CMatrixFor3DTransform< double > *pMatPoseMatrix) const
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray< double > *pFlaResultEulerAngle) const
virtual const CResult SetFPFHRadius(float f32Radius=0.01f)
virtual const CResult SetSHOTRadius(float f32Radius=0.1f)
virtual const CResult SetFPFHRadiusCoefficient(float f32Coefficient=3)
CRegistration3D(const CRegistration3D &Registration3D)
virtual const ERefinementMethod GetRefinementMethod() const
virtual const CResult GetResultTranslationVector(Base::TPoint3< double > &tp3ResultTranslationVector) const
virtual bool IsFPFHAutoRadiusEnabled() const
virtual const CResult Assign(const CRegistration3D *pRegistration3D)
virtual const CResult GetResultTranslationVector(Base::CFLArray< double > *pFlaResultTranslationVector) const
virtual const CResult EnableFPFHAutoRadius(bool bEnableAutoRadius=true)
virtual const EDescriptorType GetDescriptorType() const
float m_f32FPFHCoefficient
Definition Registration3D.h:1010
ERefinementMethod m_eRefinementMethod
Definition Registration3D.h:1073
float m_f32SHOTLRFCoefficient
Definition Registration3D.h:1019
virtual bool IsSHOTLRFAutoRadiusEnabled() const
virtual const CResult GetResultTranslationVector(Base::CFLArray< double > &flaResultTranslationVector) const
virtual const CResult GetResultPoseMatrix(Foundation::CMatrix< double > &matPoseMatrix) const
bool m_bAutoFPFHRadius
Definition Registration3D.h:1082
virtual const CResult GetResultPoseMatrix(Foundation::CMatrixFor3DTransform< float > &matPoseMatrix) const
float m_f32SHOTRadius
Definition Registration3D.h:1055
virtual const CResult GetResultRotationVector(Base::CFLArray< float > &flaResultRotationVector) const
virtual const CResult GetResultPoseMatrix(Foundation::CMatrix< float > &matPoseMatrix) const
virtual float GetSamplingDistance() const
bool m_bAutoSHOTRadius
Definition Registration3D.h:1100
EDescriptorType
Definition Registration3D.h:46
@ EDescriptorType_SHOT352
Definition Registration3D.h:54
@ EDescriptorType_FPFH
Definition Registration3D.h:63
virtual const CResult Clear() override
virtual float GetSHOTCoefficient() const
virtual const CResult SetSHOTLRFRadius(float f32Radius=0.05f)
virtual const CResult GetResultPoseMatrix(Foundation::CMatrixFor3DTransform< double > &matPoseMatrix) const
virtual const CResult GetResultRotationVector(Base::CFLArray< float > *pFlaResultRotationVector) const
virtual const CResult GetResultTranslationVector(Base::CFLArray< float > &flaResultTranslationVector) const
virtual float GetFPFHRadius() const
virtual const CResult GetResultTranslationVector(Base::CFLArray< float > *pFlaResultTranslationVector) const
EDescriptorType m_eDescriptorType
Definition Registration3D.h:1109
virtual const CResult GetResultRotationVector(Base::TPoint3< double > *ptp3ResultRotationVector) const
virtual const CResult SetSHOTLRFCoefficient(float f32Coefficient=2)
virtual bool IsLicenseAvailable() const override
Returns whether the algorithm can be used with the current license.
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 GetResultRotationVector(Base::CFLArray< double > *pFlaResultRotationVector) const
virtual const CResult GetResultEulerAngle(Foundation::EEulerSequence eEulerSequence, Base::CFLArray< float > *pFlaResultEulerAngle) const
virtual const CResult GetResultPoseMatrix(Foundation::CMatrixFor3DTransform< float > *pMatPoseMatrix) const
ERefinementMethod
Definition Registration3D.h:75
@ ERefinementMethod_None
Definition Registration3D.h:83
@ ERefinementMethod_Fast
Definition Registration3D.h:92
virtual const CResult Assign(const CRegistration3D &Registration3D)
virtual const CResult GetResultTranslationVector(Base::TPoint3< double > *ptp3ResultTranslationVector) const
virtual const CResult GetMergedResult3DObject(bool bLearnRecoloring, bool bSourceRecoloring, const Base::TPoint3< uint8_t > &tp3LearnColor, const Base::TPoint3< uint8_t > &tp3SourceColor, Foundation::CFL3DObject &floMergedResult)
CRegistration3D(const CRegistration3D *pRegistration3D)
bool m_bAutoSHOTLRFRadius
Definition Registration3D.h:1091
virtual const CResult GetResultPoseMatrix(Foundation::CMatrix< float > *pMatPoseMatrix) const
float m_f32SHOTCoefficient
Definition Registration3D.h:1028
virtual const CResult Execute() override
const CRegistration3D & operator=(const CRegistration3D &Registration3D)
virtual const CResult GetResultRotationVector(Base::CFLArray< double > &flaResultRotationVector) const
virtual const CResult GetResultPoseMatrix(Foundation::CMatrix< double > *pMatPoseMatrix) const
EEulerSequence
The order of rotations.
Definition DefinitionsMathematics.h:240
Definition Algorithm3DBase.h:16