/* * 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. }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/* * 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; }