Current implementation:
abstract type LocalizationFeature{R,M} end
struct HoleLocalizationFeature{R<:AbstractHoleGeometry,M<:AbstractHoleGeometry} <: LocalizationFeature{R,M}
descriptor::FeatureDescriptor
rough::R
machined::M
end
struct PlaneLocalizationFeature{R<:AbstractPlaneGeometry,M<:AbstractPlaneGeometry} <: LocalizationFeature{R,M}
descriptor::FeatureDescriptor
rough::R
machined::M
end
Can I replace it with something like:
struct LocalizationFeature{R,M}
descriptor::FeatureDescriptor
rough::R
machined::M
end
const HoleLocalizationFeature = LocalizationFeature{R,M} where {R<:AbstractHoleGeometry,M<:AbstractHoleGeometry}
const PlaneLocalizationFeature = LocalizationFeature{R,M} where {R<:AbstractPlaneGeometry,M<:AbstractPlaneGeometry}
R and M must be handled separately, because it is possible, that those are of different types (a mesh hole type and a primitive hole type for example).
Does it change if #3 will be merged?
Current implementation:
Can I replace it with something like:
RandMmust be handled separately, because it is possible, that those are of different types (a mesh hole type and a primitive hole type for example).Does it change if #3 will be merged?