示例#1
0
        public void Update(ISpread <Blob> availableBlobs)
        {
            var hits = TouchUtils.GetBlobHits(Id, availableBlobs);

            switch (Phase)
            {
            case TransformPhase.Idle:
                if (hits.Count > 0 && TouchUtils.IsAnyNew(hits))
                {
                    StartTransformtation(hits);
                }
                break;

            case TransformPhase.Transforming:
                var pCount = Blobs.Count();

                TouchUtils.UpdateBlobs(availableBlobs, Blobs, Id);
                TouchUtils.AddNewHits(hits.ToSpread(), Blobs);

                if (pCount != Blobs.SliceCount)
                {
                    PBlobs.SliceCount = 0;
                }
                if (Blobs.SliceCount == 0)
                {
                    StopTransformation();
                }
                break;
            }
        }
示例#2
0
        protected override void ProcessTransformation(int index)
        {
            var value = TouchUtils.CalculateTransform(TransformStates[index], TransformType.Translate);

            TransformStates[index].PDelta = value;

            TransformStates[index].TransformationValue += value;
        }