Skip to content

Commit f919c20

Browse files
authored
Merge pull request #1012 from JuliaRobotics/24Q1/enh/featm_peform
Use mutating unionFeatureMountain!
2 parents cc5a2be + adfd400 commit f919c20

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

ext/CaesarImagesExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import Caesar: PackedScatterAlignPose2, PackedScatterAlignPose3
3838
import Caesar: ImageTracks, FEATURE_VIA, FeatTrackValue, FeaturesDict, FeatureTracks, FeatureMountain, PIXELTRACK, MANYTRACKS
3939
import Caesar: addFeatureTracks_Frame1_Q!, addFeatureTracks_Frame2_PfwdQ!, addFeatureTracks_Frame2_QbckR!
4040
import Caesar: addFeatureTracks, consolidateFeatureTracks!, summarizeFeatureTracks!, buildFeatureMountain, buildFeatureMountainDistributed
41-
import Caesar: unionFeatureMountain, sortKeysMinSighting
41+
import Caesar: unionFeatureMountain, unionFeatureMountain!, sortKeysMinSighting
4242

4343
# NOTE usage requires ImageFeatures.jl
4444
import Caesar: curateFeatureTracks

ext/Images/FeatureMountain.jl

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -411,8 +411,6 @@ end
411411

412412
## union features
413413

414-
415-
416414
function unionFeatureMountain(
417415
fMa::Dict{Tuple{Symbol,Int},MANYTRACKS},
418416
fMb::Dict{Tuple{Symbol,Int},MANYTRACKS},
@@ -437,7 +435,27 @@ function unionFeatureMountain(
437435
return rM
438436
end
439437

440-
438+
function unionFeatureMountain!(
439+
fMa::Dict{Tuple{Symbol,Int},MANYTRACKS},
440+
fMb::Dict{Tuple{Symbol,Int},MANYTRACKS},
441+
)
442+
# Modify fMa by adding everything from fMb
443+
for (ka,va) in fMb
444+
# @info ka
445+
# union if already exists
446+
if haskey(fMa, ka)
447+
# @info "CHECK TYPES" typeof(fMb[ka]) typeof(fMa[ka])
448+
for (kr,vr) in va
449+
if !haskey(fMa[ka], kr)
450+
fMa[ka][kr] = vr # union(fMb[ka], fMa[ka])
451+
end
452+
end
453+
else
454+
fMa[ka] = va
455+
end
456+
end
457+
return fMa
458+
end
441459

442460
function sortKeysMinSighting(
443461
featM::Dict{Tuple{Symbol,Int},<:Any};
@@ -492,10 +510,10 @@ function buildFeatureMountainDistributed(
492510
featM = deepcopy(featM_1[1])
493511
# union other tracks into featM
494512
for fM in featM_1[2:end]
495-
featM = Caesar.unionFeatureMountain(featM, fM)
513+
featM = Caesar.unionFeatureMountain!(featM, fM)
496514
end
497515
for fM in featM_2
498-
featM = Caesar.unionFeatureMountain(featM, fM)
516+
featM = Caesar.unionFeatureMountain!(featM, fM)
499517
end
500518

501519
return featM

ext/WeakdepsPrototypes.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ function buildFeatureMountain end
9696
function buildFeatureMountainDistributed end
9797

9898
function unionFeatureMountain end
99+
function unionFeatureMountain! end
99100
function sortKeysMinSighting end
100101

101102
## ==============================================

0 commit comments

Comments
 (0)