public Shape Combine( Shape sourcePath, Shape destinationPath, CombinationOperation operation, float tolerance) { Contract.Requires(sourcePath != null); Contract.Requires(destinationPath != null); Contract.Requires(Check.IsPositive(tolerance)); Contract.Ensures(Contract.Result<Shape>() != null); throw new NotSupportedException(); }
public Shape CreateCombination( DxGeometry resolvedDestination, DxGeometry resolvedSource, CombinationOperation combination, float tolerance) { Contract.Requires(resolvedDestination != null); Contract.Requires(resolvedSource != null); Contract.Requires(Check.IsPositive(tolerance)); Contract.Ensures(Contract.Result<Shape>() != null); _Builder = Shape.Create(); CombineMode mode = CombineMode.Union; switch(combination) { case CombinationOperation.Intersect: mode = CombineMode.Intersect; break; case CombinationOperation.Combine: mode = CombineMode.Union; break; case CombinationOperation.Exclude: mode = CombineMode.Exclude; break; case CombinationOperation.Xor: mode = CombineMode.Xor; break; } resolvedDestination.Combine(resolvedSource, mode, tolerance, this); Shape result = _Builder.Build(); _Builder = null; return result; }