File tree Expand file tree Collapse file tree 1 file changed +11
-5
lines changed Expand file tree Collapse file tree 1 file changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -228,17 +228,23 @@ function Base.merge(meshes::AbstractVector{<:Mesh})
228228 elseif length (meshes) == 1
229229 return meshes[1 ]
230230 else
231- m1 = meshes[1 ]
232- ps = copy (coordinates (m1))
233- fs = copy (faces (m1))
231+ ps = reduce (vcat, coordinates .(meshes))
232+ fs = reduce (vcat, faces .(meshes))
233+ idx = length (faces (meshes[1 ]))
234+ offset = length (coordinates (meshes[1 ]))
234235 for mesh in Iterators. drop (meshes, 1 )
235- append! (fs, map (f -> f .+ length (ps), faces (mesh)))
236- append! (ps, coordinates (mesh))
236+ N = length (faces (mesh))
237+ for i = idx .+ (1 : N)
238+ fs[i] = fs[i] .+ offset
239+ end
240+ idx += N
241+ offset += length (coordinates (mesh))
237242 end
238243 return Mesh (ps, fs)
239244 end
240245end
241246
247+
242248"""
243249 pointmeta(mesh::Mesh; meta_data...)
244250
You can’t perform that action at this time.
0 commit comments