using System.Collections.Generic; namespace NGS.MeshFusionPro; public class DynamicObjectsCombiner : ObjectsCombiner { private ICombinedMeshFactory _factory; private DynamicCombinedObjectMatcher _matcher; private int _vertexLimit; public DynamicObjectsCombiner(ICombinedMeshFactory factory, int vertexLimit) { _factory = factory; _matcher = new DynamicCombinedObjectMatcher(vertexLimit); _vertexLimit = vertexLimit; } public override void AddSource(DynamicCombineSource source) { if (source.Base.CombineInfo.vertexCount < _vertexLimit) { base.AddSource(source); } } protected override void CombineSources(DynamicCombinedObject root, IList sources) { root.Combine(sources); } protected override DynamicCombinedObject CreateCombinedObject(DynamicCombineSource source) { return DynamicCombinedObject.Create(_factory, source.Base.RendererSettings); } protected override CombinedObjectMatcher GetMatcher() { return _matcher; } }