Beispiel #1
0
 public void SetTransform <T>() where T : IBundleTransform
 {
     if (HttpContext.Current.IsDebuggingEnabled)
     {
         Transforms.Clear();
     }
     else
     {
         var t = Activator.CreateInstance <T>();
         Transforms.Add(t);
     }
 }
Beispiel #2
0
 /// <inheritdoc />
 /// <summary>
 /// CAUTION: If you're using Read without Execute, make sure you consume enumerable before disposing
 /// </summary>
 public void Dispose()
 {
     foreach (var transform in Transforms)
     {
         transform.Dispose();
     }
     Transforms.Clear();
     Reader        = null;
     Writer        = null;
     Updater       = null;
     DeleteHandler = null;
 }
        private async void MainNew()
        {
            RenderMachine.MainRenderStop();
            await Task.Run(() =>
            {
                while (RenderMachine.IsRendering)
                {
                    Thread.Sleep(10);
                }
            });

            Transforms.Clear();
            RenderMachine.DestroyDisplay();
            ImageSource = null;
            ActRenderSetState(RenderMachine.StateRenderEnded);
            ActRenderSetMessage("New...");
        }
Beispiel #4
0
        protected virtual void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                IsDisposing = true;

                if (disposing)
                {
                    for (int i = Transforms.Count; i-- > 0;)
                    {
                        Transforms[i].Dispose();
                    }
                    Transforms.Clear();

                    Input.TextInput -= Input_TextInput;
                }

                IsDisposing = false;
                IsDisposed  = true;
            }
        }
Beispiel #5
0
        internal void ApplyNewColor(ExcelDrawingColorManager newColor, ExcelColorTransformCollection variation = null)
        {
            ColorType = newColor.ColorType;
            switch (newColor.ColorType)
            {
            case eDrawingColorType.Rgb:
                SetRgbColor(newColor.RgbColor.Color);
                break;

            case eDrawingColorType.RgbPercentage:
                SetRgbPercentageColor(newColor.RgbPercentageColor.RedPercentage, newColor.RgbPercentageColor.GreenPercentage, newColor.RgbPercentageColor.BluePercentage);
                break;

            case eDrawingColorType.Hsl:
                SetHslColor(newColor.HslColor.Hue, newColor.HslColor.Saturation, newColor.HslColor.Luminance);
                break;

            case eDrawingColorType.Preset:
                SetPresetColor(newColor.PresetColor.Color);
                break;

            case eDrawingColorType.System:
                SetSystemColor(newColor.SystemColor.Color);
                break;

            case eDrawingColorType.Scheme:
                SetSchemeColor(newColor.SchemeColor.Color);
                break;
            }
            //Variations should be added first, so temporary store the transforms and add the again
            var trans = Transforms.Where(x => ((ISource)x)._fromStyleTemplate == false).ToList();

            Transforms.Clear();
            if (variation != null)
            {
                ApplyNewTransform(variation);
            }
            ApplyNewTransform(trans);
            ApplyNewTransform(newColor.Transforms, true);
        }
        /// <summary>
        /// Reset the currently playing clip
        /// </summary>
        public void Reset()
        {
            _tickCount     = 0;
            AnimationSpeed = 1.0f;

            if (_clipSet && CurrentClip != null)
            {
                //first bone transform
                var transform = CurrentClip.Keys[0].BoneTransforms;
                Transforms.Clear();
                Transforms = (transform.ToList());
            }
            else
            {
                //fill with identity matrix
                Transforms.Clear();

                for (var i = 0; i < _mesh.AnimationData.BoneCount; ++i)
                {
                    Transforms.Add(Matrix.Identity);
                }
            }
        }
        public void ClearBlackBoard()
        {
            Objects.Clear();
            GameObjects.Clear();
            Transforms.Clear();
            Vectors.Clear();
            ScriptableObjects.Clear();

            Strings.Clear();
            Floats.Clear();
            Ints.Clear();
            Bools.Clear();

            ObjectLists.Clear();
            GameObjectLists.Clear();
            TransformLists.Clear();
            VectorLists.Clear();
            ScriptableObjectLists.Clear();

            StringLists.Clear();
            FloatLists.Clear();
            IntLists.Clear();
            BoolLists.Clear();
        }
        /// <summary>
        /// Loop through all the keyframes
        /// </summary>
        public void Animate()
        {
            //Do nothing when not playing or no clip is set
            if (!IsPlaying && !_clipSet)
            {
                return;
            }

            var passedTime = (float)(DateTime.Now - _prevFrameTime).Milliseconds / 1000;
            //Debug.Log(LogLevel.Info, string.Format("Time since Last Frame: {0}",passedTime));

            //Make sure that the passedTicks stay between the m_CurrentClip.Duration bounds
            double passedTicks = passedTime * CurrentClip.TicksPerSecond * AnimationSpeed;

            passedTicks = Math.IEEERemainder(passedTicks, CurrentClip.Duration);

            //Debug.Log(LogLevel.Info, string.Format("Ticks: {0}", passedTicks));

            _tickCount += (float)passedTicks;

            //Reset when reaching the end
            if (_tickCount > CurrentClip.Duration)
            {
                _tickCount -= CurrentClip.Duration;
            }

            //Find the enclosing keys
            //Iterate all the keys of the clip and find the following keys:
            //keyA > Closest Key with Tick before/smaller than m_TickCount
            //keyB > Closest Key with Tick after/bigger than m_TickCount
            AnimationKey keyA = null, keyB = null;
            var          prevKey = CurrentClip.Keys[0]; //start at first1
            var          found   = false;

            foreach (var k in CurrentClip.Keys)
            {
                if (!found && k.Tick > _tickCount && _tickCount > 0.0f && k.Tick != _tickCount)
                {
                    keyA  = prevKey;
                    keyB  = k;
                    found = true;
                }
                prevKey = k;
            }

            if (keyA == null || keyB == null)
            {
                return;
            }

            //lerp between keys
            var blendA = _tickCount - keyA.Tick;
            var blendB = 1.0f - blendA;

            blendB = _tickCount - blendB;
            var lerpAmount = blendA / blendB;

            Transforms.Clear();

            for (var i = 0; i < _mesh.AnimationData.BoneCount; ++i)
            {
                if (i >= keyA.BoneTransforms.Count || i >= keyB.BoneTransforms.Count)
                {
                    break;
                }

                Transforms.Add(Matrix.Lerp(keyA.BoneTransforms[i], keyB.BoneTransforms[i], lerpAmount));
            }


            _prevFrameTime = DateTime.Now;
        }