예제 #1
0
        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);
        }
예제 #2
0
        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);
        }