private void GenerateStartingStaticPulse(ElementNode target, IIntentNode intentNode, ColorGradient gradient=null) { if (intentNode == null || intentNode.StartTime <= TimeSpan.Zero) return; var lightingIntent = intentNode.Intent as LightingIntent; if (lightingIntent != null && lightingIntent.StartValue.Intensity > 0) { var newCurve = new Curve(lightingIntent.StartValue.Intensity*100); GenerateStartingStaticPulse(target,newCurve, gradient ?? new ColorGradient(lightingIntent.StartValue.FullColor), intentNode.StartTime); } else { var discreteIntent = intentNode.Intent as DiscreteLightingIntent; if (discreteIntent != null && discreteIntent.StartValue.Intensity > 0) { var newCurve = new Curve(discreteIntent.StartValue.Intensity*100); GenerateStartingStaticPulse(target, newCurve, gradient ?? new ColorGradient(discreteIntent.StartValue.FullColor), intentNode.StartTime); } } }
private void GenerateStartingStaticPulse(ElementNode target, IIntentNode intentNode, ColorGradient gradient=null) { if (intentNode == null || intentNode.StartTime <= TimeSpan.Zero) return; var lightingIntent = intentNode.Intent as LightingIntent; if (lightingIntent!= null && lightingIntent.StartValue.Intensity > 0) { var newCurve = new Curve( new PointPairList(new PointPairList(new[] {0.0, 100}, new[] {lightingIntent.StartValue.Intensity*100, lightingIntent.StartValue.Intensity*100}))); var pulse = new Pulse.Pulse { TargetNodes = new[] {target}, LevelCurve = newCurve, ColorGradient = gradient ?? new ColorGradient(lightingIntent.StartValue.FullColor), TimeSpan = intentNode.StartTime }; EffectIntents result = pulse.Render(); _elementData.Add(result); } }
public static TimeSpan GetIntentRelativeTime(TimeSpan effectRelativeTime, IIntentNode intentNode) { return effectRelativeTime - intentNode.StartTime; }
public static TimeSpan GetEffectRelativeTime(TimeSpan intentRelativeTime, IIntentNode intentNode) { return intentNode.StartTime + intentRelativeTime; }
private void _AddIntentForElement(Guid elementId, IIntentNode intentNode) { _AddIntentsForElement(elementId, new IIntentNode[] { intentNode }); }
private void _AddIntentToElementStateBuilder(Guid elementId, IIntentNode intentNode, TimeSpan intentRelativeTime) { IIntentState intentState = intentNode.CreateIntentState(intentRelativeTime); _elementStateBuilder.AddElementState(elementId, intentState); }