public void Transform(Matrix3 matrix) { if (Facets.Count < FacetCountThreshold) { Facets.ForEach(x => x.Transform(matrix)); } else { Facets.AsParallel().ForAll(x => x.Transform(matrix)); } dimensions = null; }
private ObjectDimensions CalcDimensions() { ObjectDimensions result = new ObjectDimensions(); if (Facets.Count > 0) { result.Initialize(Facets[0]); if (Facets.Count < FacetCountThreshold) { for (int i = 1; i < Facets.Count; i++) { result.Aggregate(Facets[i]); } } else { result = Facets.AsParallel().Aggregate(result, (acc, item) => { acc.Aggregate(item); return(acc); }); } } return(result); }