FLImaging 6.5.8.1
KDTreeGroup.h
1#pragma once
2
11#include "TRect.h"
12
14namespace FLImaging
15{
17 namespace Base
18 {
19 template<typename T>
20 class CFLArray;
21
22 template<template<typename> class T1, typename T2>
23 class CInternalKDTreeGroup;
24
44 template<template<typename> class T1, typename T2>
45 class FL_EXPORT CKDTreeGroup : public CFLBase
46 {
47 public:
56
70 CKDTreeGroup(const CFLArray<T1<T2>>& flaVertices, const CFLArray<int64_t>& flaGroupNumbers);
71
85 CKDTreeGroup(const CFLArray<T1<T2>>* pFlaVertices, const CFLArray<int64_t>* pFlaGroupNumbers);
86
94 virtual ~CKDTreeGroup();
95
107 const CResult Clear();
108
126 const CResult Build(const CFLArray<T1<T2>>& flaVertices, const CFLArray<int64_t>& flaGroupNumbers);
127
145 const CResult Build(const CFLArray<T1<T2>>* pFlaVertices, const CFLArray<int64_t>* pFlaGroupNumbers);
146
158 int64_t GetCount() const;
159
160
178 const CResult GetNearestNeighborsPoints(const T1<T2>& tpPoint, int32_t i32NearestNeighborsCount, CFLArray<T1<T2>>& flaResultPoints) const;
179
197 const CResult GetNearestNeighborsIndices(const T1<T2>& tpPoint, int32_t i32NearestNeighborsCount, CFLArray<uint64_t>& flaResultIndices) const;
198
216 const CResult GetNearestNeighborsIndices(const T1<T2>& tpPoint, int32_t i32NearestNeighborsCount, CFLArray<uint32_t>& flaResultIndices) const;
217
237 const CResult GetNearestNeighborsPointsAndIndices(const T1<T2>& tpPoint, int32_t i32NearestNeighborsCount, CFLArray<T1<T2>>& flaResultPoints, CFLArray<uint64_t>& flaResultIndices) const;
238
258 const CResult GetNearestNeighborsPointsAndIndices(const T1<T2>& tpPoint, int32_t i32NearestNeighborsCount, CFLArray<T1<T2>>& flaResultPoints, CFLArray<uint32_t>& flaResultIndices) const;
259
260
278 const CResult GetPointsInRange(const T1<T2>& tpLowerBound, const T1<T2>& tpUpperBound, CFLArray<T1<T2>>& flaResultPoints) const;
279
297 const CResult GetIndicesInRange(const T1<T2>& tpLowerBound, const T1<T2>& tpUpperBound, CFLArray<uint64_t>& flaResultIndices) const;
298
316 const CResult GetIndicesInRange(const T1<T2>& tpLowerBound, const T1<T2>& tpUpperBound, CFLArray<uint32_t>& flaResultIndices) const;
317
337 const CResult GetPointsAndIndicesInRange(const T1<T2>& tpLowerBound, const T1<T2>& tpUpperBound, CFLArray<T1<T2>>& flaResultPoints, CFLArray<uint64_t>& flaResultIndices) const;
338
358 const CResult GetPointsAndIndicesInRange(const T1<T2>& tpLowerBound, const T1<T2>& tpUpperBound, CFLArray<T1<T2>>& flaResultPoints, CFLArray<uint32_t>& flaResultIndices) const;
359
360
361
362
380 const CResult GetPointsInRadius(const T1<T2>& tpCenter, T2 tRadius, CFLArray<T1<T2>>& flaResultPoints) const;
381
399 const CResult GetIndicesInRadius(const T1<T2>& tpCenter, T2 tRadius, CFLArray<uint64_t>& flaResultIndices) const;
400
418 const CResult GetIndicesInRadius(const T1<T2>& tpCenter, T2 tRadius, CFLArray<uint32_t>& flaResultIndices) const;
419
439 const CResult GetPointsAndIndicesInRadius(const T1<T2>& tpCenter, T2 tRadius, CFLArray<T1<T2>>& flaResultPoints, CFLArray<uint64_t>& flaResultIndices) const;
440
460 const CResult GetPointsAndIndicesInRadius(const T1<T2>& tpCenter, T2 tRadius, CFLArray<T1<T2>>& flaResultPoints, CFLArray<uint32_t>& flaResultIndices) const;
461
462
463 const CResult AddExcludedGroupNumber(int64_t i64GroupNumber);
464 const CResult RemoveExcludedGroupNumber(int64_t i64GroupNumber);
465 const CResult ClearExcludedGroupNumbers();
466
467
468
482 const CResult OperateAdd(const T1<T2>& tpVector);
483
497 const CResult OperateMultiply(const T1<T2>& tpVector);
498
499 DeclareGetClassType();
500
501
502 protected:
503
504 CInternalKDTreeGroup<T1, T2>* m_pInternal;
505
506 friend class CInternalKDTreeGroup<T1, T2>;
507 };
508 }
509}
Template type 의 배열 클래스.
Definition RangeTree.h:19
FLImaging의 최상위 기저 클래스
Definition FLBase.h:36
KDTreeGroup 클래스. K 차원의 이진 탐색 트리.
Definition KDTreeGroup.h:46
const CResult OperateAdd(const T1< T2 > &tpVector)
모든 노드에 입력된 벡터를 더합니다.
const CResult GetPointsAndIndicesInRadius(const T1< T2 > &tpCenter, T2 tRadius, CFLArray< T1< T2 > > &flaResultPoints, CFLArray< uint64_t > &flaResultIndices) const
입력된 반경에 포함되는 정점을 탐색한 뒤 찾은 정점 좌표와 정점 인덱스를 지정된 개수만큼 반환한다.
const CResult Build(const CFLArray< T1< T2 > > *pFlaVertices, const CFLArray< int64_t > *pFlaGroupNumbers)
데이터 구축
const CResult GetIndicesInRadius(const T1< T2 > &tpCenter, T2 tRadius, CFLArray< uint32_t > &flaResultIndices) const
입력된 반경에 포함되는 정점을 탐색한 뒤 찾은 정점 인덱스를 반환한다.
CKDTreeGroup(const CFLArray< T1< T2 > > &flaVertices, const CFLArray< int64_t > &flaGroupNumbers)
생성자
const CResult GetNearestNeighborsPointsAndIndices(const T1< T2 > &tpPoint, int32_t i32NearestNeighborsCount, CFLArray< T1< T2 > > &flaResultPoints, CFLArray< uint64_t > &flaResultIndices) const
입력된 정점에서 가장 가까운 정점을 탐색한 뒤 찾은 정점 좌표와 정점 인덱스를 지정된 개수만큼 반환한다.
const CResult GetIndicesInRange(const T1< T2 > &tpLowerBound, const T1< T2 > &tpUpperBound, CFLArray< uint32_t > &flaResultIndices) const
입력된 범위에 포함되는 정점을 탐색한 뒤 찾은 정점 인덱스를 반환한다.
const CResult GetNearestNeighborsIndices(const T1< T2 > &tpPoint, int32_t i32NearestNeighborsCount, CFLArray< uint32_t > &flaResultIndices) const
입력된 정점에서 가장 가까운 정점을 탐색한 뒤 찾은 정점 인덱스를 반환한다.
virtual ~CKDTreeGroup()
소멸자
const CResult GetNearestNeighborsPoints(const T1< T2 > &tpPoint, int32_t i32NearestNeighborsCount, CFLArray< T1< T2 > > &flaResultPoints) const
입력된 정점에서 가장 가까운 정점을 탐색한 뒤 찾은 정점 좌표를 반환한다.
const CResult GetPointsAndIndicesInRadius(const T1< T2 > &tpCenter, T2 tRadius, CFLArray< T1< T2 > > &flaResultPoints, CFLArray< uint32_t > &flaResultIndices) const
입력된 반경에 포함되는 정점을 탐색한 뒤 찾은 정점 좌표와 정점 인덱스를 지정된 개수만큼 반환한다.
const CResult GetIndicesInRange(const T1< T2 > &tpLowerBound, const T1< T2 > &tpUpperBound, CFLArray< uint64_t > &flaResultIndices) const
입력된 범위에 포함되는 정점을 탐색한 뒤 찾은 정점 인덱스를 반환한다.
const CResult GetNearestNeighborsPointsAndIndices(const T1< T2 > &tpPoint, int32_t i32NearestNeighborsCount, CFLArray< T1< T2 > > &flaResultPoints, CFLArray< uint32_t > &flaResultIndices) const
입력된 정점에서 가장 가까운 정점을 탐색한 뒤 찾은 정점 좌표와 정점 인덱스를 지정된 개수만큼 반환한다.
const CResult GetPointsAndIndicesInRange(const T1< T2 > &tpLowerBound, const T1< T2 > &tpUpperBound, CFLArray< T1< T2 > > &flaResultPoints, CFLArray< uint64_t > &flaResultIndices) const
입력된 범위에 포함되는 정점을 탐색한 뒤 찾은 정점 좌표와 정점 인덱스를 지정된 개수만큼 반환한다.
const CResult GetPointsInRange(const T1< T2 > &tpLowerBound, const T1< T2 > &tpUpperBound, CFLArray< T1< T2 > > &flaResultPoints) const
입력된 범위에 포함되는 정점을 탐색한 뒤 찾은 정점 좌표를 반환한다.
const CResult OperateMultiply(const T1< T2 > &tpVector)
모든 노드에 입력된 벡터를 원소별로 곱합니다.
const CResult GetIndicesInRadius(const T1< T2 > &tpCenter, T2 tRadius, CFLArray< uint64_t > &flaResultIndices) const
입력된 반경에 포함되는 정점을 탐색한 뒤 찾은 정점 인덱스를 반환한다.
const CResult Build(const CFLArray< T1< T2 > > &flaVertices, const CFLArray< int64_t > &flaGroupNumbers)
데이터 구축
const CResult Clear()
데이터 비우기
int64_t GetCount() const
구축된 데이터의 원소 개수를 얻어옵니다
const CResult GetPointsAndIndicesInRange(const T1< T2 > &tpLowerBound, const T1< T2 > &tpUpperBound, CFLArray< T1< T2 > > &flaResultPoints, CFLArray< uint32_t > &flaResultIndices) const
입력된 범위에 포함되는 정점을 탐색한 뒤 찾은 정점 좌표와 정점 인덱스를 지정된 개수만큼 반환한다.
CKDTreeGroup(const CFLArray< T1< T2 > > *pFlaVertices, const CFLArray< int64_t > *pFlaGroupNumbers)
생성자
const CResult GetNearestNeighborsIndices(const T1< T2 > &tpPoint, int32_t i32NearestNeighborsCount, CFLArray< uint64_t > &flaResultIndices) const
입력된 정점에서 가장 가까운 정점을 탐색한 뒤 찾은 정점 인덱스를 반환한다.
const CResult GetPointsInRadius(const T1< T2 > &tpCenter, T2 tRadius, CFLArray< T1< T2 > > &flaResultPoints) const
입력된 반경에 포함되는 정점을 탐색한 뒤 찾은 정점 좌표를 반환한다.
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514