Skip to content

Commit c9e0323

Browse files
authored
Merge pull request #961 from JuliaRobotics/23Q1/fix/vnd_const
Fix VariableNodeData constructor
2 parents e663d9b + 2832a2f commit c9e0323

File tree

1 file changed

+5
-17
lines changed

1 file changed

+5
-17
lines changed

src/entities/DFGVariable.jl

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Base.@kwdef mutable struct VariableNodeData{T<:InferenceVariable, P}
2424
"""
2525
Vector of on-manifold points used to represent a ManifoldKernelDensity (or parametric) belief.
2626
"""
27-
val::Vector{P}
27+
val::Vector{P} = Vector{P}()
2828
"""
2929
Common kernel bandwith parameter used with ManifoldKernelDensity, and as legacy also stores covariance until a dedicated field is created for parametric case.
3030
"""
@@ -42,7 +42,7 @@ Base.@kwdef mutable struct VariableNodeData{T<:InferenceVariable, P}
4242
"""
4343
Variables each have a type, such as Position1, or RoME.Pose2, etc.
4444
"""
45-
variableType::T
45+
variableType::T = T()
4646
"""
4747
False if initial numerical values are not yet available or stored values are not ready for further processing yet.
4848
"""
@@ -70,7 +70,7 @@ Base.@kwdef mutable struct VariableNodeData{T<:InferenceVariable, P}
7070
"""
7171
solveKey identifier associated with thsi VariableNodeData object.
7272
"""
73-
solveKey::Symbol
73+
solveKey::Symbol = :default
7474
"""
7575
Future proofing field for when more multithreading operations on graph nodes are implemented, these conditions are meant to be used for atomic write transactions to this VND.
7676
"""
@@ -81,20 +81,8 @@ end
8181

8282
##------------------------------------------------------------------------------
8383
## Constructors
84-
85-
VariableNodeData{T,P}(;solveKey::Symbol=:default) where {T <: InferenceVariable, P} = VariableNodeData(; val=Vector{P}(), variableType=T(), solveKey)
86-
VariableNodeData{T}(;solveKey::Symbol=:default ) where T <: InferenceVariable = VariableNodeData(; solveKey, variableType=T(), val=Vector{getPointType(T)}()) # {T, getPointType(T)}
87-
88-
function VariableNodeData(variableType::T; solveKey::Symbol=:default) where T <: InferenceVariable
89-
#
90-
# p0 = getPointIdentity(T)
91-
val = Vector{getPointType(T)}()
92-
# P0[1] = p0
93-
bw = zeros(0,0)
94-
# bw[1] = zeros(getDimension(T))
95-
VariableNodeData(; val, bw, solveKey, variableType )
96-
end
97-
84+
VariableNodeData{T}(; kwargs...) where T <: InferenceVariable = VariableNodeData{T,getPointType(T)}(; kwargs...)
85+
VariableNodeData(variableType::InferenceVariable; kwargs...) = VariableNodeData{typeof(variableType)}(; kwargs...)
9886

9987

10088
##==============================================================================

0 commit comments

Comments
 (0)