pgroup arithmetic

This commit is contained in:
David
2023-12-11 12:30:40 -08:00
parent db132b6b61
commit 3c0235a892
+80 -1
View File
@@ -604,6 +604,42 @@ class KfAddCurveToPGroup:
parameter_group.parameters[curve.label] = curve
return (parameter_group,)
class KfAddCurveToPGroupx10:
CATEGORY = CATEGORY
FUNCTION = "main"
#RETURN_TYPES = ("KEYFRAMED_CURVE",)
RETURN_TYPES = ("PARAMETER_GROUP",)
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"curve0": ("KEYFRAMED_CURVE",{"forceInput": True,}),
},
"optional": {
"parameter_group": ("PARAMETER_GROUP",{"forceInput": True,}),
"curve1": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve2": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve3": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve4": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve5": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve6": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve7": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve8": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve9": ("KEYFRAMED_CURVE",{"forceInput": True,}),
},
}
def main(self, parameter_group=None, **kwargs):
if parameter_group is None:
#parameter_group = kf.ParameterGroup({curve.label:curve})
parameter_group = kf.ParameterGroup(kwargs)
else:
parameter_group = deepcopy(parameter_group)
for curve in parameter_group.values():
parameter_group.parameters[curve.label] = curve
return (parameter_group,)
class KfGetCurveFromPGroup:
CATEGORY = CATEGORY
@@ -633,6 +669,46 @@ class KfGetCurveFromPGroup:
##################################################################
# Curve vs. PGroup Arithmetic
class KfPGroupCurveAdd:
CATEGORY = CATEGORY
FUNCTION = "main"
RETURN_TYPES = ("PARAMETER_GROUP",)
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"parameter_group": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve": ("KEYFRAMED_CURVE",{"forceInput": True,}),
},
}
def main(self, parameter_group, curve):
parameter_group = deepcopy(parameter_group)
curve = deepcopy(curve)
return (parameter_group + curve, )
class KfPGroupCurveMultiply:
CATEGORY = CATEGORY
FUNCTION = "main"
RETURN_TYPES = ("PARAMETER_GROUP",)
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"parameter_group": ("KEYFRAMED_CURVE",{"forceInput": True,}),
"curve": ("KEYFRAMED_CURVE",{"forceInput": True,}),
},
}
def main(self, parameter_group, curve):
parameter_group = deepcopy(parameter_group)
curve = deepcopy(curve)
return (parameter_group * curve, )
##################################################################
@@ -667,6 +743,10 @@ NODE_CLASS_MAPPINGS = {
#######################################
"KfAddCurveToPGroup": KfAddCurveToPGroup,
"KfGetCurveFromPGroup": KfGetCurveFromPGroup,
"KfAddCurveToPGroupx10": KfAddCurveToPGroupx10,
#######################################
"KfPGroupCurveAdd":KfPGroupCurveAdd,
"KfPGroupCurveMultiply":KfPGroupCurveMultiply,
#######################################
#"KfCurveToAcnLatentKeyframe": KfCurveToAcnLatentKeyframe,
#######################################
@@ -682,7 +762,6 @@ NODE_CLASS_MAPPINGS = {
"KfConditioningAddx10":KfConditioningAddx10,
"KfCurvesAddx10":KfCurvesAddx10,
"KfCurvesMultiplyx10":KfCurvesMultiplyx10,
}
# A dictionary that contains the friendly/humanly readable titles for the nodes