Changeset - f31df46edfdd
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 20 months ago 2023-05-30 02:36:24
drewp@bigasterisk.com
reformat
1 file changed with 12 insertions and 10 deletions:
0 comments (0 inline, 0 general)
light9/effect/effecteval.py
Show inline comments
 
@@ -76,7 +76,7 @@ class EffectEval2:
 
    graph: SyncedGraph
 
    uri: EffectUri
 

	
 
    effectFunction: Optional[URIRef]=None
 
    effectFunction: Optional[URIRef] = None
 

	
 
    def __post_init__(self):
 
        self.graph.addHandler(self._compile)
 
@@ -86,34 +86,36 @@ class EffectEval2:
 
        if not self.graph.contains((self.uri, RDF.type, L9['Effect'])):
 
            raise ValueError(f'{self.uri} not an :Effect')
 

	
 
        self.function = effect_scale   
 
        self.function = effect_scale
 
        devs = []
 
        for s in self.graph.objects(self.uri, L9['setting']):
 
            d = typedValue(DeviceUri, self.graph, s, L9['device'])     
 
            da = typedValue(DeviceAttr, self.graph, s, L9['deviceAttr'])     
 
            d = typedValue(DeviceUri, self.graph, s, L9['device'])
 
            da = typedValue(DeviceAttr, self.graph, s, L9['deviceAttr'])
 
            v = typedValue(VTUnion, self.graph, s, L9['value'])
 
            devs.append((d, da, v))
 
        self.devs = DeviceSettings(self.graph, devs)
 

	
 
    def compute(self, inputs:EffectSettings) -> DeviceSettings:
 
    def compute(self, inputs: EffectSettings) -> DeviceSettings:
 

	
 
        s=0
 
        for e,ea,v in inputs.asList():
 
        s = 0
 
        for e, ea, v in inputs.asList():
 
            if not isinstance(v, float):
 
                raise TypeError
 
            if ea==L9['strength']:
 
            if ea == L9['strength']:
 
                s = v
 

	
 
        return effect_scale(s,self.devs )
 
        return effect_scale(s, self.devs)
 

	
 
        return self.function(inputs)
 

	
 

	
 
def effect_scale(strength: float, devs: DeviceSettings) -> DeviceSettings:
 
    out = []
 
    for d,da,v in devs.asList():
 
    for d, da, v in devs.asList():
 
        out.append((d, da, scale(v, strength)))
 
    return DeviceSettings(devs.graph, out)
 

	
 

	
 
@dataclass
 
class EffectEval:
 
    """
0 comments (0 inline, 0 general)