Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
        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);
        }