Mod behavior model add cache object

This commit is contained in:
MrKBear 2022-04-04 22:22:16 +08:00
parent 8607dcd3da
commit dec18361ef

View File

@ -6,6 +6,11 @@ import type { Model } from "./Model";
import type { Range } from "./Range";
import type { Label } from "./Label";
type IObjectParamCacheType<P, Q = P> = {
picker: P;
objects: Q;
}
/**
*
*/
@ -16,12 +21,10 @@ type IMapBasicParamTypeKeyToType = {
}
type IMapObjectParamTypeKeyToType = {
"R"?: Range;
"G"?: Group;
"GR"?: Group | Range;
"LR"?: Label | Range;
"LG"?: Label | Group;
"LGR"?: Label | Group | Range;
"R": IObjectParamCacheType<Range | undefined>;
"G": IObjectParamCacheType<Group | undefined>;
"LR": IObjectParamCacheType<Label | Range | undefined, Range[]>;
"LG": IObjectParamCacheType<Label | Group | undefined, Range[]>;
}
type IMapVectorParamTypeKeyToType = {
@ -40,7 +43,7 @@ type IParamValue<K extends IParamType> = AllMapType[K];
/**
*
*/
const objectTypeListEnumSet = new Set<IParamType>(["R", "G", "GR", "LR", "LG", "LGR"]);
const objectTypeListEnumSet = new Set<IParamType>(["R", "G", "LR", "LG"]);
/**
*
@ -247,6 +250,22 @@ class BehaviorRecorder<
case "vec":
defaultObj[key] = [0, 0, 0] as any;
break;
case "G":
case "R":
defaultObj[key] = {
picker: undefined,
objects: undefined
} as any;
break;
case "LR":
case "LG":
defaultObj[key] = {
picker: undefined,
objects: []
} as any;
break;
}
}
}