Esempio n. 1
0
 /*
  * GridDrawer constructer takes in various parameters then sets them to setup the GridDrawer.
  */
 public GridDrawer(Graphics canvas, int Width, int Height, EShadingAlgorthims shadingEnum)
 {
     this.canvas      = canvas;
     this.Width       = Width;
     this.Height      = Height;
     shadingFactory   = new ShadingFactory();                            //Creates an instance of ShadingFactory
     ShadingAlgorithm = shadingFactory.CreateNewShadeing(shadingEnum);   //calls the CreateNewShadeing method of ShadingFactory to return the ShadingAlgorithm requested.
 }
Esempio n. 2
0
        /// <summary>
        /// init
        /// </summary>
        public void Init(EpsInterpreter interpreter, DictionaryOperand patternDict)
        {
            var shadingDict = patternDict.Dictionary.GetDictionary(EpsKeys.Shading);

            shading = ShadingActivator.CreateShading(interpreter, shadingDict);

            var matrixArray = patternDict.Dictionary.GetArray(EpsKeys.Matrix);

            matrix = OperandHelper.GetMatrix(matrixArray);
        }
Esempio n. 3
0
        /// <summary>
        /// Read one shading
        /// </summary>
        public static IShading CreateShading(EpsInterpreter interpreter, DictionaryOperand shadingDict)
        {
            IShading shadingDescriptor = null;
            var      shadingtype       = (IntegerOperand)shadingDict.Dictionary.Find(EpsKeys.ShadingType);

            switch (shadingtype.Value)
            {
            // linear
            case 2:
            {
                shadingDescriptor = new LinearGradientShading();
                break;
            }

            // radial
            case 3:
            {
                shadingDescriptor = new RadialGradientShading();
                break;
            }

            // function based
            case 1:

            // free-form Gouraud-shaded triangle mesh
            case 4:

            // Lattice-form Gouraud-shaded triangle mesh
            case 5:

            // coons path mesh
            case 6:

            // tensor-product path mesh
            case 7:
            default:
            {
                shadingDescriptor = new UnknownShading();
                break;
            }
            }

            shadingDescriptor.Init(interpreter, shadingDict);

            return(shadingDescriptor);
        }
Esempio n. 4
0
        /// <summary>
        /// Read one shading
        /// </summary>
        public static IShading ReadShading(PdfDictionary shadingDict)
        {
            IShading shadingDescriptor = null;
            var      shadingtype       = shadingDict.Elements.GetInteger(PdfKeys.ShadingType);

            switch (shadingtype)
            {
            // linear
            case 2:
            {
                shadingDescriptor = new LinearGradientShading();
                break;
            }

            // radial
            case 3:
            {
                shadingDescriptor = new RadialGradientShading();
                break;
            }

            // function based
            case 1:

            // free-form Gouraud-shaded triangle mesh
            case 4:

            // Lattice-form Gouraud-shaded triangle mesh
            case 5:

            // coons path mesh
            case 6:

            // tensor-product path mesh
            case 7:
            default:
            {
                shadingDescriptor = new UnknownShading();
                break;
            }
            }

            shadingDescriptor.Init(shadingDict);

            return(shadingDescriptor);
        }
Esempio n. 5
0
        /// <summary>
        /// init
        /// </summary>
        public void Init(PdfDictionary patternDict)
        {
            var shadingDict = patternDict.Elements.GetDictionary(PdfKeys.Shading);

            shading = ShadingManager.ReadShading(shadingDict);

            var matrixArray = patternDict.Elements.GetArray(PdfKeys.Matrix);

            if (matrixArray != null)
            {
                matrix = PdfUtilities.GetMatrix(matrixArray);
            }
            else
            {
                matrix = Matrix.Identity;
            }

            // I think we don't need to handle the extGState here
            // because it can't change anything we are interested in
            var extGStateDict = patternDict.Elements.GetDictionary(PdfKeys.ExtGState);
        }
Esempio n. 6
0
        /*
         * CreateNewShadeing takes in a enum representing the ShadingAlgorthim which is wanted.
         * The switch then creates that ShadingAlgorthim and returns it so the GridDrawer class does not need to know how its created.
         */
        public IShading CreateNewShadeing(EShadingAlgorthims shade)
        {
            IShading newShade = null;

            switch (shade)
            {
            case EShadingAlgorthims.GRAYSCALE:
                newShade = new GrayScale();
                break;

            case EShadingAlgorthims.SHORT_RAINBOW:
                newShade = new ShortRainbow();
                break;

            case EShadingAlgorthims.LONG_RAINBOW:
                newShade = new LongRainbow();
                break;

            case EShadingAlgorthims.YELLOW_TO_RED:
                newShade = new YellowToRed();
                break;
            }
            return(newShade);
        }
 public GeometricPrimitive(IIntersect shape, IShading mat)
 {
     Shape    = shape;
     Material = mat;
 }