39 lines
1.1 KiB
GDScript
39 lines
1.1 KiB
GDScript
extends Object
|
|
class_name ParamterList
|
|
|
|
var parameters: Dictionary[String,float] = {}
|
|
|
|
func numberOfParameters() -> int:
|
|
return parameters.size()
|
|
|
|
func get_Parameters() -> Dictionary[String,float]:
|
|
return parameters
|
|
|
|
func addParameter(name: String, value: float) -> void:
|
|
if parameters.has(name):
|
|
parameters[name] += value
|
|
else:
|
|
parameters[name] = value
|
|
|
|
func calculateParameterDistance(a:Dictionary[String,float],b:Dictionary[String,float]) -> float:
|
|
var total: Dictionary[String,float] = a.duplicate()
|
|
total.merge(b) ##total contains all keys
|
|
|
|
var c: Dictionary[String,float] ##c will be used to calculate the distance
|
|
var lengthC: float = 0 ##Return value
|
|
|
|
##For each param in total either subtract or add if only one has param
|
|
for param in total:
|
|
if b.has(param) and a.has(param):
|
|
c[param] = a[param] - b[param]
|
|
else:
|
|
c[param] = total[param]
|
|
|
|
##Add together all values
|
|
for param in c:
|
|
lengthC += pow(c[param],2)
|
|
## Squareroot to get length of n-Dimensional Vector made up of all entries of c (a - b = c)
|
|
lengthC = sqrt(lengthC)
|
|
|
|
return lengthC
|