@@ -109,7 +109,7 @@ return a `Dict{String, ContactPairMaterial}` dictionary.
109109"""
110110function readContactPairMaterialFromJSON (filename:: AbstractString )
111111 dataJSON = JSON. parsefile (filename)
112- palette = Dict {TwoNamesKey, Modia3D.AbstractContactPairMaterial} ()
112+ palette = OrderedCollections . OrderedDict {TwoNamesKey, Modia3D.AbstractContactPairMaterial} ()
113113 for (namesPair,dataPair) in dataJSON
114114 # Split a key "name1,name2" in two parts
115115 i = findfirst (" ," , namesPair)
@@ -132,14 +132,17 @@ end
132132
133133
134134"""
135- contactPairMaterialPalette
135+ const contactPairMaterialPalette
136136
137137Dictionary of contact pair material data, see [`ElasticContactPairMaterial`](@ref)
138138"""
139- contactPairMaterialPalette = readContactPairMaterialFromJSON ( joinpath (Modia3D. path, " palettes" , " contactPairMaterials.json" ) )
139+ const contactPairMaterialPalette = [ readContactPairMaterialFromJSON ( joinpath (Modia3D. path, " palettes" , " contactPairMaterials.json" ) )]
140140
141- function rereadContactPairMaterialFromJSON ()
142- global contactPairMaterialPalette = readContactPairMaterialFromJSON ( joinpath (Modia3D. path, " palettes" , " contactPairMaterials.json" ) )
141+ function rereadContactPairMaterialFromJSON (; file= " " )
142+ if file == " "
143+ file = joinpath (Modia3D. path, " palettes" , " contactPairMaterials.json" )
144+ end
145+ global contactPairMaterialPalette[1 ] = readContactPairMaterialFromJSON (file)
143146 return nothing
144147end
145148
@@ -154,11 +157,11 @@ function getContactPairMaterial(obj1, obj2)::Modia3D.AbstractContactPairMaterial
154157 name1 = obj1. feature. contactMaterial
155158 name2 = obj2. feature. contactMaterial
156159
157- value = get (contactPairMaterialPalette, TwoNamesKey (name1,name2), NoContactPairMaterial ())
160+ value = get (contactPairMaterialPalette[ 1 ] , TwoNamesKey (name1,name2), NoContactPairMaterial ())
158161 if typeof (value) == NoContactPairMaterial
159162 # Combination name1,name2 is not present
160- value1 = get (contactPairMaterialPalette, TwoNamesKey (name1,name1), NoContactPairMaterial ())
161- value2 = get (contactPairMaterialPalette, TwoNamesKey (name2,name2), NoContactPairMaterial ())
163+ value1 = get (contactPairMaterialPalette[ 1 ] , TwoNamesKey (name1,name1), NoContactPairMaterial ())
164+ value2 = get (contactPairMaterialPalette[ 1 ] , TwoNamesKey (name2,name2), NoContactPairMaterial ())
162165 if typeof (value1) != NoContactPairMaterial && typeof (value2) != NoContactPairMaterial
163166 return combineContactPairMaterials (value1, value2)
164167 else
@@ -179,11 +182,11 @@ function checkContactPairMaterialInit(obj1, obj2)::Nothing
179182 name1 = obj1. feature. contactMaterial
180183 name2 = obj2. feature. contactMaterial
181184
182- value = get (contactPairMaterialPalette, TwoNamesKey (name1,name2), NoContactPairMaterial ())
185+ value = get (contactPairMaterialPalette[ 1 ] , TwoNamesKey (name1,name2), NoContactPairMaterial ())
183186 if typeof (value) == NoContactPairMaterial
184187 # Combination name1,name2 is not present
185- value1 = get (contactPairMaterialPalette, TwoNamesKey (name1,name1), NoContactPairMaterial ())
186- value2 = get (contactPairMaterialPalette, TwoNamesKey (name2,name2), NoContactPairMaterial ())
188+ value1 = get (contactPairMaterialPalette[ 1 ] , TwoNamesKey (name1,name1), NoContactPairMaterial ())
189+ value2 = get (contactPairMaterialPalette[ 1 ] , TwoNamesKey (name2,name2), NoContactPairMaterial ())
187190 if typeof (value1) != NoContactPairMaterial && typeof (value2) != NoContactPairMaterial
188191 return nothing
189192 else
0 commit comments