Beispiel #1
0
        private void RenderElement(bool altColor, ref TimeSpan startTime, ref TimeSpan intervalTime, ElementNode element)
        {
            EffectIntents result;

            if ((StaticColor1 && altColor) || StaticColor2 && !altColor)
            {
                var level = new SetLevel.SetLevel();
                level.TargetNodes    = new ElementNode[] { element };
                level.Color          = altColor ? Color1 : Color2;
                level.TimeSpan       = intervalTime;
                level.IntensityLevel = altColor ? IntensityLevel1 : IntensityLevel2;
                result = level.Render();
            }
            else
            {
                var pulse = new Pulse.Pulse();
                pulse.TargetNodes   = new ElementNode[] { element };
                pulse.TimeSpan      = intervalTime;
                pulse.ColorGradient = altColor ? ColorGradient1 : ColorGradient2;
                pulse.LevelCurve    = altColor ? Curve1 : Curve2;
                result = pulse.Render();
            }

            result.OffsetAllCommandsByTime(startTime);
            _elementData.Add(result);
        }
Beispiel #2
0
        private EffectIntents CreateIntentsForPhoneme(ElementNode element, double intensity, Color color, TimeSpan duration)
        {
            EffectIntents result;
            var           level = new SetLevel.SetLevel();

            level.TargetNodes    = new[] { element };
            level.Color          = color;
            level.IntensityLevel = intensity;
            level.TimeSpan       = duration;
            result = level.Render();
            return(result);
        }
Beispiel #3
0
        // renders the given node to the internal ElementData dictionary. If the given node is
        // not a element, will recursively descend until we render its elements.
        private void RenderNode(ElementNode node)
        {
            EffectIntents      result;
            LipSyncMapData     mapData     = null;
            List <ElementNode> renderNodes = TargetNodes.SelectMany(x => x.GetNodeEnumerator()).ToList();

            if (_data.PhonemeMapping != null)
            {
                if (!_library.Library.ContainsKey(_data.PhonemeMapping))
                {
                    _data.PhonemeMapping = _library.DefaultMappingName;
                }

                PhonemeType phoneme = _data.StaticPhoneme;
                if (_library.Library.TryGetValue(_data.PhonemeMapping, out mapData))
                {
                    renderNodes.ForEach(delegate(ElementNode element)
                    {
                        LipSyncMapItem item = mapData.FindMapItem(element.Name);
                        if (item != null)
                        {
                            if (mapData.PhonemeState(element.Name, _data.StaticPhoneme.ToString(), item))
                            {
                                var level            = new SetLevel.SetLevel();
                                level.TargetNodes    = new ElementNode[] { element };
                                level.Color          = mapData.ConfiguredColor(element.Name, phoneme, item);
                                level.IntensityLevel = mapData.ConfiguredIntensity(element.Name, phoneme, item);
                                level.TimeSpan       = TimeSpan;
                                result = level.Render();
                                _elementData.Add(result);
                            }
                        }
                    });
                }
            }
        }
Beispiel #4
0
        private void RenderElement(bool altColor, ref TimeSpan startTime, ref System.TimeSpan intervalTime,
            ref LightingValue? lightingValue, ElementNode element)
        {
            EffectIntents result;

            if ((StaticColor1 && altColor) || StaticColor2 && !altColor) {

                var level = new SetLevel.SetLevel();
                level.TargetNodes = new ElementNode[] { element };
                level.Color = altColor ? Color1 : Color2;
                level.TimeSpan = intervalTime;

                result = level.Render();

            } else {
                var pulse = new Pulse.Pulse();
                pulse.TargetNodes = new ElementNode[] { element };
                pulse.TimeSpan = intervalTime;
                pulse.ColorGradient = altColor ? ColorGradient1 : ColorGradient2;
                pulse.LevelCurve = altColor ? Curve1 : Curve2;
                result = pulse.Render();
            }

            result.OffsetAllCommandsByTime(startTime);
            _elementData.Add(result);
        }
Beispiel #5
0
        // renders the given node to the internal ElementData dictionary. If the given node is
        // not a element, will recursively descend until we render its elements.
        private void RenderNode(ElementNode node)
        {
            EffectIntents result;
            LipSyncMapData mapData = null;
            List<ElementNode> renderNodes = TargetNodes.SelectMany(x => x.GetNodeEnumerator()).ToList();

            if (_data.PhonemeMapping != null)
            {
                if (!_library.Library.ContainsKey(_data.PhonemeMapping))
                {
                    _data.PhonemeMapping = _library.DefaultMappingName;
                }

                PhonemeType phoneme = _data.StaticPhoneme;
                if (_library.Library.TryGetValue(_data.PhonemeMapping, out mapData))
                {

                    renderNodes.ForEach(delegate(ElementNode element)
                    {
                        LipSyncMapItem item = mapData.FindMapItem(element.Name);
                        if (item != null)
                        {
                            if (mapData.PhonemeState(element.Name, _data.StaticPhoneme.ToString(), item))
                            {
                                var level = new SetLevel.SetLevel();
                                level.TargetNodes = new ElementNode[] { element };
                                level.Color = mapData.ConfiguredColor(element.Name, phoneme, item);
                                level.IntensityLevel = mapData.ConfiguredIntensity(element.Name, phoneme, item);
                                level.TimeSpan = TimeSpan;
                                result = level.Render();
                                _elementData.Add(result);
                            }

                        }
                    });

                }

            }
        }