Example #1
0
            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();
            }
Example #2
0
        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;
        }