|  | @@ -8,6 +8,36 @@ def TellClasses():
 | 
	
		
			
				|  |  |              MathStaticVector,
 | 
	
		
			
				|  |  |             ]
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +def math_operation(operation, a, b):
 | 
	
		
			
				|  |  | +    match operation:
 | 
	
		
			
				|  |  | +        case "ADD":
 | 
	
		
			
				|  |  | +            return a+b
 | 
	
		
			
				|  |  | +        case "SUBTRACT":
 | 
	
		
			
				|  |  | +            return a-b
 | 
	
		
			
				|  |  | +        case "MULTIPLY":
 | 
	
		
			
				|  |  | +            return a*b
 | 
	
		
			
				|  |  | +        case "DIVIDE":
 | 
	
		
			
				|  |  | +            return a/b
 | 
	
		
			
				|  |  | +        case "FLOOR_DIVIDE":
 | 
	
		
			
				|  |  | +            return a//b
 | 
	
		
			
				|  |  | +        case "MODULUS":
 | 
	
		
			
				|  |  | +            return a%b
 | 
	
		
			
				|  |  | +        case "POWER":
 | 
	
		
			
				|  |  | +            return a**b
 | 
	
		
			
				|  |  | +        case "ABSOLUTE":
 | 
	
		
			
				|  |  | +            return abs(a)
 | 
	
		
			
				|  |  | +        case "MAXIMUM":
 | 
	
		
			
				|  |  | +            return max(a, b)
 | 
	
		
			
				|  |  | +        case "MINIMUM":
 | 
	
		
			
				|  |  | +            return min(a, b)
 | 
	
		
			
				|  |  | +        case "GREATER THAN":
 | 
	
		
			
				|  |  | +            return float(a > b)
 | 
	
		
			
				|  |  | +        case "LESS THAN":
 | 
	
		
			
				|  |  | +            return float(a < b)
 | 
	
		
			
				|  |  | +        case" ARCTAN2":
 | 
	
		
			
				|  |  | +            from math import atan2
 | 
	
		
			
				|  |  | +            return atan2(a,b)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #*#-------------------------------#++#-------------------------------#*#
 | 
	
		
			
				|  |  |  # M A T H  N O D E S
 | 
	
		
			
				|  |  |  #*#-------------------------------#++#-------------------------------#*#
 | 
	
	
		
			
				|  | @@ -32,32 +62,9 @@ class MathStaticInt(MantisNode):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def bPrepare(self, bContext = None,):
 | 
	
		
			
				|  |  |          a = self.evaluate_input("Int A"); b = self.evaluate_input("Int B")
 | 
	
		
			
				|  |  | -        result = float("NaN")
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "ADD":
 | 
	
		
			
				|  |  | -            result = int(a+b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "SUBTRACT":
 | 
	
		
			
				|  |  | -            result = int(a-b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MULTIPLY":
 | 
	
		
			
				|  |  | -            result = int(a*b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "FLOOR_DIVIDE":
 | 
	
		
			
				|  |  | -            result = a//b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MODULUS":
 | 
	
		
			
				|  |  | -            result = int(a%b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "POWER":
 | 
	
		
			
				|  |  | -            result = int(a**b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "ABSOLUTE":
 | 
	
		
			
				|  |  | -            result = int(abs(a))
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MAXIMUM":
 | 
	
		
			
				|  |  | -            result = int(a if a <= b else b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MINIMUM":
 | 
	
		
			
				|  |  | -            result = int(a if a >= b else b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "GREATER THAN":
 | 
	
		
			
				|  |  | -            result = int(a > b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "LESS THAN":
 | 
	
		
			
				|  |  | -            result = int(a < b)
 | 
	
		
			
				|  |  | -        self.parameters["Result Int"] = result
 | 
	
		
			
				|  |  | -        self.prepared = True
 | 
	
		
			
				|  |  | -        self.executed = True
 | 
	
		
			
				|  |  | +        result = math_operation(self.evaluate_input("Operation"), a, b)
 | 
	
		
			
				|  |  | +        self.parameters["Result Int"] = int(result)
 | 
	
		
			
				|  |  | +        self.prepared, self.executed = True, True
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class MathStaticFloat(MantisNode):
 | 
	
		
			
				|  |  |      '''A node representing an armature object'''
 | 
	
	
		
			
				|  | @@ -80,37 +87,9 @@ class MathStaticFloat(MantisNode):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def bPrepare(self, bContext = None,):
 | 
	
		
			
				|  |  |          a = self.evaluate_input("Float A"); b = self.evaluate_input("Float B")
 | 
	
		
			
				|  |  | -        result = float("NaN")
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "ADD":
 | 
	
		
			
				|  |  | -            result = a+b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "SUBTRACT":
 | 
	
		
			
				|  |  | -            result = a-b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MULTIPLY":
 | 
	
		
			
				|  |  | -            result = a*b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "DIVIDE":
 | 
	
		
			
				|  |  | -            result = a/b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "FLOOR_DIVIDE":
 | 
	
		
			
				|  |  | -            result = a//b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MODULUS":
 | 
	
		
			
				|  |  | -            result = a%b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "POWER":
 | 
	
		
			
				|  |  | -            result = a**b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "ABSOLUTE":
 | 
	
		
			
				|  |  | -            result = abs(a)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MAXIMUM":
 | 
	
		
			
				|  |  | -            result = a if a <= b else b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "MINIMUM":
 | 
	
		
			
				|  |  | -            result = a if a >= b else b
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "GREATER THAN":
 | 
	
		
			
				|  |  | -            result = float(a > b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "LESS THAN":
 | 
	
		
			
				|  |  | -            result = float(a < b)
 | 
	
		
			
				|  |  | -        if self.evaluate_input("Operation") == "ARCTAN2":
 | 
	
		
			
				|  |  | -            from math import atan2
 | 
	
		
			
				|  |  | -            result = atan2(a,b)
 | 
	
		
			
				|  |  | +        result = math_operation(self.evaluate_input("Operation"), a, b)
 | 
	
		
			
				|  |  |          self.parameters["Result Float"] = result
 | 
	
		
			
				|  |  | -        self.prepared = True
 | 
	
		
			
				|  |  | -        self.executed = True
 | 
	
		
			
				|  |  | +        self.prepared, self.executed = True, True
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class MathStaticVector(MantisNode):
 | 
	
		
			
				|  |  |      '''A node representing an armature object'''
 |