protected override void Start() { this.BeginStart(ref _started, base.Start); if (OneGrabTransformer != null) { Assert.IsNotNull(OneGrabTransformer); OneGrabTransformer.Initialize(this); } if (TwoGrabTransformer != null) { Assert.IsNotNull(TwoGrabTransformer); TwoGrabTransformer.Initialize(this); } // Create a default if no transformers assigned if (OneGrabTransformer == null && TwoGrabTransformer == null) { OneGrabFreeTransformer defaultTransformer = gameObject.AddComponent <OneGrabFreeTransformer>(); _oneGrabTransformer = defaultTransformer; OneGrabTransformer = defaultTransformer; OneGrabTransformer.Initialize(this); } this.EndStart(ref _started); }
public override Photo Process(Photo original, TParameters parameters) { var oldSize = new Size(original.Width, original.Height); transformer.Initialize(oldSize, parameters); var result = new Photo(transformer.ResultSize.Width, transformer.ResultSize.Height); for (var x = 0; x < result.Width; x++) { for (var y = 0; y < result.Height; y++) { var oldPoint = transformer.MapOrSmth(new Point(x, y)); if (oldPoint.HasValue) { result[x, y] = original[oldPoint.Value.X, oldPoint.Value.Y]; } } } return(result); }