@intelligentgraphics/3d.ig.gfx.standard 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,89 @@
1
1
  /*
2
- * Version: 1.11.0.100
3
- * Commit: 77f9ef0
4
- * Date: 2025-08-04T17:01:15.269Z
2
+ * Version: 1.12.0.100
3
+ * Commit: 42607a7
4
+ * Date: 2026-01-22T08:33:20.048Z
5
5
  *
6
6
  * @preserve
7
7
  */
8
+ /// <reference path="../node_modules/@types/node/compatibility/iterators.d.ts" />
9
+ /// <reference path="../node_modules/@types/node/globals.typedarray.d.ts" />
10
+ /// <reference path="../node_modules/@types/node/buffer.buffer.d.ts" />
11
+ /// <reference path="../node_modules/@types/node/globals.d.ts" />
12
+ /// <reference path="../node_modules/@types/node/web-globals/abortcontroller.d.ts" />
13
+ /// <reference path="../node_modules/@types/node/web-globals/blob.d.ts" />
14
+ /// <reference path="../node_modules/@types/node/web-globals/console.d.ts" />
15
+ /// <reference path="../node_modules/@types/node/web-globals/crypto.d.ts" />
16
+ /// <reference path="../node_modules/@types/node/web-globals/domexception.d.ts" />
17
+ /// <reference path="../node_modules/@types/node/web-globals/encoding.d.ts" />
18
+ /// <reference path="../node_modules/@types/node/web-globals/events.d.ts" />
19
+ /// <reference path="../node_modules/@types/node/web-globals/fetch.d.ts" />
20
+ /// <reference path="../node_modules/@types/node/web-globals/importmeta.d.ts" />
21
+ /// <reference path="../node_modules/@types/node/web-globals/messaging.d.ts" />
22
+ /// <reference path="../node_modules/@types/node/web-globals/navigator.d.ts" />
23
+ /// <reference path="../node_modules/@types/node/web-globals/performance.d.ts" />
24
+ /// <reference path="../node_modules/@types/node/web-globals/storage.d.ts" />
25
+ /// <reference path="../node_modules/@types/node/web-globals/streams.d.ts" />
26
+ /// <reference path="../node_modules/@types/node/web-globals/timers.d.ts" />
27
+ /// <reference path="../node_modules/@types/node/web-globals/url.d.ts" />
28
+ /// <reference path="../node_modules/@types/node/assert.d.ts" />
29
+ /// <reference path="../node_modules/@types/node/assert/strict.d.ts" />
30
+ /// <reference path="../node_modules/@types/node/async_hooks.d.ts" />
31
+ /// <reference path="../node_modules/@types/node/buffer.d.ts" />
32
+ /// <reference path="../node_modules/@types/node/child_process.d.ts" />
33
+ /// <reference path="../node_modules/@types/node/cluster.d.ts" />
34
+ /// <reference path="../node_modules/@types/node/console.d.ts" />
35
+ /// <reference path="../node_modules/@types/node/constants.d.ts" />
36
+ /// <reference path="../node_modules/@types/node/crypto.d.ts" />
37
+ /// <reference path="../node_modules/@types/node/dgram.d.ts" />
38
+ /// <reference path="../node_modules/@types/node/diagnostics_channel.d.ts" />
39
+ /// <reference path="../node_modules/@types/node/dns.d.ts" />
40
+ /// <reference path="../node_modules/@types/node/dns/promises.d.ts" />
41
+ /// <reference path="../node_modules/@types/node/domain.d.ts" />
42
+ /// <reference path="../node_modules/@types/node/events.d.ts" />
43
+ /// <reference path="../node_modules/@types/node/fs.d.ts" />
44
+ /// <reference path="../node_modules/@types/node/fs/promises.d.ts" />
45
+ /// <reference path="../node_modules/@types/node/http.d.ts" />
46
+ /// <reference path="../node_modules/@types/node/http2.d.ts" />
47
+ /// <reference path="../node_modules/@types/node/https.d.ts" />
48
+ /// <reference path="../node_modules/@types/node/inspector.d.ts" />
49
+ /// <reference path="../node_modules/@types/node/inspector.generated.d.ts" />
50
+ /// <reference path="../node_modules/@types/node/inspector/promises.d.ts" />
51
+ /// <reference path="../node_modules/@types/node/module.d.ts" />
52
+ /// <reference path="../node_modules/@types/node/net.d.ts" />
53
+ /// <reference path="../node_modules/@types/node/os.d.ts" />
54
+ /// <reference path="../node_modules/@types/node/path.d.ts" />
55
+ /// <reference path="../node_modules/@types/node/path/posix.d.ts" />
56
+ /// <reference path="../node_modules/@types/node/path/win32.d.ts" />
57
+ /// <reference path="../node_modules/@types/node/perf_hooks.d.ts" />
58
+ /// <reference path="../node_modules/@types/node/process.d.ts" />
59
+ /// <reference path="../node_modules/@types/node/punycode.d.ts" />
60
+ /// <reference path="../node_modules/@types/node/querystring.d.ts" />
61
+ /// <reference path="../node_modules/@types/node/quic.d.ts" />
62
+ /// <reference path="../node_modules/@types/node/readline.d.ts" />
63
+ /// <reference path="../node_modules/@types/node/readline/promises.d.ts" />
64
+ /// <reference path="../node_modules/@types/node/repl.d.ts" />
65
+ /// <reference path="../node_modules/@types/node/sea.d.ts" />
66
+ /// <reference path="../node_modules/@types/node/sqlite.d.ts" />
67
+ /// <reference path="../node_modules/@types/node/stream.d.ts" />
68
+ /// <reference path="../node_modules/@types/node/stream/consumers.d.ts" />
69
+ /// <reference path="../node_modules/@types/node/stream/promises.d.ts" />
70
+ /// <reference path="../node_modules/@types/node/stream/web.d.ts" />
71
+ /// <reference path="../node_modules/@types/node/string_decoder.d.ts" />
72
+ /// <reference path="../node_modules/@types/node/test.d.ts" />
73
+ /// <reference path="../node_modules/@types/node/test/reporters.d.ts" />
74
+ /// <reference path="../node_modules/@types/node/timers.d.ts" />
75
+ /// <reference path="../node_modules/@types/node/timers/promises.d.ts" />
76
+ /// <reference path="../node_modules/@types/node/tls.d.ts" />
77
+ /// <reference path="../node_modules/@types/node/trace_events.d.ts" />
78
+ /// <reference path="../node_modules/@types/node/tty.d.ts" />
79
+ /// <reference path="../node_modules/@types/node/url.d.ts" />
80
+ /// <reference path="../node_modules/@types/node/util.d.ts" />
81
+ /// <reference path="../node_modules/@types/node/util/types.d.ts" />
82
+ /// <reference path="../node_modules/@types/node/v8.d.ts" />
83
+ /// <reference path="../node_modules/@types/node/vm.d.ts" />
84
+ /// <reference path="../node_modules/@types/node/wasi.d.ts" />
85
+ /// <reference path="../node_modules/@types/node/worker_threads.d.ts" />
86
+ /// <reference path="../node_modules/@types/node/zlib.d.ts" />
8
87
  /// <reference types="@intelligentgraphics/3d.ig.gfx.core" preserve="true" />
9
88
  /// <reference types="@intelligentgraphics/3d.ig.math" preserve="true" />
10
89
  declare const globalObject: typeof globalThis;
@@ -131,7 +210,7 @@ declare namespace IGX.Std {
131
210
  function findGlobalByPath<T>(path: string): T | undefined;
132
211
  }
133
212
  declare namespace IGX.Std {
134
- class KinematicChain {
213
+ interface KinematicChain {
135
214
  /** how are these joints inserted? (unit vector for all joints) */
136
215
  GeometryBase: string;
137
216
  /**
@@ -140,45 +219,48 @@ declare namespace IGX.Std {
140
219
  * All joints are connected with its next joint (0.tail -> 1.head).
141
220
  * So the right order inside joints array is important!
142
221
  */
143
- Joints: [
144
- {
145
- /** (optional) name of this joint */
146
- Name?: string;
147
- /** component id for head (relative path from interaktor node) */
148
- HeadX: string;
149
- /** component id for head (relative path from interaktor node) */
150
- HeadY: string;
151
- /** component id for head (relative path from interaktor node) */
152
- HeadZ: string;
153
- /** component id for tail (relative path from interaktor node) */
154
- Tail: string;
155
- /** (optional)(experimental) how is this joint inserted? (will override defined GeometryDirection) */
156
- GeometryBase?: string;
157
- /**
158
- * (optional) this joint strictly follows a node from another joint.
159
- * Needs path to node in other joint. Used as Head for this joint.
160
- */
161
- FollowJointNode?: string;
162
- /** (optional) max angle (DEG) for rotation to the left (affects position of Head) */
163
- LimitLeft?: number;
164
- /** (optional) max angle (DEG) for rotation to the right (affects position of Head) */
165
- LimitRight?: number;
166
- /** (optional) max angle (DEG) for rotation to the up (affects position of Head) */
167
- LimitUp?: number;
168
- /** (optional) max angle (DEG) for rotation to the bottom (affects position of Head) */
169
- LimitDown?: number;
170
- /** internal */
171
- _Length?: number;
172
- /** internal */
173
- _HeadPos?: IG.Math.Vector3;
174
- /** internal */
175
- _TailPos?: IG.Math.Vector3;
176
- /** internal */
177
- _Rotation?: IG.Math.Quaternion;
178
- /** internal */
179
- _Blocked?: boolean;
180
- }
181
- ];
222
+ Joints: {
223
+ /** (optional) name of this joint */
224
+ Name?: string;
225
+ /** component id for head (relative path from interaktor node) */
226
+ HeadX: string;
227
+ /** component id for head (relative path from interaktor node) */
228
+ HeadY: string;
229
+ /** component id for head (relative path from interaktor node) */
230
+ HeadZ: string;
231
+ /** component id for tail (relative path from interaktor node) */
232
+ Tail: string;
233
+ /** (optional)(experimental) how is this joint inserted? (will override defined GeometryDirection) */
234
+ GeometryBase?: string;
235
+ /**
236
+ * (optional) this joint strictly follows a node from another joint.
237
+ * Needs path to node in other joint. Used as Head for this joint.
238
+ */
239
+ FollowJointNode?: string;
240
+ /** (optional) max angle (DEG) for rotation to the left (affects position of Head) */
241
+ LimitLeft?: number;
242
+ /** (optional) max angle (DEG) for rotation to the right (affects position of Head) */
243
+ LimitRight?: number;
244
+ /** (optional) max angle (DEG) for rotation to the up (affects position of Head) */
245
+ LimitUp?: number;
246
+ /** (optional) max angle (DEG) for rotation to the bottom (affects position of Head) */
247
+ LimitDown?: number;
248
+ _HeadXComponentId: string;
249
+ _HeadYComponentId: string;
250
+ _HeadZComponentId: string;
251
+ _TailComponentId: string;
252
+ _FollowJointNodeComponentId: string;
253
+ /** internal */
254
+ _Length?: number;
255
+ /** internal */
256
+ _HeadPos?: IG.Math.Vector3;
257
+ /** internal */
258
+ _TailPos?: IG.Math.Vector3;
259
+ /** internal */
260
+ _Rotation?: IG.Math.Quaternion;
261
+ /** internal */
262
+ _Blocked?: boolean;
263
+ }[];
182
264
  /** Absolute path (+ component id) to target node. When using multi target kinematics this can be set to "subbase". */
183
265
  Target: string;
184
266
  /**
@@ -200,12 +282,15 @@ declare namespace IGX.Std {
200
282
  _Level?: number;
201
283
  /** internal */
202
284
  _Origin?: string;
285
+ _OriginComponentId: string;
286
+ _TargetComponentId: string;
203
287
  /** internal */
204
288
  _TotalLength?: number;
205
289
  /** internal */
206
290
  _OriginPos?: IG.Math.Vector3;
207
291
  /** internal */
208
292
  _TargetPos?: IG.Math.Vector3;
293
+ _RelativePositionCache: Record<string, IG.Math.Vector3>;
209
294
  }
210
295
  }
211
296
  /** Data-controlled IG.GFX Animations.
@@ -349,13 +434,34 @@ declare namespace IGX.Std {
349
434
  * @export
350
435
  * @class ApiConnection
351
436
  */
352
- export class ApiConnection {
437
+ export class ApiConnection implements _API {
353
438
  private shadow?;
354
439
  private useShadowApi;
355
440
  private debug;
356
441
  callLog: string[];
357
442
  printCallAsError: boolean;
358
443
  constructor(debug?: boolean);
444
+ GetRoots(): string[];
445
+ GetChildren(componentId: string): string[];
446
+ GetNeighbor(componentId: string, localId: string): string | undefined;
447
+ GetInteractor(componentId: string): string | undefined;
448
+ GetEvaluator(componentId: string): string | undefined;
449
+ GetGeometry(componentId: string): string | undefined;
450
+ GetLayer(componentId: string): string | undefined;
451
+ GetMaterial(componentId: string): string | undefined;
452
+ GetMaterialCategory(componentId: string): string | undefined;
453
+ GetLocalPosition(rootComponentId: string, descendantComponentId: string): Float3;
454
+ GetWorldPosition(componentId: string): Float3;
455
+ GetInteractionData(interactor: IGX.Core.Interactor, screenCoords: {
456
+ x: number;
457
+ y: number;
458
+ }, axis?: "x" | "y" | "z", nullAxis?: Float3): {
459
+ point: Float3;
460
+ angle: number;
461
+ nullAxis: Float3;
462
+ };
463
+ get GetTransformRelativeTo(): (componentId: string, relativeToComponentId: string) => [position: Float3, rotation: Quaternion, scale: Float3];
464
+ MotionScale: number;
359
465
  /**
360
466
  * accesses real scenegraph
361
467
  *
@@ -611,7 +717,11 @@ declare namespace IGX.Std {
611
717
  * @param root the root node of local object
612
718
  * @param node the node inside this object
613
719
  */
614
- static GetLocalTransform(root: string, node: string, _api?: IGX._API): [position: IG.Math.Vector3, rotation: IG.Math.Quaternion, scale: IG.Math.Vector3];
720
+ static GetLocalTransform(root: string, node: string, _api?: IGX._API): [
721
+ position: IG.Math.Vector3,
722
+ rotation: IG.Math.Quaternion,
723
+ scale: IG.Math.Vector3
724
+ ];
615
725
  /**
616
726
  *
617
727
  * @param root the root node of local object
@@ -2035,8 +2145,9 @@ declare namespace IGX.Std {
2035
2145
  private _ChainList;
2036
2146
  private _ComponentId;
2037
2147
  private _MaxIteration;
2038
- private IGX_API;
2039
- constructor(param: KinematicChain | KinematicChain[], api: any);
2148
+ private _KinematicsResolved;
2149
+ private _RootComponentId;
2150
+ constructor(param: KinematicChain | KinematicChain[]);
2040
2151
  /**
2041
2152
  * Solves the kinematic problem
2042
2153
  * Also writes the resultsvia draw()
@@ -2044,16 +2155,23 @@ declare namespace IGX.Std {
2044
2155
  * @param params animation interactor params
2045
2156
  * @param movedJoints already animated components that shouldnt be affected by the kinematic solver
2046
2157
  */
2047
- KinematicSolver(kinematicComponentId: string, params: string[], movedJoints: string[], _api: any): void;
2158
+ KinematicSolver(kinematicComponentId: string, params: string[], movedJoints: string[], _api: _API): void;
2048
2159
  /**
2049
2160
  * assign data structure and check consistency for each chain
2050
2161
  * @param _C chain
2051
2162
  * @param params animation interactor params
2052
2163
  * @param movedJoints already animated components that shouldnt be affected by the kinematic solver
2053
- * @param tR "t1__oX." = path to interactor component
2054
- * @param tRoot "t1__"
2055
2164
  */
2056
- private buildDataStructure;
2165
+ private updateChainState;
2166
+ /**
2167
+ * assign data structure and check consistency for each chain
2168
+ * @param _C chain
2169
+ * @param params animation interactor params
2170
+ * @param movedJoints already animated components that shouldnt be affected by the kinematic solver
2171
+ * @param interactorComponentIdPrefix "t1__oX." = path to interactor component
2172
+ * @param rootComponentIdPrefix "t1__"
2173
+ */
2174
+ private resolveKinematicsChain;
2057
2175
  /**
2058
2176
  * Checks given nodes if they have a relation
2059
2177
  * @param parentNode ancestor
@@ -2087,12 +2205,10 @@ declare namespace IGX.Std {
2087
2205
  private isFollowingJoint;
2088
2206
  /**
2089
2207
  * Algorithm for one chain and one target
2090
- * @param tR path to root component
2091
2208
  */
2092
2209
  private singleTargetKinematics;
2093
2210
  /**
2094
2211
  * Algorithm for multiple targets and one chain divided into multiple subchains
2095
- * @param tR path to root component
2096
2212
  */
2097
2213
  private multiTargetKinematics;
2098
2214
  private multiTargetSolve;
@@ -2126,6 +2242,7 @@ declare namespace IGX.Std {
2126
2242
  * @param idx - current joint of chain
2127
2243
  */
2128
2244
  private constrain;
2245
+ private getOrComputeRelativePosition;
2129
2246
  }
2130
2247
  }
2131
2248
  declare namespace IGX.Std {
@@ -2864,7 +2981,8 @@ declare namespace IGX.Std {
2864
2981
  */
2865
2982
  AutoReset?: boolean | string;
2866
2983
  }
2867
- export class OffsetRotator extends IGX.Core.Interactor<OffsetRotatorParams> {
2984
+ export class OffsetRotator extends IGX.Core
2985
+ .Interactor<OffsetRotatorParams> {
2868
2986
  position: Float3;
2869
2987
  bAutoReset: boolean;
2870
2988
  constructor(parameters: OffsetRotatorParams);
@@ -1,8 +1,9 @@
1
1
  /*
2
- * Version: 1.11.0.100
3
- * Commit: 77f9ef0
4
- * Date: 2025-08-04T17:01:15.269Z
2
+ * Version: 1.12.0.100
3
+ * Commit: 42607a7
4
+ * Date: 2026-01-22T08:33:20.048Z
5
5
  *
6
6
  * @preserve
7
7
  */
8
- var IGX,__assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var e,i=1,a=arguments.length;i<a;i++)for(var o in e=arguments[i])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},__assign.apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(t,e,i){if(i||2===arguments.length)for(var a,o=0,n=e.length;o<n;o++)!a&&o in e||(a||(a=Array.prototype.slice.call(e,0,o)),a[o]=e[o]);return t.concat(a||Array.prototype.slice.call(e))},__extends=this&&this.__extends||function(){var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},t(e,i)};return function(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function a(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(a.prototype=i.prototype,new a)}}(),globalObject="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this;if(function(t){!function(t){t.Minimum="Minimum",t.Maximum="Maximum",t.Snap="Snap",t.Raster="Raster",t.Values="Values",t.StartValue="StartValue",t.EndValue="EndValue",t.StartTime="StartTime",t.EndTime="EndTime",t.Steps="Steps",t.Mode="Mode",t.XPosition="XPosition",t.YPosition="YPosition",t.ZPosition="ZPosition",t.XRotation="XRotation",t.YRotation="YRotation",t.ZRotation="ZRotation",t.Start="Start",t.End="End",t.Stage="Stage",t.Period="Period",t.BackwardPeriod="BackwardPeriod",t.StageStart="StageStart",t.StageEnd="StageEnd",t.Manual="Manual",t.cString="string",t.cNumber="number";var e=/,/g;t.SetupValue=function(i,a,o){void 0===i[a]?i[a]=o:typeof i[a]===t.cNumber||(typeof i[a]===t.cString?(i[a]=Number(i[a].replace(e,".")),typeof i[a]!==t.cNumber&&(i[a]=o)):i[a]=o)},t.SetupValues=function(t,e){if(void 0===t.Values)t.Values=e;else if("string"==typeof t.Values){var i=t.Values.trim(),a=(i=i.slice(1,i.length-1)).split(",");t.Values=[];for(var o=0,n=a;o<n.length;o++){var s=n[o];t.Values.push(Number(s))}}t.Values.sort((function(t,e){return t-e}))},t.GetValue=function(t,e){return t[e]},t.SetupAnimation=function(t){"string"==typeof t.Start&&(t.Start=Number(t.Start)),"string"==typeof t.End&&(t.End=Number(t.End)),"string"==typeof t.StageStart&&(t.StageStart=Number(t.StageStart)),"string"==typeof t.StageEnd&&(t.StageEnd=Number(t.StageEnd)),void 0===t.Stage?t.Stage=1:"string"==typeof t.Stage&&(t.Stage=Number(t.Stage)),void 0===t.Period?t.Period=1:"string"==typeof t.Period&&(t.Period=Number(t.Period)),void 0===t.BackwardPeriod?t.BackwardPeriod=t.Period:"string"==typeof t.BackwardPeriod&&(t.BackwardPeriod=Number(t.BackwardPeriod)),"string"==typeof t.IntermediateCalculation&&(t.IntermediateCalculation=Number(t.IntermediateCalculation)),void 0===t.Record?t.Record=!1:"string"==typeof t.Record&&(t.Record="true"===t.Record.toLowerCase()),void 0===t.DebugLevel?t.DebugLevel=0:"string"==typeof t.DebugLevel&&(t.DebugLevel=Number(t.DebugLevel))},t.getAbsPath=function(t,e){var i=t.slice(0);if("."!==e)if(0===e.indexOf("..")){var a=t.lastIndexOf(".");i=(-1===a?t.substring(0,t.lastIndexOf("o")):t.substring(0,a+1))+e.substr(2)}else"."===t[t.length-1]?i+=e:i+="."+e;return i},t.findGlobalByPath=function(t){for(var e=t.split("."),i=globalObject,a=0;a<e.length;a++){if(null==(i=i[e[a]]))return}return i}}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(t){var e=function(){};t.KinematicChain=e}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(t){var e=function(){};t.AnimationState=e;var i=function(){};t.Animation=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function i(t){void 0===t&&(t=!1),this.useShadowApi=!1,this.callLog=[],this.printCallAsError=!1,this.debug=t,this.debug&&console.log("new ApiConnection()")}return i.prototype.getNodeInfo=function(e){return{position:t.API.GetPosition(e),rotation:[t.API.GetXRotation(e),t.API.GetYRotation(e),t.API.GetZRotation(e)],scaling:t.API.GetScaling(e),visibility:t.API.GetVisibility(e),deformation:t.API.GetDeformation?t.API.GetDeformation(e):0,activedeformation:!1}},i.prototype.makeShadow=function(t,e){var i={};if(i[t]=__assign({},this.getNodeInfo(t)),e)for(var a=t+".",o=0,n=e;o<n.length;o++){var s=n[o];i[a+s]=__assign({},this.getNodeInfo(a+s))}return i},i.prototype.setShadowWithParameters=function(t,e,i,a,o,n){var s={},r=[t];e.forEach((function(t){return r=__spreadArray(__spreadArray([],r,!0),[t],!1)}));var h=t;h=h.slice(0,h.lastIndexOf("_")+1);for(var p=0,u=r;p<u.length;p++){for(var d=u[p],m=void 0,l=0;l<a._loops.length;l++)if(d===a._loops[l].path){m=l;break}if(m){var c=t+"."+d;"."===d&&(c=t);var f=a._loops[m];s[c]=__assign({},this.getNodeInfo(c)),void 0!==f.states[0].state1.Deformation&&(s[c].deformation=Number(f.states[0].state1.Deformation)),isNaN(s[c].deformation)&&(s[c].deformation=Number(o[s[c].deformation]))}else{var S="."===d?t:d===t?d:t+"."+d;s[S]=__assign({},this.getNodeInfo(S))}}for(var I=0,v=i;I<v.length;I++){var g=v[I];s[h+g]=__assign({},this.getNodeInfo(h+g))}return this.shadow=this.cloneShadow(s),s},i.prototype.cloneShadow=function(t){var e=null!=t?t:this.shadow,i={};for(var a in e){var o=e[a];i[a]=__assign({position:__assign({},o.position),rotation:__spreadArray([],o.rotation,!0),scaling:__assign({},o.scaling)},o)}return i},i.prototype.setShadow=function(t,e){return this.shadow=this.makeShadow(t,e),this.cloneShadow()},i.prototype.getShadow=function(){if(this.shadow)return this.cloneShadow()},i.prototype.setUseShadow=function(t){this.useShadowApi=t},i.prototype.getUseShadow=function(){return this.useShadowApi},i.prototype.setOriginalSceneFromShadow=function(i,a,o){if(this.shadow||i){var n=null!=i?i:this.shadow,s={};for(var r in o&&a&&Object.keys(o).forEach((function(i){(o[i]||[]).forEach((function(o){var n=a,r=n.split("_")[0]+"__",h=e.getAbsPath(n,i),p=e.Util.GetLocalTransform(r+".",h,t.API),u=t.API.GetVisibility(h);s[o]={ppath:i,tf:p,oldvisibility:u}}))})),n){var h=n[r];t.API.SetPosition(r,h.position),t.API.SetVisibility(r,h.visibility),t.API.SetScaling(r,h.scaling),t.API.SetXRotation(r,h.rotation[0]),t.API.SetYRotation(r,h.rotation[1]),t.API.SetZRotation(r,h.rotation[2]),h.activedeformation&&t.API.SetDeformation(r,h.deformation)}s&&a&&Object.keys(s).forEach((function(i){var o=s[i].ppath,n=s[i].oldvisibility,r=a,h=r.split("_")[0]+"__",p=e.getAbsPath(r,o),u=e.Util.GetLocalTransform(h+".",p,t.API),d=t.API.GetVisibility(p);t.API.SetPoint(h+".",i,u[0],u[1],d!=n?d:null)}))}},i.prototype.appendNode=function(e){return console.warn("WTF appendNode() onDemand",e),!!t.API.IsValid(e)&&(this.shadow[e]=__assign({},this.getNodeInfo(e)),!0)},i.prototype.SetPoint=function(e,i,a,o,n){this.useShadowApi?console.warn("SetPoint not implemented !!!"):t.API.SetPoint(e,i,a,o,n)},i.prototype.GetParent=function(e){var i=t.API.GetParent;return this.printCallAsError&&console.error("disabled GetParent() [id] called !!!"),this.useShadowApi?this.useShadowApi?i(e):void 0:i(e)},i.prototype.IsValid=function(e){var i=t.API.IsValid;return this.printCallAsError&&console.error("disabled IsValid() called !!!"),this.useShadowApi?this.useShadowApi?i(e):void 0:i(e)},i.prototype.GetPosition=function(e){var i,a=t.API.GetPosition;if(this.printCallAsError&&console.error("disabled GetPosition() called !!!"),!this.useShadowApi){var o=a(e);return this.callLog.push("GetPosition native "+e+" "+JSON.stringify(o)),o}var n=null===(i=this.shadow)||void 0===i?void 0:i[e];if(n){o=n.position;return this.callLog.push("GetPosition ovrw "+e+" "+JSON.stringify(o)),o}return this.appendNode(e)?(n=this.shadow[e]).position:(console.warn("nothing found for "+e),a(e))},i.prototype.GetVisibility=function(e){var i,a=t.API.GetVisibility;if(this.printCallAsError&&console.error("disabled GetVisibility() called !!!"),!this.useShadowApi)return a(e);var o=null===(i=this.shadow)||void 0===i?void 0:i[e];return o?o.visibility:this.appendNode(e)?(o=this.shadow[e]).visibility:(console.warn("nothing found for "+e),a(e))},i.prototype.GetScaling=function(e){var i,a=t.API.GetScaling;if(this.printCallAsError&&console.error("disabled GetScaling() called !!!"),!this.useShadowApi)return a(e);var o=null===(i=this.shadow)||void 0===i?void 0:i[e];return o?o.scaling:this.appendNode(e)?(o=this.shadow[e]).scaling:(console.warn("nothing found for "+e),a(e))},i.prototype.GetXRotation=function(e){var i,a=t.API.GetXRotation;if(this.printCallAsError&&console.error("disabled GetXRotation() called !!!"),!this.useShadowApi)return a(e);var o=null===(i=this.shadow)||void 0===i?void 0:i[e];return o?o.rotation[0]:this.appendNode(e)?(o=this.shadow[e]).rotation[0]:(console.warn("nothing found for "+e),a(e))},i.prototype.GetYRotation=function(e){var i,a=t.API.GetYRotation;if(this.printCallAsError&&console.error("disabled GetYRotation() called !!!"),!this.useShadowApi)return a(e);var o=null===(i=this.shadow)||void 0===i?void 0:i[e];return o?o.rotation[1]:this.appendNode(e)?(o=this.shadow[e]).rotation[1]:(console.warn("nothing found for "+e),a(e))},i.prototype.GetZRotation=function(e){var i,a=t.API.GetZRotation;if(this.printCallAsError&&console.error("disabled GetZRotation() called !!!"),!this.useShadowApi)return a(e);var o=null===(i=this.shadow)||void 0===i?void 0:i[e];return o?o.rotation[2]:this.appendNode(e)?(o=this.shadow[e]).rotation[2]:(console.warn("nothing found for "+e),a(e))},i.prototype.GetDeformation=function(e){var i;if(this.useShadowApi){var a=null===(i=this.shadow)||void 0===i?void 0:i[e];return a&&null!==a.deformation&&void 0!==a.deformation?a.deformation:0}return t.API.GetDeformation?t.API.GetDeformation(e):0},i.prototype.SetDeformation=function(e,i){var a,o=t.API.SetDeformation;if(this.printCallAsError&&console.error("disabled SetDeformation() called !!!"),this.useShadowApi){var n=null===(a=this.shadow)||void 0===a?void 0:a[e];if(n)return n.deformation=i,void(n.activedeformation=!0);if(!this.appendNode(e))return console.warn("nothing found for "+e),o(e,i);n.deformation=i}else o(e,i)},i.prototype.SetPosition=function(e,i){var a;if(this.printCallAsError&&console.error("disabled SetPosition() called !!!"),this.useShadowApi){var o=null===(a=this.shadow)||void 0===a?void 0:a[e];return o?void(o.position=i):void console.warn("set: nothing found for "+e)}t.API.SetPosition(e,i)},i.prototype.SetQuaternionRotation=function(e,i,a,o,n){var s;if(t.API.SetQuaternionRotation){if(t.API.SetQuaternionRotation(e,i,a,o,n),this.useShadowApi){var r=null===(s=this.shadow)||void 0===s?void 0:s[e];if(r){var h={x:i,y:a,z:o,w:n},p=IG.Math.Euler.createFromQuaternion(h,"xyz");return r.rotation[0]=p.x*IG.Math.Rad2Deg,r.rotation[1]=p.y*IG.Math.Rad2Deg,void(r.rotation[2]=p.z*IG.Math.Rad2Deg)}return void console.warn("set: nothing found for "+e)}}else{h={x:i,y:a,z:o,w:n},p=IG.Math.Euler.createFromQuaternion(h,"xyz");this.SetXRotation(e,p.x*IG.Math.Rad2Deg),this.SetYRotation(e,p.y*IG.Math.Rad2Deg),this.SetZRotation(e,p.z*IG.Math.Rad2Deg)}},i.prototype.SetXRotation=function(e,i){var a;if(this.printCallAsError&&console.error("disabled SetXRotation() called !!!"),this.useShadowApi){var o=null===(a=this.shadow)||void 0===a?void 0:a[e];return o?void(o.rotation[0]=i):void console.warn("set: nothing found for "+e)}t.API.SetXRotation(e,i)},i.prototype.SetYRotation=function(e,i){var a;if(this.printCallAsError&&console.error("disabled SetYRotation() called !!!"),this.useShadowApi){var o=null===(a=this.shadow)||void 0===a?void 0:a[e];return o?void(o.rotation[1]=i):void console.warn("set: nothing found for "+e)}t.API.SetYRotation(e,i)},i.prototype.SetZRotation=function(e,i){var a;if(this.printCallAsError&&console.error("disabled SetZRotation() called !!!"),this.useShadowApi){var o=null===(a=this.shadow)||void 0===a?void 0:a[e];return o?void(o.rotation[2]=i):void console.warn("set: nothing found for "+e)}t.API.SetZRotation(e,i)},i.prototype.SetVisibility=function(e,i){var a;if(this.printCallAsError&&console.error("disabled SetVisibility() called !!!"),this.useShadowApi){var o=null===(a=this.shadow)||void 0===a?void 0:a[e];return o?void(o.visibility=i):void console.warn("set: nothing found for "+e)}t.API.SetVisibility(e,i)},i.prototype.SetScaling=function(e,i){var a;if(this.printCallAsError&&console.error("disabled SetSCaling() called !!!"),this.useShadowApi){var o=null===(a=this.shadow)||void 0===a?void 0:a[e];return o?void(o.scaling=i):void console.warn("set: nothing found for "+e)}t.API.SetScaling(e,i)},i}();e.ApiConnection=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function e(){}return e.dlog=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];e.debug&&console.log(t)},e.calculatePosition=function(i,o,n,s,r,h,p,u,d,m){var l,c=s,f=r,S=p,I=h;d=d?[f,I].concat(d):[f,I],e.dlog("internal top attached",d),l=null!=m?a.GetLocalPosition(m,i,t.API):t.API.GetWorldPosition(i),e.dlog("#--MatressInitialPosition",l);var v,g,P,A,G,y=o,M=n;e.dlog("minangleDeg",o),e.dlog("maxangleDeg",M),null!=m?(v=a.GetLocalPosition(m,c,t.API),g=a.GetLocalPosition(m,f,t.API),P=a.GetLocalPosition(m,S,t.API),A=a.GetLocalPosition(m,I,t.API),G=a.GetLocalPosition(m,i,t.API)):(v=t.API.GetWorldPosition(c),g=t.API.GetWorldPosition(f),P=t.API.GetWorldPosition(S),A=t.API.GetWorldPosition(I),G=t.API.GetWorldPosition(i));var R={};d.forEach((function(i){e.dlog("attach1",i),R[i]={originalpos:null!=m?a.GetLocalPosition(m,i,t.API):t.API.GetWorldPosition(i),newpos:null},e.dlog("attached")})),e.dlog("leftLowPosRaw",v),e.dlog("leftUpPosRaw",g),e.dlog("rightLowPosRaw",P),e.dlog("rightUpPosRaw",A),e.dlog("articleToBeMoved",G);var C=IG.Math.Vector3.sub(P,v);C.y=0,e.dlog("baseLineDir",C);var b=IG.Math.Vector3.sub(v,P),w=IG.Math.Vector3.sub(g,v);b.y=0;var _=IG.Math.Vector3.magnitude(b)*IG.Math.Vector3.magnitude(w),x=IG.Math.Vector3.innerProduct(b,w);e.dlog("mag",_,"dot",x);var V=IG.Math.MathS.acos(x/_);if(e.dlog("baseAngleRad",V,"baseAngleDeg",V*IG.Math.Rad2Deg),0===u){var E=IG.Math.Vector3.sub(A,P),T=IG.Math.Vector3.magnitude(b)*IG.Math.Vector3.magnitude(E),X=IG.Math.Vector3.innerProduct(b,E),N=IG.Math.MathS.acos(X/T);e.dlog("0: initial A angle ",V*IG.Math.Rad2Deg,"deg","initial B angle ",N*IG.Math.Rad2Deg,"deg")}var D=IG.Math.Vector3.normalize(IG.Math.Vector3.crossProduct(b,w));e.dlog("rotationnormal",D);var z=y*IG.Math.Deg2Rad,L=z+u*(M*IG.Math.Deg2Rad-z),k=L-V;e.dlog(u,"baseAngleRad:",V,"angwanted:",L,"ang difference:",k);var F=IG.Math.Matrix3.makeRotationMatrixFromNormalVector(D,k);e.dlog("rotationsmatrix",F);var Y=IG.Math.Vector3.add(v,IG.Math.Matrix3.multiplyWithVector3(IG.Math.Vector3.sub(g,v),F));e.dlog("rotated",Y);var Z=Y.x,O=Y.y,B=Y.z,J=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,A))*IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,A)),H=P.x,Q=P.y,K=P.z,U=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(A,P))*IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(A,P));e.dlog(Z,O,B,"---\x3e",H,Q,K,"]");var j=IG.Math.Vector3.sub(Y,P),W=new t.Float3(0,0,0);2*H-2*Z!=0?W.x=(J-U-Z*Z+H*H-O*O+Q*Q-B*B+K*K)/(2*H-2*Z):2*Q-2*O!=0?W.y=(J-U-Z*Z+H*H-O*O+Q*Q-B*B+K*K)/(2*Q-2*O):2*K-2*B!=0?W.z=(J-U-Z*Z+H*H-O*O+Q*Q-B*B+K*K)/(2*K-2*B):console.warn("plane normal is null vector ?!");var q={point:W,normal:IG.Math.Vector3.normalize({x:2*H-2*Z,y:2*Q-2*O,z:2*K-2*B})},$=a.intersectionPoint({origin:P,direction:j},q);e.dlog("schnittkreiszentrum",$);var tt=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,A)),et=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub($,Y)),it=IG.Math.MathS.sqrt(tt*tt-et*et);isNaN(it)&&console.warn("physical breakdown @ ",L*IG.Math.Rad2Deg),e.dlog("schnittkreisradius",it);var at=IG.Math.Vector3.normalize(IG.Math.Vector3.crossProduct(q.normal,D));e.dlog(at);var ot=IG.Math.Vector3.add($,IG.Math.Vector3.scalarMultiply(it,at));e.dlog("tRotatedUpperRight",ot);var nt=C,st=IG.Math.Vector3.sub(A,g),rt=IG.Math.Vector3.magnitude(nt)*IG.Math.Vector3.magnitude(st),ht=IG.Math.Vector3.innerProduct(nt,st),pt=IG.Math.MathS.acos(ht/rt);e.dlog("old baseAngle Deg ",pt*(180/Math.PI));var ut=C,dt=IG.Math.Vector3.sub(ot,Y),mt=IG.Math.Vector3.magnitude(ut)*IG.Math.Vector3.magnitude(dt),lt=IG.Math.Vector3.innerProduct(ut,dt),ct=IG.Math.MathS.acos(lt/mt),ft=ct*IG.Math.Rad2Deg;e.dlog("new baseAngle Deg ",ct*IG.Math.Rad2Deg,"newbaseAngleRad:",ct);var St=a.rotatedVectorAaroundPointBbyNormalCangleRadR(g,l,D,-(ct-pt));e.dlog("detachedUpPosRaw calc",St);var It=IG.Math.Vector3.sub(Y,St);return Object.keys(R).forEach((function(t){var e=R[t],i=a.rotatedVectorAaroundPointBbyNormalCangleRadR(e.originalpos,l,D,-(ct-pt));e.newpos=IG.Math.Vector3.add(i,It)})),{rotation:ft,positionDifference:It,topAttached:R,baseLineDir:C}},e.calculateAngleAgainstBaseBack=function(e,i,o,n,s){var r;s||(s=t.API),r=null!=n?a.GetLocalPosition(n,i,s):t.API.GetWorldPosition(i);var h=IG.Math.Vector3.sub(r,e.topAttached[o].newpos),p=e.baseLineDir;return IG.Math.Vector3.angleBetween(h,p)*IG.Math.Rad2Deg},e.debug=!1,e}();e.FourBar=i;var a=function(){function e(){}return e.factorOfDirectionFromRayToPlane=function(t,e){var i=IG.Math.Vector3.innerProduct(e.normal,t.direction),a=-IG.Math.Vector3.innerProduct(e.point,e.normal);if(0===i)return 0===IG.Math.Vector3.innerProduct(e.normal,t.origin)+a?0:null;var o=-(IG.Math.Vector3.innerProduct(t.origin,e.normal)+a)/i;return o>=0?o:null},e.intersectionPoint=function(t,i){var a=e.factorOfDirectionFromRayToPlane(t,i);if(null===a)return null;var o=IG.Math.Vector3.scalarMultiply(a,t.direction);return IG.Math.Vector3.add(o,t.origin)},e.rotatedVectorAaroundPointBbyNormalCangleRadR=function(t,e,a,o){var n=a.x,s=a.y,r=a.z,h=Math.sin,p=Math.cos,u=1-p(o),d=h(o),m=p(o),l=[[n*n*u+m,n*s*u-r*d,n*r*u+s*d],[s*n*u+r*d,s*s*u+m,s*r*u-n*d],[r*n*u-s*d,r*s*u+n*d,r*r*u+m]],c=IG.Math.Vector3.add(e,IG.Math.Matrix3.multiplyWithVector3(IG.Math.Vector3.sub(t,e),IG.Math.Matrix3.create(l)));return i.dlog("RotateVectorAaroundPointBbyNormalCangleRadR",t,e,a,o,"--\x3e",c),c},e.GetLocalPosition=function(t,e,i){return this.GetLocalTransform(t,e,i)[0]},e.GetLocalRotation=function(t,e,i){var a=this.GetLocalTransform(t,e,i);return IG.Math.Euler.createFromQuaternion(a[1])},e.GetLocalTransform=function(e,i,a){var o=i;if(a||(a=t.API),a.IsValid(e)){if(a.IsValid(o)){if(null==a.GetParent(o))return console.warn("node has no parent!"),[new t.Float3,IG.Math.Quaternion.create(),new t.Float3(1,1,1)];if(o===e)return console.warn("node is root!"),[new t.Float3,IG.Math.Quaternion.create(),new t.Float3(1,1,1)];var n=new Array;for(n.push(o);o!==e;)o=a.GetParent(o),n.push(o);n.pop(),n.reverse();var s=IG.Math.Matrix4.create();n.forEach((function(t){var e,i,o=a.GetScaling(t),n={x:a.GetXRotation(t)*IG.Math.Deg2Rad,y:a.GetYRotation(t)*IG.Math.Deg2Rad,z:a.GetZRotation(t)*IG.Math.Deg2Rad};i=IG.Math.Quaternion.createFromEuler({x:n.x,y:n.y,z:n.z,order:"xyz"});var r=a.GetPosition(t);e=IG.Math.Matrix4.composeTRS(r,i,o),s=IG.Math.Matrix4.multiply(s,e)}));var r=IG.Math.Matrix4.decomposeTRS(s);return[r.translate,r.rotation,r.scale]}console.warn("node is not valid!",o)}else console.warn("node is not valid!",e)},e.GetRelativePosition=function(e,i,a,o){if(!o.IsValid(e)||!o.IsValid(i)||!o.IsValid(a))return console.warn("GetRelativePosition: Path not valid."),null;var n=t.Std.Util.GetLocalTransform(e,i,o),s=IG.Math.Matrix4.composeTRS(n[0],n[1],n[2]),r=IG.Math.Matrix4.getInverse(s),h=t.Std.Util.GetLocalTransform(e,a,o),p=IG.Math.Matrix4.composeTRS(h[0],h[1],h[2]),u=IG.Math.Matrix4.multiply(r,p);return IG.Math.Matrix4.decomposeTRS(u).translate},e.add=function(e,i){return new t.Float3(e.x+i.x,e.y+i.y,e.z+i.z)},e.sub=function(e,i){return new t.Float3(e.x-i.x,e.y-i.y,e.z-i.z)},e.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z},e.mag=function(t){return Math.sqrt(IG.Math.Vector3.innerProduct(t,t))},e.cross=function(e,i){return new t.Float3(e.y*i.z-e.z*i.y,e.z*i.x-e.x*i.z,e.x*i.y-e.y*i.x)},e.scale=function(e,i){return new t.Float3(e*i.x,e*i.y,e*i.z)},e.normalize=function(e){var i=IG.Math.Vector3.magnitude(e);return 0===i?null:new t.Float3(e.x/i,e.y/i,e.z/i)},e.multMat=function(e,i){return new t.Float3(e[0][0]*i.x+e[0][1]*i.y+e[0][2]*i.z,e[1][0]*i.x+e[1][1]*i.y+e[1][2]*i.z,e[2][0]*i.x+e[2][1]*i.y+e[2][2]*i.z)},e.angleBetweenRad=function(t,e){var i=IG.Math.Vector3.magnitude(t)*IG.Math.Vector3.magnitude(e),a=IG.Math.Vector3.innerProduct(t,e);return Math.acos(a/i)},e.rotationMatrix=function(t,e){var i=t,a=i.x,o=i.y,n=i.z,s=e,r=Math.sin,h=Math.cos,p=1-h(s),u=r(s),d=h(s);return[[a*a*p+d,a*o*p-n*u,a*n*p+o*u],[o*a*p+n*u,o*o*p+d,o*n*p-a*u],[n*a*p-o*u,n*o*p+a*u,n*n*p+d]]},e.DEG2RAD=Math.PI/180,e.RAD2DEG=180/Math.PI,e}();e.Util=a}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){var a,o;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a&&t.API.SetXRotation(this.GetComponentId(),a),void 0!==o&&t.API.SetXRotation(this.GetComponentId(),o))},a.prototype.SetStagePosition=function(i,a){var o,n,s;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a,Math.abs(s-o)<this.parameters[e.Snap]?s=o:Math.abs(s-n)<this.parameters[e.Snap]&&(s=n),t.API.SetXRotation(this.GetComponentId(),s)))},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis,this.absRotation=t.API.GetXRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetXRotation(this.GetComponentId()),o=t.API.GetInteractionData(this,e,"x",this.nullAxis);this.absRotation+=o.angle*t.API.MotionScale;var n=i?this.parameters.Snap:0;a=this.absRotation>=this.parameters.Maximum-n?this.parameters.Maximum:this.absRotation<=this.parameters.Minimum+n?this.parameters.Minimum:this.absRotation,t.API.SetXRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis},a.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),a=[0];return i>0&&a.push(i),this.bAutoReset&&(i>0&&a.push(.5-i),a.push(.5),i>0&&a.push(.5+i)),i>0&&a.push(1-i),a.push(1),a},a}(t.Core.Interactor);e.XRangeRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var a,o,n;if("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).x=a,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).x=o,t.API.SetPosition(this.GetComponentId(),n)}},a.prototype.SetStagePosition=function(i,a){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var o,n,s;o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a,Math.abs(s-o)<this.parameters[e.Snap]?s=o:Math.abs(s-n)<this.parameters[e.Snap]&&(s=n);var r=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(s,r.y,r.z))}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).x},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(this.startPosition,a.y,a.z));var o=this.parameters.Minimum,n=this.parameters.Maximum,s=i?this.parameters.Snap:0,r=t.API.GetInteractionData(this,e).point.x-this.osCoords.x,h=i?a.x:this.startPosition+.2*r;h>=n-s?h=n:h<=o+s&&(h=o),t.API.SetPosition(this.GetComponentId(),new t.Float3(h,a.y,a.z))},a.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),a=[0];return i>0&&a.push(i),this.bAutoReset&&(i>0&&a.push(.5-i),a.push(.5),i>0&&a.push(.5+i)),i>0&&a.push(1-i),a.push(1),a},a}(t.Core.Interactor);e.XRangeTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Raster,15),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){var a,o;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a&&t.API.SetXRotation(this.GetComponentId(),a),void 0!==o&&t.API.SetXRotation(this.GetComponentId(),o))},a.prototype.SetStagePosition=function(i,a){var o,n,s;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a)<o?s=o:s>n&&(s=n),t.API.SetXRotation(this.GetComponentId(),s)))},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis,this.absRotation=t.API.GetXRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetXRotation(this.GetComponentId()),o=t.API.GetInteractionData(this,e,"x",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=o;for(var n=this.parameters.Minimum;n<=this.absRotation;)n+=this.parameters.Raster;var s=n-this.parameters.Raster,r=.5*(n+s);(a=this.absRotation>r?n:s)<this.parameters.Minimum?a=this.parameters.Minimum:a>=this.parameters.Maximum&&(a=this.parameters.Maximum),t.API.SetXRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis},a}(t.Core.Interactor);e.XRasterRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Raster,.25),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var a,o,n;if("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).x=a,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).x=o,t.API.SetPosition(this.GetComponentId(),n)}},a.prototype.SetStagePosition=function(i,a){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var o,n,s;o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a)<o?s=o:s>n&&(s=n);var r=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(s,r.y,r.z))}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).x},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId()),o=this.parameters.Minimum,n=this.parameters.Maximum,s=this.parameters.Raster,r=t.API.GetInteractionData(this,e).point,h=r.x-this.osCoords.x;if(Math.abs(h)>Math.abs(s)){var p=a.x;p+=h>0?s:-s,(p=o+s*Math.round((p-o)/s))<o?p=o:p>n&&(p=n),t.API.SetPosition(this.GetComponentId(),new t.Float3(p,a.y,a.z)),this.osCoords=r}},a}(t.Core.Interactor);e.XRasterTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValues(t,[0,90]),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a}return __extends(a,i),a.prototype.SetPosition=function(e){var i=this.parameters[e];void 0!==i&&t.API.SetXRotation(this.GetComponentId(),i)},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis,this.absRotation=t.API.GetXRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){t.API.GetXRotation(this.GetComponentId());var a=t.API.GetInteractionData(this,e,"x",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=a;for(var o=this.parameters.Values[0],n=Math.abs(this.absRotation-o),s=1;s<this.parameters.Values.length;s++){var r=Math.abs(this.absRotation-this.parameters.Values[s]);r<n&&(o=this.parameters.Values[s],n=r)}t.API.SetXRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis},a}(t.Core.Interactor);e.XValueRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValues(t,[0,1]),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a}return __extends(a,i),a.prototype.SetPosition=function(e){var i=this.parameters[e];if(void 0!==i){var a=t.API.GetPosition(this.GetComponentId());a.x=i,t.API.SetPosition(this.GetComponentId(),a)}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).x},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(this.startPosition,a.y,a.z));for(var o=this.parameters.Values,n=t.API.GetInteractionData(this,e).point,s=n.x-this.osCoords.x,r=a.x,h=0,p=Math.abs(r-o[h]),u=1;u<o.length;u++){var d=Math.abs(r-o[u]);d<p&&(h=u,p=d)}s>0?h<o.length-1&&h++:s<0&&h>0&&h--,r=o[h],t.API.SetPosition(this.GetComponentId(),new t.Float3(r,a.y,a.z)),this.osCoords=n},a}(t.Core.Interactor);e.XValueTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){var a,o;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a&&t.API.SetYRotation(this.GetComponentId(),a),void 0!==o&&t.API.SetYRotation(this.GetComponentId(),o))},a.prototype.SetStagePosition=function(i,a){var o,n,s;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a,Math.abs(s-o)<this.parameters[e.Snap]?s=o:Math.abs(s-n)<this.parameters[e.Snap]&&(s=n),t.API.SetYRotation(this.GetComponentId(),s)))},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis,this.absRotation=t.API.GetYRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetYRotation(this.GetComponentId()),o=t.API.GetInteractionData(this,e,"y",this.nullAxis);this.absRotation+=o.angle*t.API.MotionScale;var n=i?this.parameters.Snap:0;a=this.absRotation>=this.parameters.Maximum-n?this.parameters.Maximum:this.absRotation<=this.parameters.Minimum+n?this.parameters.Minimum:this.absRotation,t.API.SetYRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis},a.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),a=[0];return i>0&&a.push(i),this.bAutoReset&&(i>0&&a.push(.5-i),a.push(.5),i>0&&a.push(.5+i)),i>0&&a.push(1-i),a.push(1),a},a}(t.Core.Interactor);e.YRangeRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var a,o,n;if("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).y=a,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).y=o,t.API.SetPosition(this.GetComponentId(),n)}},a.prototype.SetStagePosition=function(i,a){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var o,n,s;o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a,Math.abs(s-o)<this.parameters[e.Snap]?s=o:Math.abs(s-n)<this.parameters[e.Snap]&&(s=n);var r=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(r.x,s,r.z))}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).y},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,this.startPosition,a.z));var o=this.parameters.Minimum,n=this.parameters.Maximum,s=i?this.parameters.Snap:0,r=t.API.GetInteractionData(this,e).point.y-this.osCoords.y,h=i?a.y:this.startPosition+.2*r;h>=n-s?h=n:h<=o+s&&(h=o),t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,h,a.z))},a.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),a=[0];return i>0&&a.push(i),this.bAutoReset&&(i>0&&a.push(.5-i),a.push(.5),i>0&&a.push(.5+i)),i>0&&a.push(1-i),a.push(1),a},a}(t.Core.Interactor);e.YRangeTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Raster,15),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){var a,o;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a&&t.API.SetYRotation(this.GetComponentId(),a),void 0!==o&&t.API.SetYRotation(this.GetComponentId(),o))},a.prototype.SetStagePosition=function(i,a){var o,n,s;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a)<o?s=o:s>n&&(s=n),t.API.SetYRotation(this.GetComponentId(),s)))},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis,this.absRotation=t.API.GetYRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetYRotation(this.GetComponentId()),o=t.API.GetInteractionData(this,e,"y",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=o;for(var n=this.parameters.Minimum;n<=this.absRotation;)n+=this.parameters.Raster;var s=n-this.parameters.Raster,r=.5*(n+s);(a=this.absRotation>r?n:s)<this.parameters.Minimum?a=this.parameters.Minimum:a>=this.parameters.Maximum&&(a=this.parameters.Maximum),t.API.SetYRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis},a}(t.Core.Interactor);e.YRasterRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Raster,.25),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var a,o,n;if("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).y=a,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).y=o,t.API.SetPosition(this.GetComponentId(),n)}},a.prototype.SetStagePosition=function(i,a){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var o,n,s;o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a)<o?s=o:s>n&&(s=n);var r=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(r.x,s,r.z))}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).y},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId()),o=this.parameters.Minimum,n=this.parameters.Maximum,s=this.parameters.Raster,r=t.API.GetInteractionData(this,e).point,h=r.y-this.osCoords.y;if(Math.abs(h)>Math.abs(s)){var p=a.y;p+=h>0?s:-s,(p=o+s*Math.round((p-o)/s))<o?p=o:p>n&&(p=n),t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,p,a.z)),this.osCoords=r}},a}(t.Core.Interactor);e.YRasterTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValues(t,[0,90]),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a}return __extends(a,i),a.prototype.SetPosition=function(e){var i=this.parameters[e];void 0!==i&&t.API.SetYRotation(this.GetComponentId(),i)},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis,this.absRotation=t.API.GetYRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){t.API.GetYRotation(this.GetComponentId());var a=t.API.GetInteractionData(this,e,"y",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=a;for(var o=this.parameters.Values[0],n=Math.abs(this.absRotation-o),s=1;s<this.parameters.Values.length;s++){var r=Math.abs(this.absRotation-this.parameters.Values[s]);r<n&&(o=this.parameters.Values[s],n=r)}t.API.SetYRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis},a}(t.Core.Interactor);e.YValueRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValues(t,[0,1]),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a}return __extends(a,i),a.prototype.SetPosition=function(e){var i=this.parameters[e];if(void 0!==i){var a=t.API.GetPosition(this.GetComponentId());a.y=i,t.API.SetPosition(this.GetComponentId(),a)}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).y},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,this.startPosition,a.z));for(var o=this.parameters.Values,n=t.API.GetInteractionData(this,e).point,s=n.y-this.osCoords.y,r=a.y,h=0,p=Math.abs(r-o[h]),u=1;u<o.length;u++){var d=Math.abs(r-o[u]);d<p&&(h=u,p=d)}s>0?h<o.length-1&&h++:s<0&&h>0&&h--,r=o[h],t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,r,a.z)),this.osCoords=n},a}(t.Core.Interactor);e.YValueTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){var a,o;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a&&t.API.SetZRotation(this.GetComponentId(),a),void 0!==o&&t.API.SetZRotation(this.GetComponentId(),o))},a.prototype.SetStagePosition=function(i,a){var o,n,s;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a,Math.abs(s-o)<this.parameters[e.Snap]?s=o:Math.abs(s-n)<this.parameters[e.Snap]&&(s=n),t.API.SetZRotation(this.GetComponentId(),s)))},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis,this.absRotation=t.API.GetZRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetZRotation(this.GetComponentId()),o=t.API.GetInteractionData(this,e,"z",this.nullAxis);this.absRotation+=o.angle*t.API.MotionScale;var n=i?this.parameters.Snap:0;a=this.absRotation>=this.parameters.Maximum-n?this.parameters.Maximum:this.absRotation<=this.parameters.Minimum+n?this.parameters.Minimum:this.absRotation,t.API.SetZRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis},a.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),a=[0];return i>0&&a.push(i),this.bAutoReset&&(i>0&&a.push(.5-i),a.push(.5),i>0&&a.push(.5+i)),i>0&&a.push(1-i),a.push(1),a},a}(t.Core.Interactor);e.ZRangeRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var a,o,n;if("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).z=a,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).z=o,t.API.SetPosition(this.GetComponentId(),n)}},a.prototype.SetStagePosition=function(i,a){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var o,n,s;o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a,Math.abs(s-o)<this.parameters[e.Snap]?s=o:Math.abs(s-n)<this.parameters[e.Snap]&&(s=n);var r=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(r.x,r.y,s))}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).z},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,a.y,this.startPosition));var o=this.parameters.Minimum,n=this.parameters.Maximum,s=i?this.parameters.Snap:0,r=t.API.GetInteractionData(this,e).point.z-this.osCoords.z,h=i?a.z:this.startPosition+.2*r;h>=n-s?h=n:h<=o+s&&(h=o),t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,a.y,h))},a.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),a=[0];return i>0&&a.push(i),this.bAutoReset&&(i>0&&a.push(.5-i),a.push(.5),i>0&&a.push(.5+i)),i>0&&a.push(1-i),a.push(1),a},a}(t.Core.Interactor);e.ZRangeTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Raster,15),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){var a,o;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a&&t.API.SetZRotation(this.GetComponentId(),a),void 0!==o&&t.API.SetZRotation(this.GetComponentId(),o))},a.prototype.SetStagePosition=function(i,a){var o,n,s;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a)<o?s=o:s>n&&(s=n),t.API.SetZRotation(this.GetComponentId(),s)))},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis,this.absRotation=t.API.GetZRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){if(!i){var a=t.API.GetZRotation(this.GetComponentId()),o=t.API.GetInteractionData(this,e,"z",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=o;for(var n=this.parameters.Minimum;n<=this.absRotation;)n+=this.parameters.Raster;var s=n-this.parameters.Raster,r=.5*(n+s);(a=this.absRotation>r?n:s)<this.parameters.Minimum?a=this.parameters.Minimum:a>=this.parameters.Maximum&&(a=this.parameters.Maximum),t.API.SetZRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis}},a}(t.Core.Interactor);e.ZRasterRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Raster,.25),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var a,o,n;if("Start"===i&&(a=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(o=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).z=a,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).z=o,t.API.SetPosition(this.GetComponentId(),n)}},a.prototype.SetStagePosition=function(i,a){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var o,n,s;o=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(s=this.bAutoReset?a<.5?o+(n-o)*a*2:o+(n-o)*(1-a)*2:o+(n-o)*a)<o?s=o:s>n&&(s=n);var r=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(r.x,r.y,s))}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).z},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId()),o=this.parameters.Minimum,n=this.parameters.Maximum,s=this.parameters.Raster,r=t.API.GetInteractionData(this,e).point,h=r.z-this.osCoords.z;if(Math.abs(h)>Math.abs(s)){var p=a.z;p+=h>0?s:-s,(p=o+s*Math.round((p-o)/s))<o?p=o:p>n&&(p=n),t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,a.y,p)),this.osCoords=r}},a}(t.Core.Interactor);e.ZRasterTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValues(t,[0,90]),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a}return __extends(a,i),a.prototype.SetPosition=function(e){var i=this.parameters[e];void 0!==i&&t.API.SetZRotation(this.GetComponentId(),i)},a.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis,this.absRotation=t.API.GetZRotation(this.GetComponentId())},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},a.prototype.ApplyMotion=function(e,i){t.API.GetZRotation(this.GetComponentId());var a=t.API.GetInteractionData(this,e,"z",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=a;for(var o=this.parameters.Values[0],n=Math.abs(this.absRotation-o),s=1;s<this.parameters.Values.length;s++){var r=Math.abs(this.absRotation-this.parameters.Values[s]);r<n&&(o=this.parameters.Values[s],n=r)}t.API.SetZRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis},a}(t.Core.Interactor);e.ZValueRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValues(t,[0,1]),e.SetupAnimation(t),(a=i.call(this,t)||this).parameters.Manual=!0,a}return __extends(a,i),a.prototype.SetPosition=function(e){var i=this.parameters[e];if(void 0!==i){var a=t.API.GetPosition(this.GetComponentId());a.z=i,t.API.SetPosition(this.GetComponentId(),a)}},a.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).z},a.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},a.prototype.SingleTouchEnd=function(t){},a.prototype.ApplyMotion=function(e,i){var a=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,a.y,this.startPosition));for(var o=this.parameters.Values,n=t.API.GetInteractionData(this,e).point,s=n.z-this.osCoords.z,r=a.z,h=0,p=Math.abs(r-o[h]),u=1;u<o.length;u++){var d=Math.abs(r-o[u]);d<p&&(h=u,p=d)}s>0?h<o.length-1&&h++:s<0&&h>0&&h--,r=o[h],t.API.SetPosition(this.GetComponentId(),new t.Float3(a.x,a.y,r)),this.osCoords=n},a}(t.Core.Interactor);e.ZValueTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){return e.SetupValue(t,e.StartValue,0),e.SetupValue(t,e.EndValue,0),e.SetupValue(t,e.StartTime,0),e.SetupValue(t,e.EndTime,1),e.SetupAnimation(t),i.call(this,t)||this}return __extends(a,i),a.prototype.SetPosition=function(t){},a.prototype.ApplyValue=function(i){var a,o=this.GetComponentId();switch(this.parameters[e.Mode]){case e.XPosition:a=t.API.GetPosition(o),t.API.SetPosition(o,new t.Float3(i,a.y,a.z));break;case e.YPosition:a=t.API.GetPosition(o),t.API.SetPosition(o,new t.Float3(a.x,i,a.z));break;case e.ZPosition:a=t.API.GetPosition(o),t.API.SetPosition(o,new t.Float3(a.x,a.y,i));break;case e.XRotation:t.API.SetXRotation(o,i);break;case e.YRotation:t.API.SetYRotation(o,i);break;case e.ZRotation:t.API.SetZRotation(o,i)}},a.prototype.SetStagePosition=function(t,i){var a=e.GetValue(this.parameters,e.Stage),o=e.GetValue(this.parameters,e.StartValue),n=e.GetValue(this.parameters,e.EndValue);t<a?this.ApplyValue(o):t>a?this.ApplyValue(n):this.ApplyValue(i)},a}(t.Core.Interactor);e.BasicLinearInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function e(e,i){if(this.IGX_API=i||t.API,"object"==typeof e){if(this._ChainList=new Array,Array.isArray(e))for(var a=0,o=e;a<o.length;a++){var n=r=o[a];if(!n.Target)return void console.warn("IGX.Std.KinematicsInteractor: Subchain has no target!");if(!n.Tolerance)return void console.warn("IGX.Std.KinematicsInteractor: Subchain has no tolerance!");if(!n.GeometryBase)return void console.warn("IGX.Std.KinematicsInteractor: Subchain has no GeometryBase defined!");if(n.Parent&&"string"==typeof n.Parent)"root"===n.Parent&&(this._MultiTargetChain=new Array,this._ChainList.push(this._MultiTargetChain)),this._MultiTargetChain.push(n);else{var s=new Array;s.push(n),this._ChainList.push(s)}}else{if(this._Chain=e,!this._Chain.Target)return void console.warn("IGX.Std.KinematicsInteractor: Chain has no target!");if(!this._Chain.Tolerance)return void console.warn("IGX.Std.KinematicsInteractor: Chain has no tolerance!");if(!this._Chain.GeometryBase)return void console.warn("IGX.Std.KinematicsInteractor: Interactor has no GeometryBase defined!");var r;(r=new Array).push(this._Chain),this._ChainList.push(r)}this._MaxIteration=3}else console.warn("IGX.Std.KinematicsInteractor: Not defined.")}return e.prototype.KinematicSolver=function(t,e,i,a){this._ComponentId=t;for(var o=this._ComponentId.split("_")[0]+"__",n=this._ComponentId+".",s=0;s<this._MaxIteration;s++)for(var r=0,h=this._ChainList;r<h.length;r++){var p=h[r];if(1===p.length)this._Chain=this.buildDataStructure(p[0],e,i,n,o,a),this.singleTargetKinematics(n,a);else{this._MultiTargetChain=p;for(var u=0;u<this._MultiTargetChain.length;u++){var d=this._MultiTargetChain[u];d=this.buildDataStructure(d,e,i,n,o,a)}this.multiTargetKinematics(n,a)}}},e.prototype.buildDataStructure=function(e,i,a,o,n,s){var r=this;if(e.Joints.length>0&&e.Joints[0].HeadX){e._Origin=e.Joints[0].HeadX;for(var h=e._Origin.split("."),p="",u=0;u<h.length-1;u++)p+=h[u],u+1<h.length-1&&(p+=".");e._ChainPath=p,e._RootId=""===p?this._ComponentId:this._ComponentId+"."+p;var d=[],m=0,l=/param(\d+)/i;e.Joints.forEach((function(n,h){var p,u,c,f,S,I,v,g,P,A,G,y,M,R,C,b=!1;n.Name?u=(C=n.Name.match(l))?i[parseInt(C[1])-1]:n.Name:u="b".concat(h);n.HeadX?c=(C=n.HeadX.match(l))?i[parseInt(C[1])-1]:n.HeadX:console.warn("IGX.Std.KinematicsInteractor: Joint",u,"is missing its Head (X)!");n.HeadY?f=(C=n.HeadY.match(l))?i[parseInt(C[1])-1]:n.HeadY:console.warn("IGX.Std.KinematicsInteractor: Joint",u,"is missing its Head (Y)!");n.HeadZ?S=(C=n.HeadZ.match(l))?i[parseInt(C[1])-1]:n.HeadZ:console.warn("IGX.Std.KinematicsInteractor: Joint",u,"is missing its Head (Z)!");n.Tail?(I=(C=n.Tail.match(l))?i[parseInt(C[1])-1]:n.Tail,r.isParent(S,I)||console.warn("IGX.Std.KinematicsInteractor: Joint",u,"- Tail isn't child of Head!")):console.warn("IGX.Std.KinematicsInteractor: Joint",u,"is missing its Tail!");R=n.FollowJointNode,A=n.LimitLeft,G=n.LimitRight,y=n.LimitUp,M=n.LimitDown;var w=o+c,_=o+f,x=o+S,V=o+I;a.forEach((function(t){w!==t&&_!==t&&x!==t&&V!==t||(b=!0)})),g=t.Std.Util.GetLocalPosition(e._RootId,o+c,s),P=t.Std.Util.GetLocalPosition(e._RootId,o+I,s),v=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,P)),m+=v,p={Name:u,HeadX:c,HeadY:f,HeadZ:S,Tail:I,FollowJointNode:R,LimitLeft:A,LimitRight:G,LimitUp:y,LimitDown:M,_Length:v,_HeadPos:g,_TailPos:P,_Blocked:b},d.push(p)})),e.Joints=d;var c=e.Target.match(l);if(c&&(e.Target=i[parseInt(c[1])-1]),s.IsValid(o+e._Origin)){if(e._OriginPos=t.Std.Util.GetLocalPosition(e._RootId,o+e._Origin,s),s.IsValid(n+e.Target))e._TargetPos=t.Std.Util.GetRelativePosition(n+".",e._RootId,n+e.Target,s);else{if("subbase"!==e.Target)return void console.warn("Target path",e.Target,"not valid.");e._TargetPos=e.Joints[e.Joints.length-1]._TailPos}return e._TotalLength=m,"x"!==e.GeometryBase&&"y"!==e.GeometryBase&&"z"!==e.GeometryBase&&(console.warn('GeometryBase param received not allowed value! Only "x", "y" and "z" are allowed! Returning to default value ("z")'),e.GeometryBase="z"),"y"===e.GeometryBase&&(console.warn("GeometryBase = y not implemented yet. Switching to z now."),e.GeometryBase="z"),e}console.warn("Origin path",e._Origin,"not valid.")}else console.warn("IGX.Std.KinematicsInteractor: Chain has no defined joints!")},e.prototype.isParent=function(t,e){return 0===e.indexOf(t)},e.prototype.getGeometryBase=function(t){var e=this._Chain,i=e.Joints[t],a=e.GeometryBase;return void 0!==i.GeometryBase&&(a=i.GeometryBase),a},e.prototype.getBoneEuler=function(t,e,i){var a=IG.Math.Quaternion.lookAt(e,i),o=IG.Math.Euler.createFromQuaternion(a);return"x"!==t||o.x!==Math.PI&&o.x!==-Math.PI?"z"!==t||o.z!==Math.PI&&o.z!==-Math.PI||(o.z=0,o.x*=-1):(o.x=0,o.z*=-1),o},e.prototype.isConstraintActive=function(t){var e=this._Chain.Joints[t];return void 0!==e.LimitLeft&&void 0!==e.LimitRight&&void 0!==e.LimitUp&&void 0!==e.LimitDown},e.prototype.getChainLevel=function(t){if(!t._ParentChain||"root"===t.Parent)return t._Level=0,0;var e=this.getChainLevel(t._ParentChain)+1;return t._Level=e,e},e.prototype.getEndEffectors=function(t){var e={};return this._MultiTargetChainStructure[t].forEach((function(t){e[t.Parent]||(e[t.Parent]=new Array),e[t.Parent].push(t)})),e},e.prototype.getJoint=function(t){for(var e=0,i=this._ChainList;e<i.length;e++)for(var a=0,o=i[e];a<o.length;a++)for(var n=0,s=o[a].Joints;n<s.length;n++){var r=s[n];if(0===t.indexOf(r.HeadX))return r}return console.warn("IGX.Std.KinematicsInteractor: Couldn't find follow joint",t),null},e.prototype.isFollowingJoint=function(t){var e=this._Chain.Joints[t];return!(!e.FollowJointNode||null===this.getJoint(e.FollowJointNode))},e.prototype.singleTargetKinematics=function(t,e){this.forward(e),this.solve(e),this.draw(t,e)},e.prototype.multiTargetKinematics=function(t,e){for(var i=this,a=this._MultiTargetChain[0],o=0,n=this._MultiTargetChain;o<n.length;o++){if(!(I=n[o]).Parent)return void console.warn("IGX.Std.KinematicsInteractor: A chain has no set Root param! (multi target kinematics)");if("root"===I.Parent)a=I;else{for(var s=0;s<this._MultiTargetChain.length;s++)if(I._ChainPath!==this._MultiTargetChain[s]._ChainPath&&I.Parent===this._MultiTargetChain[s]._ChainPath){I._ParentChain=this._MultiTargetChain[s];break}if(!I._ParentChain)return void console.warn("Couldn't find parent for kinematic chain",I._ChainPath)}}this._MultiTargetChain.forEach((function(t){t._Level||(t._Level=i.getChainLevel(t))})),this._MultiTargetChainStructure={};var r=0;this._MultiTargetChain.forEach((function(t){i._MultiTargetChainStructure[t._Level]||(i._MultiTargetChainStructure[t._Level]=new Array),i._MultiTargetChainStructure[t._Level].push(t),t._Level>r&&(r=t._Level)}));var h=!0,p=0,u=10;for(null!=a.MaxIterations&&(u=a.MaxIterations);h;){for(var d=r;d>0;d--)if(this._MultiTargetChainStructure.hasOwnProperty(d)){var m=this.getEndEffectors(d);for(var l in m)if(m.hasOwnProperty(l)){var c=m[l];this.multiTargetSolve(c,d,e)}}for(var f=0,S=this._MultiTargetChain;f<S.length;f++){var I,v=(I=S[f]).Joints[I.Joints.length-1]._TailPos;if(!(IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(v,I._TargetPos))<I.Tolerance)){h=!0;break}h=!1}if(++p>u)break}this._MultiTargetChain.forEach((function(a){i._Chain=a,i.draw(t,e)}))},e.prototype.multiTargetSolve=function(t,e,i){for(var a=0;a<t.length;a++){var o=t[a];this._Chain=o,this.backward(i)}var n,s=this.solveCentroid(t,i);this._Chain=this._Chain._ParentChain;var r=!1;for(a=0;a<this._Chain.Joints.length;a++){if(!this._Chain.Joints[a]._Blocked){r=!1;break}r=!0}if(r)n=s;else{var h=s;this._Chain._TargetPos=h,this.forward(i),this.solve(i)}var p=this._Chain;if(e>1&&"root"!==p.Parent){var u=this.getEndEffectors(p._Level);this.multiTargetSolve(u[p.Parent],p._Level,i)}n=p.Joints[p.Joints.length-1]._TailPos;for(a=0;a<t.length;a++){o=t[a];this._Chain=o,this._Chain._OriginPos=n,this.forward(i)}},e.prototype.draw=function(t,e){var i=this;this._Chain.Joints.forEach((function(a,o){e.SetPosition(t+a.HeadX,a._HeadPos);var n=i.getGeometryBase(o),s=i.getBoneEuler(n,a._HeadPos,a._TailPos),r=s.x*IG.Math.Rad2Deg,h=s.y*IG.Math.Rad2Deg,p=s.z*IG.Math.Rad2Deg;e.SetXRotation(t+a.HeadX,r),e.SetYRotation(t+a.HeadY,h),e.SetZRotation(t+a.HeadZ,p)}))},e.prototype.solveCentroid=function(t,e){var i=new IG.Math.Vector3(0,0,0);t.forEach((function(t){i=IG.Math.Vector3.add(i,t.Joints[0]._HeadPos)})),i=IG.Math.Vector3.scalarMultiply(1/t.length,i);for(var a=0;a<t.length;a++){var o=t[a];if(this._Chain=o,IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(i,this._Chain._TargetPos))>this._Chain._TotalLength){this._Chain=this._Chain._ParentChain,this._Chain._TargetPos=i,this.forward(e),this.solve(e),i=this._Chain.Joints[this._Chain.Joints.length-1]._TailPos,this._Chain=o,this._Chain._OriginPos=i,this.forward(e),this.solve(e);var n=IG.Math.Vector3.sub(this._Chain._TargetPos,this._Chain.Joints[this._Chain.Joints.length-1]._TailPos);i=IG.Math.Vector3.add(i,n),this.backward(e)}}return i},e.prototype.solve=function(t){var e=this._Chain;if(IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(e._OriginPos,e._TargetPos))>e._TotalLength)for(var i=0;i<e.Joints.length;i++){var a=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(e._TargetPos,e.Joints[i]._HeadPos)),o=e.Joints[i]._Length/a,n=IG.Math.Vector3.add(IG.Math.Vector3.scalarMultiply(1-o,e.Joints[i]._HeadPos),IG.Math.Vector3.scalarMultiply(o,e._TargetPos));e.Joints[i]._TailPos=n,e.Joints[i+1]&&(e.Joints[i+1]._HeadPos=n)}else{var s=0,r=20;null!=e.MaxIterations&&(r=e.MaxIterations);var h=e.Joints[e.Joints.length-1]._TailPos;for(a=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(h,e._TargetPos));a>e.Tolerance&&(this.backward(t),this.forward(t),a=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(h,e._TargetPos)),!(++s>r)););}},e.prototype.backward=function(e){for(var i=this._Chain,a=i.Joints.length-1;a>=0;a--){var o=i.Joints[a];if(!o._Blocked){a===i.Joints.length-1?o._TailPos=i._TargetPos:o._TailPos=i.Joints[a+1]._HeadPos;var n=o._HeadPos;if(this.isFollowingJoint(a)){this._ComponentId.split("_")[0];var s=this._ComponentId+".";n=t.Std.Util.GetRelativePosition(this._ComponentId,i._RootId,s+o.FollowJointNode,e)}var r=IG.Math.Vector3.sub(o._TailPos,n),h=IG.Math.Vector3.magnitude(r),p=o._Length/h,u=IG.Math.Vector3.add(IG.Math.Vector3.scalarMultiply(1-p,o._TailPos),IG.Math.Vector3.scalarMultiply(p,n));o._HeadPos=u}}},e.prototype.forward=function(e){for(var i=this._Chain,a=0;a<i.Joints.length;a++){var o=i.Joints[a];if(!o._Blocked){o._HeadPos=0===a?i._OriginPos:i.Joints[a-1]._TailPos;var n=o._TailPos;if(a+1<i.Joints.length&&this.isFollowingJoint(a+1)){this._ComponentId.split("_")[0];var s=this._ComponentId+".";n=t.Std.Util.GetRelativePosition(this._ComponentId,i._RootId,s+i.Joints[a+1].FollowJointNode,e)}var r=IG.Math.Vector3.sub(n,o._HeadPos),h=IG.Math.Vector3.magnitude(r),p=o._Length/h,u=IG.Math.Vector3.add(IG.Math.Vector3.scalarMultiply(1-p,o._HeadPos),IG.Math.Vector3.scalarMultiply(p,n));if(this.isConstraintActive(a)){var d=IG.Math.Vector3.normalize(r);u=IG.Math.Vector3.add(o._HeadPos,this.constrain(IG.Math.Vector3.sub(u,o._HeadPos),d,a))}o._TailPos=u}}},e.prototype.constrain=function(t,e,i){var a=this._Chain.Joints[i],o=this.getGeometryBase(i),n=this.getBoneEuler(o,a._HeadPos,IG.Math.Vector3.add(a._HeadPos,e)),s=n.x*IG.Math.Rad2Deg,r=n.y*IG.Math.Rad2Deg,h=n.z*IG.Math.Rad2Deg;"x"===o?(r>a.LimitLeft?r=a.LimitLeft:r<-a.LimitRight&&(r=-a.LimitRight),h>a.LimitUp?h=a.LimitUp:h<-a.LimitDown&&(h=-a.LimitDown)):"z"===o&&(r>a.LimitLeft?r=a.LimitLeft:r<-a.LimitRight&&(r=-a.LimitRight),s>a.LimitDown?s=a.LimitDown:s<-a.LimitUp&&(s=-a.LimitUp));var p=s*IG.Math.Deg2Rad-n.x,u=r*IG.Math.Deg2Rad-n.y,d=h*IG.Math.Deg2Rad-n.z,m=0,l=IG.Math.Matrix4.create();if(IG.Math.isCloseTo(p,0,1e-5)?IG.Math.isCloseTo(u,0,1e-5)?IG.Math.isCloseTo(d,0,1e-5)||(m=d,l=IG.Math.Matrix4.getZRotationMatrix(m)):(m=u,l=IG.Math.Matrix4.getYRotationMatrix(m)):(m=p,l=IG.Math.Matrix4.getXRotationMatrix(m)),0!==m){var c=new IG.Math.Vector3(0,0,0);return c=IG.Math.Vector3.multiplyWithMatrix4Right(t,l),this.constrain(c,IG.Math.Vector3.normalize(c),i)}return t},e}();e.KinematicsInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function e(t,e,i,a,o){this.rootId=t,this.stepSize=e,this.subNodes=i,this.animation=a,this.interactorParams=o,this.date=0,this.steps=1/e,this.cachedScenes=[],this.date=Date.now()}return e.prototype.initialize=function(t){this.cachedScenes=[t]},e.prototype.debugInfo=function(){console.log("stepSize",this.stepSize,this.steps),console.log("cachedOnes:",this.cachedScenes)},e.prototype.getStepSize=function(){return this.stepSize},e.prototype.getCache=function(){return this.cachedScenes},e.prototype.setCache=function(t,e){var i=e;if(t.toString().split(".")[1])console.warn("invalid array index");else if(this.cachedScenes[t]=i,t>0&&this.cachedScenes[0])for(var a in e)this.cachedScenes[0][a].activedeformation=this.cachedScenes[0][a].activedeformation||e[a].activedeformation},e.prototype.clearCache=function(){this.cachedScenes=[this.cachedScenes[0]]},e.prototype.interpolate=function(e){var i=Math.floor(e*this.steps),a=Math.ceil(e*this.steps),o=e*this.steps,n=this.cachedScenes[i],s=this.cachedScenes[a];if(i===a)return n;var r=function(t,e,i,a,o){return e===a?e:e+(a-e)/(i-t)*(o-t)},h=function(t,e,i,a,o){if(e===a)return e;for(;e<0;)e+=360;for(;a<0;)a+=360;for(;e>360;)e-=360;for(;a>360;)a-=360;if(e<a){var n=Math.abs(a-e);Math.abs(a-(e+360))<n&&(e+=360)}else{n=Math.abs(e-a);Math.abs(e-(a+360))<n&&(a+=360)}return e+(a-e)/(i-t)*(o-t)},p={};for(var u in n){var d=n[u],m=s[u],l=r(i,d.position.x,a,m.position.x,o),c=r(i,d.position.y,a,m.position.y,o),f=r(i,d.position.z,a,m.position.z,o),S=r(i,d.scaling.x,a,m.scaling.x,o),I=r(i,d.scaling.y,a,m.scaling.y,o),v=r(i,d.scaling.z,a,m.scaling.z,o),g=h(i,d.rotation[0],a,m.rotation[0],o),P=h(i,d.rotation[1],a,m.rotation[1],o),A=h(i,d.rotation[2],a,m.rotation[2],o);p[u]={position:new t.Float3(l,c,f),scaling:new t.Float3(S,I,v),rotation:[g,P,A],visibility:n[u].visibility},(d.activedeformation||m.activedeformation)&&(p[u].deformation=r(i,d.deformation,a,m.deformation,o),p[u].activedeformation=!0)}return p},e}();e.Cache=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i={Position:{X:0,Y:0,Z:0},Rotation:{X:0,Y:0,Z:0},Scaling:{X:1,Y:1,Z:1},Deformation:0},a=function(t,e){var a=__assign(__assign({},t),{Position:__assign({},t.Position),Rotation:__assign({},t.Rotation),Scaling:__assign({},t.Scaling)});for(var o in e){for(var n=o.split("."),s=a,r=i,h=0;h<n.length-1;h++){var p=n[h];s=s[p],r&&(r=r[p])}var u=n[n.length-1];(void 0===s[u]||null===s[u]&&r)&&(s[u]=r[u])}return a},o=function(i){function o(t){var a=this;e.SetupValue(t,e.Start,0),e.SetupValue(t,e.End,1),e.SetupAnimation(t),(a=i.call(this,t)||this).autoReset=!1,a.d=Date.now(),t.DebugLevel&&(a.Debug=!0,console.log("AnimationInteractor parameters",t,a.d)),a.useCache=Boolean(t.Record),a.stepSize=.1,a.nodesToBeCached=[],a.absoluteNodesToBeCached=[],a.IGX_API=new e.ApiConnection(a.Debug),a.IGX_API.setUseShadow(a.useCache),a.useDebugCache=!1,a.debugapi=new e.ApiConnection(a.Debug),a.debugapi.setUseShadow(!0),a.Debug&&console.log("animation parameters: usedDebugCache",a.useDebugCache,"useCache",a.useCache);var n=o.extractLinkedPointsFromParameters(t),s=a.PrepAnimation(t.Animation,n);if(a.animation=s.Animation,a.kinematics=s.Kinematics,a.parameters.BackwardAnimation){var r=a.PrepAnimation(t.BackwardAnimation,n);a.backwardAnimation=r.Animation,a.backwardKinematics=r.Kinematics}a.params=new Array(o.PARAM_COUNT);for(var h=0;h<o.PARAM_COUNT;h++){a.params[h]=null;var p=t["Param"+(h+1)];p&&(p="string"!=typeof p?p.toString():p,a.params[h]=p)}return a.autoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.autoReset=!0:"string"!=typeof t.AutoReset&&(a.autoReset=t.AutoReset),a.Debug&&(o.windowReplacement.AInteractor=a,console.log(o.windowReplacement)),"undefined"!=typeof window&&(window.windowReplacement=o.windowReplacement),a}return __extends(o,i),o.extractLinkedPointsFromParameters=function(t){for(var e={},i=0;i<10;i++){var a=t["LinkedPoint".concat(i,"Key")],o=t["LinkedPoint".concat(i,"Path")];"string"==typeof a&&""!==a&&"string"==typeof o&&""!==o&&(e[o]=[a])}if(Object.getOwnPropertyNames(e).length>0)return e},o.prototype.setUseCache=function(t){this.useCache=t},o.prototype.PrepAnimation=function(i,o){var n=this;if(this.Debug&&console.log("in PrepAnimation()",i),void 0===i)throw new Error("IGX.Std.AnimationInteractor: No Animation specified.");var s=__assign({},t.Std.findGlobalByPath(i));if(void 0===s)throw new Error('Animation "'.concat(s,'" could not be found.'));void 0!==o&&(s.LinkedPoints=o),this.lastPositionForIntermediateCalculationOnly=0;var r=[];s.Animations.forEach((function(t){var e={};for(var i in t.States){var o=t.States[i];for(var s in o){var h=o[s];if("object"==typeof h)for(var p in h)e["".concat(s,".").concat(p)]=!0;else e[s]=!0}}var u,d,m=[];for(var l in t.States){var c=Number(l);u?m.push({time:c,period:c-d,state1:a(t.States[u],e),state2:a(t.States[l],e)}):m.push({time:c,state1:a(t.States[l],e)}),u=l,d=c}m.push({time:9999,state1:a(t.States[u],e)}),void 0===t.Path&&(t.Path="."),void 0===t.Mode&&(t.Mode="Linear"),r.push({path:t.Path,mode:t.Mode,states:m}),n.Debug&&console.log("+++",t._,t.Path),n.nodesToBeCached.push(t.Path)})),s._loops=r;var h=null;if("object"==typeof s.Kinematics){h=new e.KinematicsInteractor(JSON.parse(JSON.stringify(s.Kinematics)),this.IGX_API);var p=[];Array.isArray(s.Kinematics)?p.push.apply(p,s.Kinematics):p.push(s.Kinematics);for(var u=0,d=p;u<d.length;u++){for(var m=d[u],l=0,c=m.Joints;l<c.length;l++){var f=c[l];this.nodesToBeCached.push(f.HeadX),this.nodesToBeCached.push(f.HeadY),this.nodesToBeCached.push(f.HeadZ),this.nodesToBeCached.push(f.Tail),f.FollowJointNode&&this.nodesToBeCached.push(f.FollowJointNode)}if(m.Target&&"subbase"!=m.Target&&0!=m.Target.indexOf("Param")&&this.absoluteNodesToBeCached.push(m.Target),m.Target&&0==m.Target.indexOf("Param")){var S=this.parameters[m.Target];S&&this.absoluteNodesToBeCached.push(S)}}}var I=[];this.nodesToBeCached.forEach((function(t){var e=""+t;if("."!==e)for(;e.indexOf(".");){if(n.nodesToBeCached.filter((function(t){return t===e})).length>0||I.indexOf(e)<0&&I.push(""+e),e.lastIndexOf(".")<0)break;e=e.slice(0,e.lastIndexOf("."))}})),this.nodesToBeCached=__spreadArray(__spreadArray([],this.nodesToBeCached,!0),I,!0);var v=[];return this.absoluteNodesToBeCached.forEach((function(t){for(var e=""+t;e.indexOf(".");){if(n.absoluteNodesToBeCached.filter((function(t){return t===e})).length>0||v.indexOf(e)<0&&v.push(""+e),e.lastIndexOf(".")<0)break;e=e.slice(0,e.lastIndexOf("."))}})),this.absoluteNodesToBeCached=__spreadArray(__spreadArray([],this.absoluteNodesToBeCached,!0),v,!0),{Animation:s,Kinematics:h}},o.prototype.SetPosition=function(t){return this.SetStagePosition(this.parameters.Stage,t===e.Start?this.parameters[e.Start]:this.parameters[e.End])},o.prototype.SetStagePosition=function(t,i,a){if(this.autoReset&&(i<.5?(i*=2,a=!1):(i=2*(1-i),a=!0)),this.Debug&&console.log("SetStagePosition",this.GetComponentId(),this.useCache?"CACHED":"NOT cached",t,i,a),this.parameters.Stage===t){if(this.useDebugCache&&!this.useCache&&(o.windowReplacement&&!o.windowReplacement.animcaches&&(o.windowReplacement.animcaches=[]),!this.forwardCache_debug)){this.forwardCache_debug=new e.Cache(this.GetComponentId(),this.stepSize,this.nodesToBeCached,this.animation,this.parameters);var n=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);this.forwardCache_debug.initialize(n),this.forwardCache_debug.name="forwardcache_debug"+this.GetComponentId(),o.windowReplacement.animcaches.push(this.forwardCache_debug),console.log("initial via IGX_API:"),console.log(JSON.stringify(n));var s=this.debugapi.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);console.log("initial via debugapi"),console.log(JSON.stringify(s))}if(this.useCache){if(o.windowReplacement&&!o.windowReplacement.animcaches&&(o.windowReplacement.animcaches=[]),!this.forwardCache){this.forwardCache=new e.Cache(this.GetComponentId(),this.stepSize,this.nodesToBeCached,this.animation,this.parameters);n=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);this.forwardCache.initialize(n),this.forwardCache.name="forwardcache"+this.GetComponentId(),o.windowReplacement.animcaches.push(this.forwardCache)}if(this.backwardAnimation&&!this.backwardsCache){this.backwardsCache=new e.Cache(this.GetComponentId(),this.stepSize,this.nodesToBeCached,this.backwardAnimation,this.parameters);n=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);this.backwardsCache.initialize(n),this.backwardsCache.name="backwardscache"+this.GetComponentId(),o.windowReplacement.animcaches.push(this.backwardsCache)}}if(this.backwardAnimation&&a){if(this.backwardsCache){this.calculateMissing(i,!0,this.backwardsCache,this.IGX_API);r=this.backwardsCache.interpolate(i);return void this.IGX_API.setOriginalSceneFromShadow(r,this.GetComponentId(),this.animation.LinkedPoints)}}else if(this.forwardCache){this.calculateMissing(i,!1,this.forwardCache,this.IGX_API);var r=this.forwardCache.interpolate(i);return void this.IGX_API.setOriginalSceneFromShadow(r,this.GetComponentId(),this.animation.LinkedPoints)}if(null!==this.parameters.IntermediateCalculation){this.Debug&&console.log("lastPositionForIntermediateCalculationOnly",this.lastPositionForIntermediateCalculationOnly);for(var h=[],p=this.parameters.IntermediateCalculation,u=this.lastPositionForIntermediateCalculationOnly;Math.abs(i-u)>p;)u=i-u>0?u+p:u-p,h.push(u);this.Debug&&console.log("IntermediateCalculation steps would be",this.lastPositionForIntermediateCalculationOnly,h,i);for(var d=0;d<h.length;d++)this.calculate___SetStagePositionInternal(t,h[d],a,this.IGX_API);this.calculate___SetStagePositionInternal(t,i,a,this.IGX_API),this.lastPositionForIntermediateCalculationOnly=i}else this.calculate___SetStagePositionInternal(t,i,a,this.IGX_API);if(this.Debug){var m=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);o.windowReplacement.scene_reality=m}}},o.prototype.debug_compareShadows=function(t,e){if(t&&e){var i=Object.keys(t),a=Object.keys(e);i.forEach((function(i){t[i]&&!e[i]&&console.log("key",i,"missing in b!!")})),a.forEach((function(i){e[i]&&!t[i]&&console.log("key",i,"missing in a!!")})),console.log("checking for missing paths in bk");this.GetComponentId();var o=[];a.forEach((function(t){for(var e=""+t;e.indexOf(".");){if(a.filter((function(t){return t===e})).length>0||o.indexOf(e)<0&&o.push(""+e),e.lastIndexOf(".")<0)break;e=e.slice(0,e.lastIndexOf("."))}})),console.log("missings",o),i.forEach((function(i){var a=t[i],o=e[i],n=Math.abs(a.position.x-o.position.x)>1e-6,s=Math.abs(a.position.y-o.position.y)>1e-6,r=Math.abs(a.position.z-o.position.z)>1e-6;(n||s||r)&&console.log("DIFFERENCE Position",i,a.position,o.position);var h=Math.abs(a.rotation[0]-o.rotation[0])>1e-6,p=Math.abs(a.rotation[1]-o.rotation[1])>1e-6,u=Math.abs(a.rotation[2]-o.rotation[2])>1e-6;(h||p||u)&&console.log("DIFFERENCE Rotation",i,a.rotation,o.rotation),a.scaling.x===o.scaling.x&&a.scaling.y===o.scaling.y&&a.scaling.z===o.scaling.z||console.log("DIFFERENCE Scaling",i,a.scaling,o.scaling)}))}else console.log("a or b is undefined !!")},o.prototype.calculateMissing=function(t,e,i,a){if(0===t)return!1;for(var o=1/this.stepSize,n=Math.ceil(t*o),s=i?i.getCache():e?this.backwardsCache.getCache():this.forwardCache.getCache(),r=[],h=n;h>0;h--)s[h]||(r=__spreadArray([h],r,!0));if(r.length<1)return!1;for(var p=0,u=r;p<u.length;p++){var d=u[p];this.calculate___SetStagePositionInternal(this.parameters.Stage,d/o,e,a);var m=a.getShadow();e?this.backwardsCache.setCache(d,m):this.forwardCache.setCache(d,m),this.useCache&&this.Debug&&console.log("Add missing",d)}return!0},o.prototype.readQuat=function(t,e){var i=t.X,a="string"==typeof i?e(i,this.params):i;a=isNaN(a)?0:a;var o=t.Y,n="string"==typeof o?e(o,this.params):o;n=isNaN(n)?0:n;var s=t.Z,r="string"==typeof s?e(s,this.params):s;r=isNaN(r)?0:r;var h=t.W,p="string"==typeof h?e(h,this.params):h;return{x:a,y:n,z:r,w:p=isNaN(p)?0:p}},o.prototype.detectQuaternion=function(t){return"True"===t.Q||"true"===t.Q||"TRUE"===t.Q||!0===t.Q},o.prototype.slerpInPlaceA=function(t,e,i){if(0===i)return t;if(1===i)return t=__assign({},e);var a=t.x,o=t.y,n=t.z,s=t.w,r=s*e.w+a*e.x+o*e.y+n*e.z;if(r<0?(t.w=-e.w,t.x=-e.x,t.y=-e.y,t.z=-e.z,r=-r):t=__assign({},e),r>=1)return t.w=s,t.x=a,t.y=o,t.z=n,t;var h=1-r*r;if(h<=1e-8){var p=1-i;return t.w=p*s+i*t.w,t.x=p*a+i*t.x,t.y=p*o+i*t.y,t.z=p*n+i*t.z,IG.Math.Quaternion.normalizeInPlace(t),t}var u=Math.sqrt(h),d=Math.atan2(u,r),m=Math.sin((1-i)*d)/u,l=Math.sin(i*d)/u;return t.w=s*m+t.w*l,t.x=a*m+t.x*l,t.y=o*m+t.y*l,t.z=n*m+t.z*l,t},o.prototype.SetMultiViaQuat=function(t,e,i,a,o,n,s,r){var h=!!r.SetQuaternionRotation;if((e&&i||e&&a||i&&a)&&h){var p,u={x:o*IG.Math.Deg2Rad,y:n*IG.Math.Deg2Rad,z:s*IG.Math.Deg2Rad};p=IG.Math.Quaternion.createFromEuler({x:u.x,y:u.y,z:u.z,order:"xyz"}),r.SetQuaternionRotation&&r.SetQuaternionRotation(t,p.x,p.y,p.z,p.w)}else e&&r.SetXRotation(t,o),i&&r.SetYRotation(t,n),a&&r.SetZRotation(t,s)},o.prototype.calculate___SetStagePositionInternal=function(t,i,a,o){var n=this;if(void 0!==this.animation&&(this.backwardAnimation||(a=!1),this.parameters.Stage===t)){i<0?i=0:i>1&&(i=1);var s=this.animation;a&&(s=this.backwardAnimation);var r={};this.animation.LinkedPoints&&Object.keys(this.animation.LinkedPoints).forEach((function(t){(n.animation.LinkedPoints[t]||[]).forEach((function(i){var a=n.GetComponentId(),s=a.split("_")[0]+"__",h=e.getAbsPath(a,t),p=e.Util.GetLocalTransform(s+".",h,o),u=o.GetVisibility(h);r[i]={ppath:t,tf:p,oldvisibility:u}}))}));var h=new Array;s._loops.forEach((function(t){var a=!1;t.states.forEach((function(s){if(!1===a&&i<=s.time){var r=n.GetComponentId();if("."!==t.path&&(r=e.getAbsPath(r,t.path)),!1===o.IsValid(r))return;h.push(r);var p=/param(\d+)/i,u=function(t,e){var i=t.match(p);if(i){var a=parseInt(i[1]);return a--,parseFloat(e[a])}};if(void 0===s.state2){if(s.state1.Position){var d=o.GetPosition(r);if(void 0!==s.state1.Position.X){var m=s.state1.Position.X;d.x="string"==typeof m?u(m,n.params):m,d.x=isNaN(d.x)?0:d.x}if(void 0!==s.state1.Position.Y){var l=s.state1.Position.Y;d.y="string"==typeof l?u(l,n.params):l,d.y=isNaN(d.y)?0:d.y}if(void 0!==s.state1.Position.Z){var c=s.state1.Position.Z;d.z="string"==typeof c?u(c,n.params):c,d.z=isNaN(d.z)?0:d.z}o.SetPosition(r,d)}if(s.state1.Rotation)if(n.detectQuaternion(s.state1.Rotation)){var f=n.readQuat(s.state1.Rotation,u),S=IG.Math.Euler.createFromQuaternion(f,"xyz");o.SetQuaternionRotation?o.SetQuaternionRotation(r,f.x,f.y,f.z,f.w):(o.SetXRotation(r,S.x*IG.Math.Rad2Deg),o.SetYRotation(r,S.y*IG.Math.Rad2Deg),o.SetZRotation(r,S.z*IG.Math.Rad2Deg))}else{var I=!1,v=0,g=!1,P=0,A=!1,G=0;if(void 0!==s.state1.Rotation.X)v="string"==typeof(m=s.state1.Rotation.X)?u(m,n.params):m,v=isNaN(v)?0:v,I=!0;if(void 0!==s.state1.Rotation.Y)P="string"==typeof(l=s.state1.Rotation.Y)?u(l,n.params):l,P=isNaN(P)?0:P,g=!0;if(void 0!==s.state1.Rotation.Z)G="string"==typeof(c=s.state1.Rotation.Z)?u(c,n.params):c,G=isNaN(G)?0:G,A=!0;n.SetMultiViaQuat(r,I,g,A,v,P,G,o)}if(s.state1.Scaling){var y=o.GetScaling(r);if(void 0!==s.state1.Scaling.X){m=s.state1.Scaling.X;y.x="string"==typeof m?u(m,n.params):m,y.x=isNaN(y.x)?1:y.x}if(void 0!==s.state1.Scaling.Y){l=s.state1.Scaling.Y;y.y="string"==typeof l?u(l,n.params):l,y.y=isNaN(y.y)?1:y.y}if(void 0!==s.state1.Scaling.Z){c=s.state1.Scaling.Z;y.z="string"==typeof c?u(c,n.params):c,y.z=isNaN(y.z)?1:y.z}o.SetScaling(r,y)}if(void 0!==s.state1.Deformation){var M=s.state1.Deformation,R="string"==typeof M?u(M,n.params):M;R=isNaN(R)?0:R,o.SetDeformation(r,R)}if(void 0!==s.state1.Visibility)"string"==typeof(Y=s.state1.Visibility)&&(Y="true"===n.params[parseInt(Y.match(p)[1])-1]),o.SetVisibility(r,Y)}else{var C=(s.time-i)/s.period,b=1-C;if(s.state1.Position){d=o.GetPosition(r);if(void 0!==s.state1.Position.X){var w="string"==typeof(T=s.state1.Position.X)?u(T,n.params):T;w=isNaN(w)?0:w;var _="string"==typeof(D=s.state2.Position.X?s.state2.Position.X:0)?u(D,n.params):D;_=isNaN(_)||void 0===_?0:_,d.x=C*w+b*_}if(void 0!==s.state1.Position.Y){w="string"==typeof(X=s.state1.Position.Y)?u(X,n.params):X;w=isNaN(w)?0:w;_="string"==typeof(z=s.state2.Position.Y?s.state2.Position.Y:0)?u(z,n.params):z;_=isNaN(_)||void 0===_?0:_,d.y=C*w+b*_}if(void 0!==s.state1.Position.Z){w="string"==typeof(N=s.state1.Position.Z)?u(N,n.params):N;w=isNaN(w)?0:w;_="string"==typeof(L=s.state2.Position.Z?s.state2.Position.Z:0)?u(L,n.params):L;_=isNaN(_)||void 0===_?0:_,d.z=C*w+b*_}o.SetPosition(r,d)}else if(s.state2.Position){d=n.IGX_API.GetPosition(r);if(void 0!==s.state2.Position.X){_="string"==typeof(D=s.state2.Position.X)?u(D,n.params):D;_=isNaN(_)?0:_,d.x=b*_}if(void 0!==s.state2.Position.Y){_="string"==typeof(z=s.state2.Position.Y)?u(z,n.params):z;_=isNaN(_)?0:_,d.y=b*_}if(void 0!==s.state2.Position.Z){_="string"==typeof(L=s.state2.Position.Z)?u(L,n.params):L;_=isNaN(_)?0:_,d.z=b*_}o.SetPosition(r,d)}if(s.state1.Rotation)if(n.detectQuaternion(s.state1.Rotation)){var x=n.readQuat(s.state1.Rotation,u),V=n.readQuat(s.state2.Rotation,u),E=__assign({},x);E=n.slerpInPlaceA(E,V,b);S=IG.Math.Euler.createFromQuaternion(E,"xyz");o.SetQuaternionRotation?o.SetQuaternionRotation(r,E.x,E.y,E.z,E.w):(o.SetXRotation(r,S.x*IG.Math.Rad2Deg),o.SetYRotation(r,S.y*IG.Math.Rad2Deg),o.SetZRotation(r,S.z*IG.Math.Rad2Deg))}else{I=!1,v=0,g=!1,P=0,A=!1,G=0;if(void 0!==s.state1.Rotation.X){w="string"==typeof(T=s.state1.Rotation.X)?u(T,n.params):T;w=isNaN(w)?0:w;_="string"==typeof(D=s.state2.Rotation.X?s.state2.Rotation.X:0)?u(D,n.params):D;I=!0,v=C*w+b*(_=isNaN(_)||void 0===_?0:_)}if(void 0!==s.state1.Rotation.Y){w="string"==typeof(X=s.state1.Rotation.Y)?u(X,n.params):X;w=isNaN(w)?0:w;_="string"==typeof(z=s.state2.Rotation.Y?s.state2.Rotation.Y:0)?u(z,n.params):z;g=!0,P=C*w+b*(_=isNaN(_)||void 0===_?0:_)}if(void 0!==s.state1.Rotation.Z){w="string"==typeof(N=s.state1.Rotation.Z)?u(N,n.params):N;w=isNaN(w)?0:w;_="string"==typeof(L=s.state2.Rotation.Z?s.state2.Rotation.Z:0)?u(L,n.params):L;A=!0,G=C*w+b*(_=isNaN(_)||void 0===_?0:_)}n.SetMultiViaQuat(r,I,g,A,v,P,G,o)}else if(s.state2.Rotation)if(n.detectQuaternion(s.state2.Rotation)){f=n.readQuat(s.state2.Rotation,u),S=IG.Math.Euler.createFromQuaternion(f,"xyz");o.SetQuaternionRotation?o.SetQuaternionRotation(r,f.x,f.y,f.z,f.w):(o.SetXRotation(r,S.x*IG.Math.Rad2Deg),o.SetYRotation(r,S.y*IG.Math.Rad2Deg),o.SetZRotation(r,S.z*IG.Math.Rad2Deg))}else{I=!1,v=0,g=!1,P=0,A=!1,G=0;if(void 0!==s.state2.Rotation.X){_="string"==typeof(D=s.state2.Rotation.X)?u(D,n.params):D;I=!0,v=b*(_=isNaN(_)?0:_)}if(void 0!==s.state2.Rotation.Y){_="string"==typeof(z=s.state2.Rotation.Y)?u(z,n.params):z;g=!0,P=b*(_=isNaN(_)?0:_)}if(void 0!==s.state2.Rotation.Z){_="string"==typeof(L=s.state2.Rotation.Z)?u(L,n.params):L;A=!0,G=b*(_=isNaN(_)?0:_)}console.log("interpolated rotation x!"),n.SetMultiViaQuat(r,I,g,A,v,P,G,o)}if(s.state1.Scaling){y=o.GetScaling(r);if(void 0!==s.state1.Scaling.X){var T;w="string"==typeof(T=s.state1.Scaling.X)?u(T,n.params):T;w=isNaN(w)?1:w;_="string"==typeof(D=s.state2.Scaling.X?s.state2.Scaling.X:1)?u(D,n.params):D;void 0===(_=isNaN(_)?1:_)&&(_=1),y.x=C*w+b*_}if(void 0!==s.state1.Scaling.Y){var X;w="string"==typeof(X=s.state1.Scaling.Y)?u(X,n.params):X;w=isNaN(w)?1:w;_="string"==typeof(z=s.state2.Scaling.Y?s.state2.Scaling.Y:1)?u(z,n.params):z;void 0===(_=isNaN(_)?1:_)&&(_=1),y.y=C*w+b*_}if(void 0!==s.state1.Scaling.Z){var N;w="string"==typeof(N=s.state1.Scaling.Z)?u(N,n.params):N;w=isNaN(w)?1:w;_="string"==typeof(L=s.state2.Scaling.Z?s.state2.Scaling.Z:1)?u(L,n.params):L;void 0===(_=isNaN(_)?1:_)&&(_=1),y.z=C*w+b*_}o.SetScaling(r,y)}else if(s.state2.Scaling){y=o.GetScaling(r);if(void 0!==s.state2.Scaling.X){var D;_="string"==typeof(D=s.state2.Scaling.X)?u(D,n.params):D;_=isNaN(_)?1:_,y.x=C+b*_}if(void 0!==s.state2.Scaling.Y){var z;_="string"==typeof(z=s.state2.Scaling.Y)?u(z,n.params):z;_=isNaN(_)?1:_,y.y=C+b*_}if(void 0!==s.state2.Scaling.Z){var L;_="string"==typeof(L=s.state2.Scaling.Z)?u(L,n.params):L;_=isNaN(_)?1:_,y.z=C+b*_}o.SetScaling(r,y)}if(void 0!==s.state1.Deformation){var k=s.state1.Deformation;w="string"==typeof k?u(k,n.params):k;w=isNaN(w)?0:w;_="string"==typeof(F=s.state2.Deformation)?u(F,n.params):F;void 0===(_=isNaN(_)?0:_)&&(_=0),o.SetDeformation(r,C*w+b*_)}else if(void 0!==s.state2.Deformation){var F;_="string"==typeof(F=s.state2.Deformation)?u(F,n.params):F;_=isNaN(_)?0:_,o.SetDeformation(r,b*_)}if(void 0!==s.state1.Visibility)"string"==typeof(Y=s.state1.Visibility)&&(Y="true"===n.params[parseInt(Y.match(p)[1])-1]),o.SetVisibility(r,Y);else if(void 0!==s.state2.Visibility){var Y;"string"==typeof(Y=s.state2.Visibility)&&(Y="true"===n.params[parseInt(Y.match(p)[1])-1]),o.SetVisibility(r,Y)}}a=!0}}))}));var p=this.kinematics;a&&(p=this.backwardKinematics),p&&p.KinematicSolver(this.GetComponentId(),this.params,h,o),r&&Object.keys(r).forEach((function(t){var i=r[t].ppath,a=r[t].oldvisibility,s=n.GetComponentId(),h=s.split("_")[0]+"__",p=e.getAbsPath(s,i),u=e.Util.GetLocalTransform(h+".",p,o),d=o.GetVisibility(p);o.SetPoint(h+".",t,u[0],u[1],d!=a?d:null)}))}},o.prototype.GetHints=function(){var t=[0];return this.animation&&(this.animation.Animations||[]).forEach((function(e){e.States&&Object.keys(e.States).forEach((function(e){t.push(parseFloat(e+""))}))})),this.backwardAnimation&&(this.backwardAnimation.Animations||[]).forEach((function(e){e.States&&Object.keys(e.States).forEach((function(e){t.push(parseFloat(e+""))}))})),t.push(1),t},o.PARAM_COUNT=50,o.windowReplacement={comment:"animCaches parent without window object"},o}(t.Core.Interactor);e.AnimationInteractor=o,e.Test1={Id:"Test1",Animations:[{States:{.1:{Position:{Y:.1}},.6:{Position:{Y:.2}},.9:{Position:{Y:1}}}}]}}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,e.Start,0),e.SetupValue(t,e.End,1),e.SetupAnimation(t),a=i.call(this,t)||this,void 0===t.Inverse?t.Inverse=!1:"string"==typeof t.Inverse?t.Inverse=!0===t.Inverse||"true"===t.Inverse||"1"===t.Inverse||1===t.Inverse:t.Inverse=1==t.Inverse,a.parameters[e.Manual]=!1,a.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(t){this.SetStagePosition(this.parameters.Stage,t===e.Start?this.parameters[e.Start]:this.parameters[e.End])},a.prototype.SetStagePosition=function(e,i){var a;e===this.parameters.Stage&&(a=this.bAutoReset?i<.5?2*(this.parameters.Inverse?1-i-.5:i):2*(1-(this.parameters.Inverse?1-i+.5:i)):this.parameters.Inverse?1-i:i,e===this.parameters.Stage&&t.API.SetDeformation(this.GetComponentId(),a))},a}(t.Core.Interactor);e.DeformationInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a=this;return e.SetupValue(t,"Maximum",90),e.SetupValue(t,"Minimum",0),e.SetupValue(t,"Thickness",0),e.SetupValue(t,"Gap",0),"X"!=t.RotationAxis&&"Y"!=t.RotationAxis&&"Z"!=t.RotationAxis&&(t.RotationAxis="X"),"Right"!=t.Offset&&(t.Offset="Left"),e.SetupAnimation(t),(a=i.call(this,t)||this).bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?a.bAutoReset=!0:"string"!=typeof t.AutoReset&&(a.bAutoReset=t.AutoReset),a}return __extends(a,i),a.prototype.SetPosition=function(t){switch(t){case e.Start:this.setPosition(0);break;case e.End:this.setPosition(1)}},a.prototype.setPosition=function(e){this.position||(this.position=t.API.GetPosition(this.GetComponentId()));var i=this.parameters.Offset,a=this.parameters.RotationAxis,o=this.parameters.Thickness*e,n=this.parameters.Gap*e;if(!(void 0===this.parameters.Start&&void 0===this.parameters.StageStart&&void 0===this.parameters.Minimum||void 0===this.parameters.End&&void 0===this.parameters.StageEnd&&void 0===this.parameters.Maximum)){var s,r=(s=void 0===this.parameters.StageStart?void 0===this.parameters.Start?this.parameters.Minimum:this.parameters.Start:this.parameters.StageStart)+((void 0===this.parameters.StageEnd?void 0===this.parameters.End?this.parameters.Maximum:this.parameters.End:this.parameters.StageEnd)-s)*e,h=new t.Float3;if(h.x=this.position.x,h.y=this.position.y,h.z=this.position.z,console.log(i,a,h,r),"Left"===i)switch(a){case"X":h.z-=o,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetXRotation(this.GetComponentId(),r);break;case"Y":h.x-=o,h.z+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetYRotation(this.GetComponentId(),r);break;case"Z":h.x-=o,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetZRotation(this.GetComponentId(),-r)}else switch(a){case"X":h.z+=o,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetXRotation(this.GetComponentId(),-r);break;case"Y":h.x+=o,h.z+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetYRotation(this.GetComponentId(),-r);break;case"Z":h.x+=o,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetZRotation(this.GetComponentId(),r)}}},a.prototype.SetStagePosition=function(t,e){if(t.toString()===this.parameters.Stage.toString()){var i=e;this.bAutoReset&&(i=e<.5?2*e:2*(1-e)),this.setPosition(i)}},a.prototype.GetHints=function(){var t=[0];return this.bAutoReset&&t.push(.5),t.push(1),t},a}(t.Core.Interactor);e.OffsetRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function a(t){var a;return e.SetupAnimation(t),a=i.call(this,t)||this,"string"==typeof t.Threshold?t.Threshold=Number(t.Threshold):"number"==typeof t.Threshold?t.Threshold=t.Threshold:void 0===t.Threshold&&(t.Threshold=.1),a}return __extends(a,i),a.prototype.SetPosition=function(t){this.SetStagePosition(this.parameters.Stage,t===e.Start?0:1)},a.prototype.SetStagePosition=function(e,i){e===this.parameters.Stage&&t.API.SetVisibility(this.GetComponentId(),i<this.parameters.Threshold)},a}(t.Core.Interactor);e.VisibilityInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),console.log("IG.GFX.Standard 1.11.0 (1.11.0.100). Copyright (C) 2013 - 2025 intelligentgraphics AG. All Rights Reserved."),!IGX.Float3){var Float3=function(t,e,i){this.x=void 0===t?0:t,this.y=void 0===e?0:e,this.z=void 0===i?0:i};IGX.Float3=Float3}!function(t){!function(e){var i=function(t){function i(i){return e.SetupAnimation(i),t.call(this,i)||this}return __extends(i,t),i.prototype.SetPosition=function(t){},i.prototype.SetStagePosition=function(t,e){},i}(t.Core.Interactor);e.EmptyInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={}));
8
+ var IGX,__assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var e,i=1,o=arguments.length;i<o;i++)for(var a in e=arguments[i])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},__assign.apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(t,e,i){if(i||2===arguments.length)for(var o,a=0,n=e.length;a<n;a++)!o&&a in e||(o||(o=Array.prototype.slice.call(e,0,a)),o[a]=e[a]);return t.concat(o||Array.prototype.slice.call(e))},__extends=this&&this.__extends||function(){var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},t(e,i)};return function(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}(),globalObject="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this;if(function(t){!function(t){t.Minimum="Minimum",t.Maximum="Maximum",t.Snap="Snap",t.Raster="Raster",t.Values="Values",t.StartValue="StartValue",t.EndValue="EndValue",t.StartTime="StartTime",t.EndTime="EndTime",t.Steps="Steps",t.Mode="Mode",t.XPosition="XPosition",t.YPosition="YPosition",t.ZPosition="ZPosition",t.XRotation="XRotation",t.YRotation="YRotation",t.ZRotation="ZRotation",t.Start="Start",t.End="End",t.Stage="Stage",t.Period="Period",t.BackwardPeriod="BackwardPeriod",t.StageStart="StageStart",t.StageEnd="StageEnd",t.Manual="Manual",t.cString="string",t.cNumber="number";var e=/,/g;t.SetupValue=function(i,o,a){void 0===i[o]?i[o]=a:typeof i[o]===t.cNumber||(typeof i[o]===t.cString?(i[o]=Number(i[o].replace(e,".")),typeof i[o]!==t.cNumber&&(i[o]=a)):i[o]=a)},t.SetupValues=function(t,e){if(void 0===t.Values)t.Values=e;else if("string"==typeof t.Values){var i=t.Values.trim(),o=(i=i.slice(1,i.length-1)).split(",");t.Values=[];for(var a=0,n=o;a<n.length;a++){var r=n[a];t.Values.push(Number(r))}}t.Values.sort(function(t,e){return t-e})},t.GetValue=function(t,e){return t[e]},t.SetupAnimation=function(t){"string"==typeof t.Start&&(t.Start=Number(t.Start)),"string"==typeof t.End&&(t.End=Number(t.End)),"string"==typeof t.StageStart&&(t.StageStart=Number(t.StageStart)),"string"==typeof t.StageEnd&&(t.StageEnd=Number(t.StageEnd)),void 0===t.Stage?t.Stage=1:"string"==typeof t.Stage&&(t.Stage=Number(t.Stage)),void 0===t.Period?t.Period=1:"string"==typeof t.Period&&(t.Period=Number(t.Period)),void 0===t.BackwardPeriod?t.BackwardPeriod=t.Period:"string"==typeof t.BackwardPeriod&&(t.BackwardPeriod=Number(t.BackwardPeriod)),"string"==typeof t.IntermediateCalculation&&(t.IntermediateCalculation=Number(t.IntermediateCalculation)),void 0===t.Record?t.Record=!1:"string"==typeof t.Record&&(t.Record="true"===t.Record.toLowerCase()),void 0===t.DebugLevel?t.DebugLevel=0:"string"==typeof t.DebugLevel&&(t.DebugLevel=Number(t.DebugLevel))},t.getAbsPath=function(t,e){var i=t.slice(0);if("."!==e)if(0===e.indexOf("..")){var o=t.lastIndexOf(".");i=(-1===o?t.substring(0,t.lastIndexOf("o")):t.substring(0,o+1))+e.substr(2)}else"."===t[t.length-1]?i+=e:i+="."+e;return i},t.findGlobalByPath=function(t){for(var e=t.split("."),i=globalObject,o=0;o<e.length;o++){if(null==(i=i[e[o]]))return}return i}}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(t){var e=function(){};t.AnimationState=e;var i=function(){};t.Animation=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function i(t){void 0===t&&(t=!1),this.useShadowApi=!1,this.callLog=[],this.printCallAsError=!1,this.debug=t,this.debug&&console.log("new ApiConnection()")}return i.prototype.GetRoots=function(){throw new Error("Method not implemented.")},i.prototype.GetChildren=function(t){throw new Error("Method not implemented.")},i.prototype.GetNeighbor=function(t,e){throw new Error("Method not implemented.")},i.prototype.GetInteractor=function(t){throw new Error("Method not implemented.")},i.prototype.GetEvaluator=function(t){throw new Error("Method not implemented.")},i.prototype.GetGeometry=function(t){throw new Error("Method not implemented.")},i.prototype.GetLayer=function(t){throw new Error("Method not implemented.")},i.prototype.GetMaterial=function(t){throw new Error("Method not implemented.")},i.prototype.GetMaterialCategory=function(t){throw new Error("Method not implemented.")},i.prototype.GetLocalPosition=function(t,e){throw new Error("Method not implemented.")},i.prototype.GetWorldPosition=function(t){throw new Error("Method not implemented.")},i.prototype.GetInteractionData=function(t,e,i,o){throw new Error("Method not implemented.")},Object.defineProperty(i.prototype,"GetTransformRelativeTo",{get:function(){if(!this.useShadowApi)return t.API.GetTransformRelativeTo},enumerable:!1,configurable:!0}),i.prototype.getNodeInfo=function(e){return{position:t.API.GetPosition(e),rotation:[t.API.GetXRotation(e),t.API.GetYRotation(e),t.API.GetZRotation(e)],scaling:t.API.GetScaling(e),visibility:t.API.GetVisibility(e),deformation:t.API.GetDeformation?t.API.GetDeformation(e):0,activedeformation:!1}},i.prototype.makeShadow=function(t,e){var i={};if(i[t]=__assign({},this.getNodeInfo(t)),e)for(var o=t+".",a=0,n=e;a<n.length;a++){var r=n[a];i[o+r]=__assign({},this.getNodeInfo(o+r))}return i},i.prototype.setShadowWithParameters=function(t,e,i,o,a,n){var r={},s=[t];e.forEach(function(t){return s=__spreadArray(__spreadArray([],s,!0),[t],!1)});var h=t;h=h.slice(0,h.lastIndexOf("_")+1);for(var p=0,u=s;p<u.length;p++){for(var d=u[p],m=void 0,l=0;l<o._loops.length;l++)if(d===o._loops[l].path){m=l;break}if(m){var c=t+"."+d;"."===d&&(c=t);var f=o._loops[m];r[c]=__assign({},this.getNodeInfo(c)),void 0!==f.states[0].state1.Deformation&&(r[c].deformation=Number(f.states[0].state1.Deformation)),isNaN(r[c].deformation)&&(r[c].deformation=Number(a[r[c].deformation]))}else{var S="."===d?t:d===t?d:t+"."+d;r[S]=__assign({},this.getNodeInfo(S))}}for(var I=0,v=i;I<v.length;I++){var g=v[I];r[h+g]=__assign({},this.getNodeInfo(h+g))}return this.shadow=this.cloneShadow(r),r},i.prototype.cloneShadow=function(t){var e=null!=t?t:this.shadow,i={};for(var o in e){var a=e[o];i[o]=__assign(__assign({},a),{position:__assign({},a.position),rotation:__spreadArray([],a.rotation,!0),scaling:__assign({},a.scaling)})}return i},i.prototype.setShadow=function(t,e){return this.shadow=this.makeShadow(t,e),this.cloneShadow()},i.prototype.getShadow=function(){if(this.shadow)return this.cloneShadow()},i.prototype.setUseShadow=function(t){this.useShadowApi=t},i.prototype.getUseShadow=function(){return this.useShadowApi},i.prototype.setOriginalSceneFromShadow=function(i,o,a){if(this.shadow||i){var n=null!=i?i:this.shadow,r={};for(var s in a&&o&&Object.keys(a).forEach(function(i){(a[i]||[]).forEach(function(a){var n=o,s=n.split("_")[0]+"__",h=e.getAbsPath(n,i),p=e.Util.GetLocalTransform(s+".",h,t.API),u=t.API.GetVisibility(h);r[a]={ppath:i,tf:p,oldvisibility:u}})}),n){var h=n[s];t.API.SetPosition(s,h.position),t.API.SetVisibility(s,h.visibility),t.API.SetScaling(s,h.scaling),t.API.SetXRotation(s,h.rotation[0]),t.API.SetYRotation(s,h.rotation[1]),t.API.SetZRotation(s,h.rotation[2]),h.activedeformation&&t.API.SetDeformation(s,h.deformation)}r&&o&&Object.keys(r).forEach(function(i){var a=r[i].ppath,n=r[i].oldvisibility,s=o,h=s.split("_")[0]+"__",p=e.getAbsPath(s,a),u=e.Util.GetLocalTransform(h+".",p,t.API),d=t.API.GetVisibility(p);t.API.SetPoint(h+".",i,u[0],u[1],d!=n?d:null)})}},i.prototype.appendNode=function(e){return console.warn("WTF appendNode() onDemand",e),!!t.API.IsValid(e)&&(this.shadow[e]=__assign({},this.getNodeInfo(e)),!0)},i.prototype.SetPoint=function(e,i,o,a,n){this.useShadowApi?console.warn("SetPoint not implemented !!!"):t.API.SetPoint(e,i,o,a,n)},i.prototype.GetParent=function(e){var i=t.API.GetParent;return this.printCallAsError&&console.error("disabled GetParent() [id] called !!!"),this.useShadowApi?this.useShadowApi?i(e):void 0:i(e)},i.prototype.IsValid=function(e){var i=t.API.IsValid;return this.printCallAsError&&console.error("disabled IsValid() called !!!"),this.useShadowApi?this.useShadowApi?i(e):void 0:i(e)},i.prototype.GetPosition=function(e){var i,o=t.API.GetPosition;if(this.printCallAsError&&console.error("disabled GetPosition() called !!!"),!this.useShadowApi){var a=o(e);return this.debug&&this.callLog.push("GetPosition native "+e+" "+JSON.stringify(a)),a}var n=null===(i=this.shadow)||void 0===i?void 0:i[e];if(n){a=n.position;return this.debug&&this.callLog.push("GetPosition ovrw "+e+" "+JSON.stringify(a)),a}return this.appendNode(e)?(n=this.shadow[e]).position:(console.warn("nothing found for "+e),o(e))},i.prototype.GetVisibility=function(e){var i,o=t.API.GetVisibility;if(this.printCallAsError&&console.error("disabled GetVisibility() called !!!"),!this.useShadowApi)return o(e);var a=null===(i=this.shadow)||void 0===i?void 0:i[e];return a?a.visibility:this.appendNode(e)?(a=this.shadow[e]).visibility:(console.warn("nothing found for "+e),o(e))},i.prototype.GetScaling=function(e){var i,o=t.API.GetScaling;if(this.printCallAsError&&console.error("disabled GetScaling() called !!!"),!this.useShadowApi)return o(e);var a=null===(i=this.shadow)||void 0===i?void 0:i[e];return a?a.scaling:this.appendNode(e)?(a=this.shadow[e]).scaling:(console.warn("nothing found for "+e),o(e))},i.prototype.GetXRotation=function(e){var i,o=t.API.GetXRotation;if(this.printCallAsError&&console.error("disabled GetXRotation() called !!!"),!this.useShadowApi)return o(e);var a=null===(i=this.shadow)||void 0===i?void 0:i[e];return a?a.rotation[0]:this.appendNode(e)?(a=this.shadow[e]).rotation[0]:(console.warn("nothing found for "+e),o(e))},i.prototype.GetYRotation=function(e){var i,o=t.API.GetYRotation;if(this.printCallAsError&&console.error("disabled GetYRotation() called !!!"),!this.useShadowApi)return o(e);var a=null===(i=this.shadow)||void 0===i?void 0:i[e];return a?a.rotation[1]:this.appendNode(e)?(a=this.shadow[e]).rotation[1]:(console.warn("nothing found for "+e),o(e))},i.prototype.GetZRotation=function(e){var i,o=t.API.GetZRotation;if(this.printCallAsError&&console.error("disabled GetZRotation() called !!!"),!this.useShadowApi)return o(e);var a=null===(i=this.shadow)||void 0===i?void 0:i[e];return a?a.rotation[2]:this.appendNode(e)?(a=this.shadow[e]).rotation[2]:(console.warn("nothing found for "+e),o(e))},i.prototype.GetDeformation=function(e){var i;if(this.useShadowApi){var o=null===(i=this.shadow)||void 0===i?void 0:i[e];return o&&null!==o.deformation&&void 0!==o.deformation?o.deformation:0}return t.API.GetDeformation?t.API.GetDeformation(e):0},i.prototype.SetDeformation=function(e,i){var o,a=t.API.SetDeformation;if(this.printCallAsError&&console.error("disabled SetDeformation() called !!!"),this.useShadowApi){var n=null===(o=this.shadow)||void 0===o?void 0:o[e];if(n)return n.deformation=i,void(n.activedeformation=!0);if(!this.appendNode(e))return console.warn("nothing found for "+e),a(e,i);n.deformation=i}else a(e,i)},i.prototype.SetPosition=function(e,i){var o;if(this.printCallAsError&&console.error("disabled SetPosition() called !!!"),this.useShadowApi){var a=null===(o=this.shadow)||void 0===o?void 0:o[e];return a?void(a.position=i):void console.warn("set: nothing found for "+e)}t.API.SetPosition(e,i)},i.prototype.SetQuaternionRotation=function(e,i,o,a,n){var r;if(t.API.SetQuaternionRotation){if(t.API.SetQuaternionRotation(e,i,o,a,n),this.useShadowApi){var s=null===(r=this.shadow)||void 0===r?void 0:r[e];if(s){var h={x:i,y:o,z:a,w:n},p=IG.Math.Euler.createFromQuaternion(h,"xyz");return s.rotation[0]=p.x*IG.Math.Rad2Deg,s.rotation[1]=p.y*IG.Math.Rad2Deg,void(s.rotation[2]=p.z*IG.Math.Rad2Deg)}return void console.warn("set: nothing found for "+e)}}else{h={x:i,y:o,z:a,w:n},p=IG.Math.Euler.createFromQuaternion(h,"xyz");this.SetXRotation(e,p.x*IG.Math.Rad2Deg),this.SetYRotation(e,p.y*IG.Math.Rad2Deg),this.SetZRotation(e,p.z*IG.Math.Rad2Deg)}},i.prototype.SetXRotation=function(e,i){var o;if(this.printCallAsError&&console.error("disabled SetXRotation() called !!!"),this.useShadowApi){var a=null===(o=this.shadow)||void 0===o?void 0:o[e];return a?void(a.rotation[0]=i):void console.warn("set: nothing found for "+e)}t.API.SetXRotation(e,i)},i.prototype.SetYRotation=function(e,i){var o;if(this.printCallAsError&&console.error("disabled SetYRotation() called !!!"),this.useShadowApi){var a=null===(o=this.shadow)||void 0===o?void 0:o[e];return a?void(a.rotation[1]=i):void console.warn("set: nothing found for "+e)}t.API.SetYRotation(e,i)},i.prototype.SetZRotation=function(e,i){var o;if(this.printCallAsError&&console.error("disabled SetZRotation() called !!!"),this.useShadowApi){var a=null===(o=this.shadow)||void 0===o?void 0:o[e];return a?void(a.rotation[2]=i):void console.warn("set: nothing found for "+e)}t.API.SetZRotation(e,i)},i.prototype.SetVisibility=function(e,i){var o;if(this.printCallAsError&&console.error("disabled SetVisibility() called !!!"),this.useShadowApi){var a=null===(o=this.shadow)||void 0===o?void 0:o[e];return a?void(a.visibility=i):void console.warn("set: nothing found for "+e)}t.API.SetVisibility(e,i)},i.prototype.SetScaling=function(e,i){var o;if(this.printCallAsError&&console.error("disabled SetSCaling() called !!!"),this.useShadowApi){var a=null===(o=this.shadow)||void 0===o?void 0:o[e];return a?void(a.scaling=i):void console.warn("set: nothing found for "+e)}t.API.SetScaling(e,i)},i}();e.ApiConnection=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function e(){}return e.dlog=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];e.debug&&console.log(t)},e.calculatePosition=function(i,a,n,r,s,h,p,u,d,m){var l,c=r,f=s,S=p,I=h;d=d?[f,I].concat(d):[f,I],e.dlog("internal top attached",d),l=null!=m?o.GetLocalPosition(m,i,t.API):t.API.GetWorldPosition(i),e.dlog("#--MatressInitialPosition",l);var v,g,P,G,A,y=a,M=n;e.dlog("minangleDeg",a),e.dlog("maxangleDeg",M),null!=m?(v=o.GetLocalPosition(m,c,t.API),g=o.GetLocalPosition(m,f,t.API),P=o.GetLocalPosition(m,S,t.API),G=o.GetLocalPosition(m,I,t.API),A=o.GetLocalPosition(m,i,t.API)):(v=t.API.GetWorldPosition(c),g=t.API.GetWorldPosition(f),P=t.API.GetWorldPosition(S),G=t.API.GetWorldPosition(I),A=t.API.GetWorldPosition(i));var R={};d.forEach(function(i){e.dlog("attach1",i),R[i]={originalpos:null!=m?o.GetLocalPosition(m,i,t.API):t.API.GetWorldPosition(i),newpos:null},e.dlog("attached")}),e.dlog("leftLowPosRaw",v),e.dlog("leftUpPosRaw",g),e.dlog("rightLowPosRaw",P),e.dlog("rightUpPosRaw",G),e.dlog("articleToBeMoved",A);var C=IG.Math.Vector3.sub(P,v);C.y=0,e.dlog("baseLineDir",C);var b=IG.Math.Vector3.sub(v,P),_=IG.Math.Vector3.sub(g,v);b.y=0;var w=IG.Math.Vector3.magnitude(b)*IG.Math.Vector3.magnitude(_),x=IG.Math.Vector3.innerProduct(b,_);e.dlog("mag",w,"dot",x);var T=IG.Math.MathS.acos(x/w);if(e.dlog("baseAngleRad",T,"baseAngleDeg",T*IG.Math.Rad2Deg),0===u){var E=IG.Math.Vector3.sub(G,P),V=IG.Math.Vector3.magnitude(b)*IG.Math.Vector3.magnitude(E),X=IG.Math.Vector3.innerProduct(b,E),N=IG.Math.MathS.acos(X/V);e.dlog("0: initial A angle ",T*IG.Math.Rad2Deg,"deg","initial B angle ",N*IG.Math.Rad2Deg,"deg")}var z=IG.Math.Vector3.normalize(IG.Math.Vector3.crossProduct(b,_));e.dlog("rotationnormal",z);var D=y*IG.Math.Deg2Rad,L=D+u*(M*IG.Math.Deg2Rad-D),k=L-T;e.dlog(u,"baseAngleRad:",T,"angwanted:",L,"ang difference:",k);var Y=IG.Math.Matrix3.makeRotationMatrixFromNormalVector(z,k);e.dlog("rotationsmatrix",Y);var F=IG.Math.Vector3.add(v,IG.Math.Matrix3.multiplyWithVector3(IG.Math.Vector3.sub(g,v),Y));e.dlog("rotated",F);var O=F.x,Z=F.y,B=F.z,J=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,G))*IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,G)),H=P.x,Q=P.y,K=P.z,U=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(G,P))*IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(G,P));e.dlog(O,Z,B,"---\x3e",H,Q,K,"]");var j=IG.Math.Vector3.sub(F,P),W=new t.Float3(0,0,0);2*H-2*O!=0?W.x=(J-U-O*O+H*H-Z*Z+Q*Q-B*B+K*K)/(2*H-2*O):2*Q-2*Z!=0?W.y=(J-U-O*O+H*H-Z*Z+Q*Q-B*B+K*K)/(2*Q-2*Z):2*K-2*B!=0?W.z=(J-U-O*O+H*H-Z*Z+Q*Q-B*B+K*K)/(2*K-2*B):console.warn("plane normal is null vector ?!");var q={point:W,normal:IG.Math.Vector3.normalize({x:2*H-2*O,y:2*Q-2*Z,z:2*K-2*B})},$=o.intersectionPoint({origin:P,direction:j},q);e.dlog("schnittkreiszentrum",$);var tt=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(g,G)),et=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub($,F)),it=IG.Math.MathS.sqrt(tt*tt-et*et);isNaN(it)&&console.warn("physical breakdown @ ",L*IG.Math.Rad2Deg),e.dlog("schnittkreisradius",it);var ot=IG.Math.Vector3.normalize(IG.Math.Vector3.crossProduct(q.normal,z));e.dlog(ot);var at=IG.Math.Vector3.add($,IG.Math.Vector3.scalarMultiply(it,ot));e.dlog("tRotatedUpperRight",at);var nt=C,rt=IG.Math.Vector3.sub(G,g),st=IG.Math.Vector3.magnitude(nt)*IG.Math.Vector3.magnitude(rt),ht=IG.Math.Vector3.innerProduct(nt,rt),pt=IG.Math.MathS.acos(ht/st);e.dlog("old baseAngle Deg ",pt*(180/Math.PI));var ut=C,dt=IG.Math.Vector3.sub(at,F),mt=IG.Math.Vector3.magnitude(ut)*IG.Math.Vector3.magnitude(dt),lt=IG.Math.Vector3.innerProduct(ut,dt),ct=IG.Math.MathS.acos(lt/mt),ft=ct*IG.Math.Rad2Deg;e.dlog("new baseAngle Deg ",ct*IG.Math.Rad2Deg,"newbaseAngleRad:",ct);var St=o.rotatedVectorAaroundPointBbyNormalCangleRadR(g,l,z,-(ct-pt));e.dlog("detachedUpPosRaw calc",St);var It=IG.Math.Vector3.sub(F,St);return Object.keys(R).forEach(function(t){var e=R[t],i=o.rotatedVectorAaroundPointBbyNormalCangleRadR(e.originalpos,l,z,-(ct-pt));e.newpos=IG.Math.Vector3.add(i,It)}),{rotation:ft,positionDifference:It,topAttached:R,baseLineDir:C}},e.calculateAngleAgainstBaseBack=function(e,i,a,n,r){var s;r||(r=t.API),s=null!=n?o.GetLocalPosition(n,i,r):t.API.GetWorldPosition(i);var h=IG.Math.Vector3.sub(s,e.topAttached[a].newpos),p=e.baseLineDir;return IG.Math.Vector3.angleBetween(h,p)*IG.Math.Rad2Deg},e.debug=!1,e}();e.FourBar=i;var o=function(){function e(){}return e.factorOfDirectionFromRayToPlane=function(t,e){var i=IG.Math.Vector3.innerProduct(e.normal,t.direction),o=-IG.Math.Vector3.innerProduct(e.point,e.normal);if(0===i)return 0===IG.Math.Vector3.innerProduct(e.normal,t.origin)+o?0:null;var a=-(IG.Math.Vector3.innerProduct(t.origin,e.normal)+o)/i;return a>=0?a:null},e.intersectionPoint=function(t,i){var o=e.factorOfDirectionFromRayToPlane(t,i);if(null===o)return null;var a=IG.Math.Vector3.scalarMultiply(o,t.direction);return IG.Math.Vector3.add(a,t.origin)},e.rotatedVectorAaroundPointBbyNormalCangleRadR=function(t,e,o,a){var n=o.x,r=o.y,s=o.z,h=Math.sin,p=Math.cos,u=1-p(a),d=h(a),m=p(a),l=[[n*n*u+m,n*r*u-s*d,n*s*u+r*d],[r*n*u+s*d,r*r*u+m,r*s*u-n*d],[s*n*u-r*d,s*r*u+n*d,s*s*u+m]],c=IG.Math.Vector3.add(e,IG.Math.Matrix3.multiplyWithVector3(IG.Math.Vector3.sub(t,e),IG.Math.Matrix3.create(l)));return i.dlog("RotateVectorAaroundPointBbyNormalCangleRadR",t,e,o,a,"--\x3e",c),c},e.GetLocalPosition=function(t,e,i){return this.GetLocalTransform(t,e,i)[0]},e.GetLocalRotation=function(t,e,i){var o=this.GetLocalTransform(t,e,i);return IG.Math.Euler.createFromQuaternion(o[1])},e.GetLocalTransform=function(e,i,o){var a=i;if(o||(o=t.API),o.IsValid(a)){if(void 0!==o.GetTransformRelativeTo)return o.GetTransformRelativeTo(i,e);if(o.IsValid(e)){if(null==o.GetParent(a))return console.warn("node has no parent!"),[new t.Float3,IG.Math.Quaternion.create(),new t.Float3(1,1,1)];if(a===e)return console.warn("node is root!"),[new t.Float3,IG.Math.Quaternion.create(),new t.Float3(1,1,1)];var n=new Array;for(n.push(a);a!==e;)a=o.GetParent(a),n.push(a);n.pop(),n.reverse();var r=IG.Math.Matrix4.create();n.forEach(function(t){var e,i,a=o.GetScaling(t),n={x:o.GetXRotation(t)*IG.Math.Deg2Rad,y:o.GetYRotation(t)*IG.Math.Deg2Rad,z:o.GetZRotation(t)*IG.Math.Deg2Rad};i=IG.Math.Quaternion.createFromEuler({x:n.x,y:n.y,z:n.z,order:"xyz"});var s=o.GetPosition(t);e=IG.Math.Matrix4.composeTRS(s,i,a),r=IG.Math.Matrix4.multiply(r,e)});var s=IG.Math.Matrix4.decomposeTRS(r);return[s.translate,s.rotation,s.scale]}console.warn("node is not valid!",e)}else console.warn("node is not valid!",a)},e.GetRelativePosition=function(e,i,o,a){if(!a.IsValid(e)||!a.IsValid(i)||!a.IsValid(o))return console.warn("GetRelativePosition: Path not valid."),null;if(void 0!==a.GetTransformRelativeTo)return a.GetTransformRelativeTo(o,i)[0];var n=t.Std.Util.GetLocalTransform(e,i,a),r=IG.Math.Matrix4.composeTRS(n[0],n[1],n[2]),s=IG.Math.Matrix4.getInverse(r),h=t.Std.Util.GetLocalTransform(e,o,a),p=IG.Math.Matrix4.composeTRS(h[0],h[1],h[2]),u=IG.Math.Matrix4.multiply(s,p);return IG.Math.Matrix4.decomposeTRS(u).translate},e.add=function(e,i){return new t.Float3(e.x+i.x,e.y+i.y,e.z+i.z)},e.sub=function(e,i){return new t.Float3(e.x-i.x,e.y-i.y,e.z-i.z)},e.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z},e.mag=function(t){return Math.sqrt(IG.Math.Vector3.innerProduct(t,t))},e.cross=function(e,i){return new t.Float3(e.y*i.z-e.z*i.y,e.z*i.x-e.x*i.z,e.x*i.y-e.y*i.x)},e.scale=function(e,i){return new t.Float3(e*i.x,e*i.y,e*i.z)},e.normalize=function(e){var i=IG.Math.Vector3.magnitude(e);return 0===i?null:new t.Float3(e.x/i,e.y/i,e.z/i)},e.multMat=function(e,i){return new t.Float3(e[0][0]*i.x+e[0][1]*i.y+e[0][2]*i.z,e[1][0]*i.x+e[1][1]*i.y+e[1][2]*i.z,e[2][0]*i.x+e[2][1]*i.y+e[2][2]*i.z)},e.angleBetweenRad=function(t,e){var i=IG.Math.Vector3.magnitude(t)*IG.Math.Vector3.magnitude(e),o=IG.Math.Vector3.innerProduct(t,e);return Math.acos(o/i)},e.rotationMatrix=function(t,e){var i=t,o=i.x,a=i.y,n=i.z,r=e,s=Math.sin,h=Math.cos,p=1-h(r),u=s(r),d=h(r);return[[o*o*p+d,o*a*p-n*u,o*n*p+a*u],[a*o*p+n*u,a*a*p+d,a*n*p-o*u],[n*o*p-a*u,n*a*p+o*u,n*n*p+d]]},e.DEG2RAD=Math.PI/180,e.RAD2DEG=180/Math.PI,e}();e.Util=o}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){var o,a;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o&&t.API.SetXRotation(this.GetComponentId(),o),void 0!==a&&t.API.SetXRotation(this.GetComponentId(),a))},o.prototype.SetStagePosition=function(i,o){var a,n,r;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o,Math.abs(r-a)<this.parameters[e.Snap]?r=a:Math.abs(r-n)<this.parameters[e.Snap]&&(r=n),t.API.SetXRotation(this.GetComponentId(),r)))},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis,this.absRotation=t.API.GetXRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetXRotation(this.GetComponentId()),a=t.API.GetInteractionData(this,e,"x",this.nullAxis);this.absRotation+=a.angle*t.API.MotionScale;var n=i?this.parameters.Snap:0;o=this.absRotation>=this.parameters.Maximum-n?this.parameters.Maximum:this.absRotation<=this.parameters.Minimum+n?this.parameters.Minimum:this.absRotation,t.API.SetXRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis},o.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),o=[0];return i>0&&o.push(i),this.bAutoReset&&(i>0&&o.push(.5-i),o.push(.5),i>0&&o.push(.5+i)),i>0&&o.push(1-i),o.push(1),o},o}(t.Core.Interactor);e.XRangeRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var o,a,n;if("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).x=o,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).x=a,t.API.SetPosition(this.GetComponentId(),n)}},o.prototype.SetStagePosition=function(i,o){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var a,n,r;a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o,Math.abs(r-a)<this.parameters[e.Snap]?r=a:Math.abs(r-n)<this.parameters[e.Snap]&&(r=n);var s=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(r,s.y,s.z))}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).x},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(this.startPosition,o.y,o.z));var a=this.parameters.Minimum,n=this.parameters.Maximum,r=i?this.parameters.Snap:0,s=t.API.GetInteractionData(this,e).point.x-this.osCoords.x,h=i?o.x:this.startPosition+.2*s;h>=n-r?h=n:h<=a+r&&(h=a),t.API.SetPosition(this.GetComponentId(),new t.Float3(h,o.y,o.z))},o.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),o=[0];return i>0&&o.push(i),this.bAutoReset&&(i>0&&o.push(.5-i),o.push(.5),i>0&&o.push(.5+i)),i>0&&o.push(1-i),o.push(1),o},o}(t.Core.Interactor);e.XRangeTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Raster,15),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){var o,a;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o&&t.API.SetXRotation(this.GetComponentId(),o),void 0!==a&&t.API.SetXRotation(this.GetComponentId(),a))},o.prototype.SetStagePosition=function(i,o){var a,n,r;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o)<a?r=a:r>n&&(r=n),t.API.SetXRotation(this.GetComponentId(),r)))},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis,this.absRotation=t.API.GetXRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetXRotation(this.GetComponentId()),a=t.API.GetInteractionData(this,e,"x",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=a;for(var n=this.parameters.Minimum;n<=this.absRotation;)n+=this.parameters.Raster;var r=n-this.parameters.Raster,s=.5*(n+r);(o=this.absRotation>s?n:r)<this.parameters.Minimum?o=this.parameters.Minimum:o>=this.parameters.Maximum&&(o=this.parameters.Maximum),t.API.SetXRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis},o}(t.Core.Interactor);e.XRasterRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Raster,.25),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var o,a,n;if("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).x=o,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).x=a,t.API.SetPosition(this.GetComponentId(),n)}},o.prototype.SetStagePosition=function(i,o){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var a,n,r;a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o)<a?r=a:r>n&&(r=n);var s=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(r,s.y,s.z))}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).x},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId()),a=this.parameters.Minimum,n=this.parameters.Maximum,r=this.parameters.Raster,s=t.API.GetInteractionData(this,e).point,h=s.x-this.osCoords.x;if(Math.abs(h)>Math.abs(r)){var p=o.x;p+=h>0?r:-r,(p=a+r*Math.round((p-a)/r))<a?p=a:p>n&&(p=n),t.API.SetPosition(this.GetComponentId(),new t.Float3(p,o.y,o.z)),this.osCoords=s}},o}(t.Core.Interactor);e.XRasterTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValues(t,[0,90]),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o}return __extends(o,i),o.prototype.SetPosition=function(e){var i=this.parameters[e];void 0!==i&&t.API.SetXRotation(this.GetComponentId(),i)},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis,this.absRotation=t.API.GetXRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){t.API.GetXRotation(this.GetComponentId());var o=t.API.GetInteractionData(this,e,"x",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=o;for(var a=this.parameters.Values[0],n=Math.abs(this.absRotation-a),r=1;r<this.parameters.Values.length;r++){var s=Math.abs(this.absRotation-this.parameters.Values[r]);s<n&&(a=this.parameters.Values[r],n=s)}t.API.SetXRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"x",void 0).nullAxis},o}(t.Core.Interactor);e.XValueRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValues(t,[0,1]),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o}return __extends(o,i),o.prototype.SetPosition=function(e){var i=this.parameters[e];if(void 0!==i){var o=t.API.GetPosition(this.GetComponentId());o.x=i,t.API.SetPosition(this.GetComponentId(),o)}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).x},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(this.startPosition,o.y,o.z));for(var a=this.parameters.Values,n=t.API.GetInteractionData(this,e).point,r=n.x-this.osCoords.x,s=o.x,h=0,p=Math.abs(s-a[h]),u=1;u<a.length;u++){var d=Math.abs(s-a[u]);d<p&&(h=u,p=d)}r>0?h<a.length-1&&h++:r<0&&h>0&&h--,s=a[h],t.API.SetPosition(this.GetComponentId(),new t.Float3(s,o.y,o.z)),this.osCoords=n},o}(t.Core.Interactor);e.XValueTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){var o,a;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o&&t.API.SetYRotation(this.GetComponentId(),o),void 0!==a&&t.API.SetYRotation(this.GetComponentId(),a))},o.prototype.SetStagePosition=function(i,o){var a,n,r;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o,Math.abs(r-a)<this.parameters[e.Snap]?r=a:Math.abs(r-n)<this.parameters[e.Snap]&&(r=n),t.API.SetYRotation(this.GetComponentId(),r)))},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis,this.absRotation=t.API.GetYRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetYRotation(this.GetComponentId()),a=t.API.GetInteractionData(this,e,"y",this.nullAxis);this.absRotation+=a.angle*t.API.MotionScale;var n=i?this.parameters.Snap:0;o=this.absRotation>=this.parameters.Maximum-n?this.parameters.Maximum:this.absRotation<=this.parameters.Minimum+n?this.parameters.Minimum:this.absRotation,t.API.SetYRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis},o.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),o=[0];return i>0&&o.push(i),this.bAutoReset&&(i>0&&o.push(.5-i),o.push(.5),i>0&&o.push(.5+i)),i>0&&o.push(1-i),o.push(1),o},o}(t.Core.Interactor);e.YRangeRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var o,a,n;if("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).y=o,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).y=a,t.API.SetPosition(this.GetComponentId(),n)}},o.prototype.SetStagePosition=function(i,o){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var a,n,r;a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o,Math.abs(r-a)<this.parameters[e.Snap]?r=a:Math.abs(r-n)<this.parameters[e.Snap]&&(r=n);var s=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(s.x,r,s.z))}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).y},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,this.startPosition,o.z));var a=this.parameters.Minimum,n=this.parameters.Maximum,r=i?this.parameters.Snap:0,s=t.API.GetInteractionData(this,e).point.y-this.osCoords.y,h=i?o.y:this.startPosition+.2*s;h>=n-r?h=n:h<=a+r&&(h=a),t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,h,o.z))},o.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),o=[0];return i>0&&o.push(i),this.bAutoReset&&(i>0&&o.push(.5-i),o.push(.5),i>0&&o.push(.5+i)),i>0&&o.push(1-i),o.push(1),o},o}(t.Core.Interactor);e.YRangeTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Raster,15),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){var o,a;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o&&t.API.SetYRotation(this.GetComponentId(),o),void 0!==a&&t.API.SetYRotation(this.GetComponentId(),a))},o.prototype.SetStagePosition=function(i,o){var a,n,r;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o)<a?r=a:r>n&&(r=n),t.API.SetYRotation(this.GetComponentId(),r)))},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis,this.absRotation=t.API.GetYRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetYRotation(this.GetComponentId()),a=t.API.GetInteractionData(this,e,"y",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=a;for(var n=this.parameters.Minimum;n<=this.absRotation;)n+=this.parameters.Raster;var r=n-this.parameters.Raster,s=.5*(n+r);(o=this.absRotation>s?n:r)<this.parameters.Minimum?o=this.parameters.Minimum:o>=this.parameters.Maximum&&(o=this.parameters.Maximum),t.API.SetYRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis},o}(t.Core.Interactor);e.YRasterRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Raster,.25),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var o,a,n;if("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).y=o,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).y=a,t.API.SetPosition(this.GetComponentId(),n)}},o.prototype.SetStagePosition=function(i,o){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var a,n,r;a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o)<a?r=a:r>n&&(r=n);var s=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(s.x,r,s.z))}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).y},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId()),a=this.parameters.Minimum,n=this.parameters.Maximum,r=this.parameters.Raster,s=t.API.GetInteractionData(this,e).point,h=s.y-this.osCoords.y;if(Math.abs(h)>Math.abs(r)){var p=o.y;p+=h>0?r:-r,(p=a+r*Math.round((p-a)/r))<a?p=a:p>n&&(p=n),t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,p,o.z)),this.osCoords=s}},o}(t.Core.Interactor);e.YRasterTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValues(t,[0,90]),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o}return __extends(o,i),o.prototype.SetPosition=function(e){var i=this.parameters[e];void 0!==i&&t.API.SetYRotation(this.GetComponentId(),i)},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis,this.absRotation=t.API.GetYRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){t.API.GetYRotation(this.GetComponentId());var o=t.API.GetInteractionData(this,e,"y",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=o;for(var a=this.parameters.Values[0],n=Math.abs(this.absRotation-a),r=1;r<this.parameters.Values.length;r++){var s=Math.abs(this.absRotation-this.parameters.Values[r]);s<n&&(a=this.parameters.Values[r],n=s)}t.API.SetYRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"y",void 0).nullAxis},o}(t.Core.Interactor);e.YValueRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValues(t,[0,1]),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o}return __extends(o,i),o.prototype.SetPosition=function(e){var i=this.parameters[e];if(void 0!==i){var o=t.API.GetPosition(this.GetComponentId());o.y=i,t.API.SetPosition(this.GetComponentId(),o)}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).y},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,this.startPosition,o.z));for(var a=this.parameters.Values,n=t.API.GetInteractionData(this,e).point,r=n.y-this.osCoords.y,s=o.y,h=0,p=Math.abs(s-a[h]),u=1;u<a.length;u++){var d=Math.abs(s-a[u]);d<p&&(h=u,p=d)}r>0?h<a.length-1&&h++:r<0&&h>0&&h--,s=a[h],t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,s,o.z)),this.osCoords=n},o}(t.Core.Interactor);e.YValueTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){var o,a;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o&&t.API.SetZRotation(this.GetComponentId(),o),void 0!==a&&t.API.SetZRotation(this.GetComponentId(),a))},o.prototype.SetStagePosition=function(i,o){var a,n,r;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o,Math.abs(r-a)<this.parameters[e.Snap]?r=a:Math.abs(r-n)<this.parameters[e.Snap]&&(r=n),t.API.SetZRotation(this.GetComponentId(),r)))},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis,this.absRotation=t.API.GetZRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetZRotation(this.GetComponentId()),a=t.API.GetInteractionData(this,e,"z",this.nullAxis);this.absRotation+=a.angle*t.API.MotionScale;var n=i?this.parameters.Snap:0;o=this.absRotation>=this.parameters.Maximum-n?this.parameters.Maximum:this.absRotation<=this.parameters.Minimum+n?this.parameters.Minimum:this.absRotation,t.API.SetZRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis},o.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),o=[0];return i>0&&o.push(i),this.bAutoReset&&(i>0&&o.push(.5-i),o.push(.5),i>0&&o.push(.5+i)),i>0&&o.push(1-i),o.push(1),o},o}(t.Core.Interactor);e.ZRangeRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Snap,0),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var o,a,n;if("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).z=o,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).z=a,t.API.SetPosition(this.GetComponentId(),n)}},o.prototype.SetStagePosition=function(i,o){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var a,n,r;a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o,Math.abs(r-a)<this.parameters[e.Snap]?r=a:Math.abs(r-n)<this.parameters[e.Snap]&&(r=n);var s=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(s.x,s.y,r))}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).z},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,o.y,this.startPosition));var a=this.parameters.Minimum,n=this.parameters.Maximum,r=i?this.parameters.Snap:0,s=t.API.GetInteractionData(this,e).point.z-this.osCoords.z,h=i?o.z:this.startPosition+.2*s;h>=n-r?h=n:h<=a+r&&(h=a),t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,o.y,h))},o.prototype.GetHints=function(){var t=this.parameters.Minimum,e=this.parameters.Maximum,i=this.parameters.Snap/(e-t),o=[0];return i>0&&o.push(i),this.bAutoReset&&(i>0&&o.push(.5-i),o.push(.5),i>0&&o.push(.5+i)),i>0&&o.push(1-i),o.push(1),o},o}(t.Core.Interactor);e.ZRangeTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,90),e.SetupValue(t,e.Raster,15),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){var o,a;void 0===this.parameters[i]&&void 0===this.parameters[e.Minimum]&&void 0===this.parameters[e.Maximum]||("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o&&t.API.SetZRotation(this.GetComponentId(),o),void 0!==a&&t.API.SetZRotation(this.GetComponentId(),a))},o.prototype.SetStagePosition=function(i,o){var a,n,r;i.toString()===this.parameters[e.Stage].toString()&&(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum]||(a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o)<a?r=a:r>n&&(r=n),t.API.SetZRotation(this.GetComponentId(),r)))},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis,this.absRotation=t.API.GetZRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){if(!i){var o=t.API.GetZRotation(this.GetComponentId()),a=t.API.GetInteractionData(this,e,"z",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=a;for(var n=this.parameters.Minimum;n<=this.absRotation;)n+=this.parameters.Raster;var r=n-this.parameters.Raster,s=.5*(n+r);(o=this.absRotation>s?n:r)<this.parameters.Minimum?o=this.parameters.Minimum:o>=this.parameters.Maximum&&(o=this.parameters.Maximum),t.API.SetZRotation(this.GetComponentId(),o),this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis}},o}(t.Core.Interactor);e.ZRasterRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Minimum,0),e.SetupValue(t,e.Maximum,1),e.SetupValue(t,e.Raster,.25),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(i){if(void 0!==this.parameters[i]||void 0!==this.parameters[e.Minimum]||void 0!==this.parameters[e.Maximum]){var o,a,n;if("Start"===i&&(o=void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]),"End"===i&&(a=void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]),void 0!==o)(n=t.API.GetPosition(this.GetComponentId())).z=o,t.API.SetPosition(this.GetComponentId(),n);if(void 0!==a)(n=t.API.GetPosition(this.GetComponentId())).z=a,t.API.SetPosition(this.GetComponentId(),n)}},o.prototype.SetStagePosition=function(i,o){if(i.toString()===this.parameters[e.Stage].toString()&&!(void 0===this.parameters[e.Start]&&void 0===this.parameters[e.StageStart]&&void 0===this.parameters[e.Minimum]||void 0===this.parameters[e.End]&&void 0===this.parameters[e.StageEnd]&&void 0===this.parameters[e.Maximum])){var a,n,r;a=void 0===this.parameters[e.StageStart]?void 0===this.parameters[e.Start]?this.parameters[e.Minimum]:this.parameters[e.Start]:this.parameters[e.StageStart],n=void 0===this.parameters[e.StageEnd]?void 0===this.parameters[e.End]?this.parameters[e.Maximum]:this.parameters[e.End]:this.parameters[e.StageEnd],(r=this.bAutoReset?o<.5?a+(n-a)*o*2:a+(n-a)*(1-o)*2:a+(n-a)*o)<a?r=a:r>n&&(r=n);var s=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(s.x,s.y,r))}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).z},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId()),a=this.parameters.Minimum,n=this.parameters.Maximum,r=this.parameters.Raster,s=t.API.GetInteractionData(this,e).point,h=s.z-this.osCoords.z;if(Math.abs(h)>Math.abs(r)){var p=o.z;p+=h>0?r:-r,(p=a+r*Math.round((p-a)/r))<a?p=a:p>n&&(p=n),t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,o.y,p)),this.osCoords=s}},o}(t.Core.Interactor);e.ZRasterTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValues(t,[0,90]),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o}return __extends(o,i),o.prototype.SetPosition=function(e){var i=this.parameters[e];void 0!==i&&t.API.SetZRotation(this.GetComponentId(),i)},o.prototype.SingleTouchStart=function(e){this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis,this.absRotation=t.API.GetZRotation(this.GetComponentId())},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){this.ApplyMotion(t,!0)},o.prototype.ApplyMotion=function(e,i){t.API.GetZRotation(this.GetComponentId());var o=t.API.GetInteractionData(this,e,"z",this.nullAxis).angle*t.API.MotionScale;this.absRotation+=o;for(var a=this.parameters.Values[0],n=Math.abs(this.absRotation-a),r=1;r<this.parameters.Values.length;r++){var s=Math.abs(this.absRotation-this.parameters.Values[r]);s<n&&(a=this.parameters.Values[r],n=s)}t.API.SetZRotation(this.GetComponentId(),a),this.nullAxis=t.API.GetInteractionData(this,e,"z",void 0).nullAxis},o}(t.Core.Interactor);e.ZValueRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValues(t,[0,1]),e.SetupAnimation(t),(o=i.call(this,t)||this).parameters.Manual=!0,o}return __extends(o,i),o.prototype.SetPosition=function(e){var i=this.parameters[e];if(void 0!==i){var o=t.API.GetPosition(this.GetComponentId());o.z=i,t.API.SetPosition(this.GetComponentId(),o)}},o.prototype.SingleTouchStart=function(e){this.osCoords=t.API.GetInteractionData(this,e).point,this.startPosition=t.API.GetPosition(this.GetComponentId()).z},o.prototype.SingleTouchMotion=function(t){this.ApplyMotion(t,!1)},o.prototype.SingleTouchEnd=function(t){},o.prototype.ApplyMotion=function(e,i){var o=t.API.GetPosition(this.GetComponentId());t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,o.y,this.startPosition));for(var a=this.parameters.Values,n=t.API.GetInteractionData(this,e).point,r=n.z-this.osCoords.z,s=o.z,h=0,p=Math.abs(s-a[h]),u=1;u<a.length;u++){var d=Math.abs(s-a[u]);d<p&&(h=u,p=d)}r>0?h<a.length-1&&h++:r<0&&h>0&&h--,s=a[h],t.API.SetPosition(this.GetComponentId(),new t.Float3(o.x,o.y,s)),this.osCoords=n},o}(t.Core.Interactor);e.ZValueTranslator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){return e.SetupValue(t,e.StartValue,0),e.SetupValue(t,e.EndValue,0),e.SetupValue(t,e.StartTime,0),e.SetupValue(t,e.EndTime,1),e.SetupAnimation(t),i.call(this,t)||this}return __extends(o,i),o.prototype.SetPosition=function(t){},o.prototype.ApplyValue=function(i){var o,a=this.GetComponentId();switch(this.parameters[e.Mode]){case e.XPosition:o=t.API.GetPosition(a),t.API.SetPosition(a,new t.Float3(i,o.y,o.z));break;case e.YPosition:o=t.API.GetPosition(a),t.API.SetPosition(a,new t.Float3(o.x,i,o.z));break;case e.ZPosition:o=t.API.GetPosition(a),t.API.SetPosition(a,new t.Float3(o.x,o.y,i));break;case e.XRotation:t.API.SetXRotation(a,i);break;case e.YRotation:t.API.SetYRotation(a,i);break;case e.ZRotation:t.API.SetZRotation(a,i)}},o.prototype.SetStagePosition=function(t,i){var o=e.GetValue(this.parameters,e.Stage),a=e.GetValue(this.parameters,e.StartValue),n=e.GetValue(this.parameters,e.EndValue);t<o?this.ApplyValue(a):t>o?this.ApplyValue(n):this.ApplyValue(i)},o}(t.Core.Interactor);e.BasicLinearInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function i(t){if(this._KinematicsResolved=!1,"object"==typeof t){if(this._ChainList=new Array,Array.isArray(t))for(var e=0,i=t;e<i.length;e++){var o=n=i[e];if(!o.Target)return void console.warn("IGX.Std.KinematicsInteractor: Subchain has no target!");if(!o.Tolerance)return void console.warn("IGX.Std.KinematicsInteractor: Subchain has no tolerance!");if(!o.GeometryBase)return void console.warn("IGX.Std.KinematicsInteractor: Subchain has no GeometryBase defined!");if(o.Parent&&"string"==typeof o.Parent)"root"===o.Parent&&(this._MultiTargetChain=new Array,this._ChainList.push(this._MultiTargetChain)),this._MultiTargetChain.push(o);else{var a=new Array;a.push(o),this._ChainList.push(a)}}else{if(this._Chain=t,!this._Chain.Target)return void console.warn("IGX.Std.KinematicsInteractor: Chain has no target!");if(!this._Chain.Tolerance)return void console.warn("IGX.Std.KinematicsInteractor: Chain has no tolerance!");if(!this._Chain.GeometryBase)return void console.warn("IGX.Std.KinematicsInteractor: Interactor has no GeometryBase defined!");var n;(n=new Array).push(this._Chain),this._ChainList.push(n)}this._MaxIteration=3}else console.warn("IGX.Std.KinematicsInteractor: Not defined.")}return i.prototype.KinematicSolver=function(t,e,i,o){if(this._KinematicsResolved){if(this._ComponentId!==t)throw new Error("ComponentId is not allowed to change")}else{this._ComponentId=t;var a=this._ComponentId.split("_")[0]+"__";this._RootComponentId=a+".";for(var n=0,r=this._ChainList;n<r.length;n++)for(var s=0,h=l=r[n];s<h.length;s++){var p=h[s];this.resolveKinematicsChain(p,e,t+".",a,o)}this._KinematicsResolved=!0}for(var u=0;u<this._MaxIteration;u++)for(var d=0,m=this._ChainList;d<m.length;d++){var l;if(1===(l=m[d]).length)this.updateChainState(l[0],e,i,o),this._Chain=l[0],this.singleTargetKinematics(o);else{this._MultiTargetChain=l;for(var c=0;c<this._MultiTargetChain.length;c++){p=this._MultiTargetChain[c];this.updateChainState(p,e,i,o)}this.multiTargetKinematics(o)}}},i.prototype.updateChainState=function(e,i,o,a){if(e._Origin){e._RelativePositionCache={};var n=0,r=[];e.Joints.forEach(function(i,s){var h=o.some(function(t){return i._HeadXComponentId===t||i._HeadYComponentId===t||i._HeadZComponentId===t||i._TailComponentId===t}),p=t.Std.Util.GetLocalPosition(e._RootId,i._HeadXComponentId,a),u=t.Std.Util.GetLocalPosition(e._RootId,i._TailComponentId,a),d=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(p,u));n+=d,r.push(__assign(__assign({},i),{_Blocked:h,_HeadPos:p,_TailPos:u,_Length:d}))}),e.Joints=r,e._TotalLength=n,void 0!==e._OriginComponentId&&(e._OriginPos=t.Std.Util.GetLocalPosition(e._RootId,e._OriginComponentId,a)),void 0!==e._TargetComponentId?e._TargetPos=t.Std.Util.GetRelativePosition(this._RootComponentId,e._RootId,e._TargetComponentId,a):"subbase"===e.Target?e._TargetPos=e.Joints[e.Joints.length-1]._TailPos:console.warn("Target path",e.Target,"not valid.")}else console.warn("IGX.Std.KinematicsInteractor: Chain has no defined joints!")},i.prototype.resolveKinematicsChain=function(t,e,i,o,a){var n=this;if(t.Joints.length>0&&t.Joints[0].HeadX){t._Origin=t.Joints[0].HeadX;for(var r=t._Origin.split("."),s="",h=0;h<r.length-1;h++)s+=r[h],h+1<r.length-1&&(s+=".");t._ChainPath=s,t._RootId=""===s?this._ComponentId:this._ComponentId+"."+s;var p=/param(\d+)/i;t.Joints.forEach(function(t,o){var a,r,s,h,u,d;t.Name?a=(d=t.Name.match(p))?e[parseInt(d[1])-1]:t.Name:a="b".concat(o);t.HeadX?r=(d=t.HeadX.match(p))?e[parseInt(d[1])-1]:t.HeadX:console.warn("IGX.Std.KinematicsInteractor: Joint",a,"is missing its Head (X)!");t.HeadY?s=(d=t.HeadY.match(p))?e[parseInt(d[1])-1]:t.HeadY:console.warn("IGX.Std.KinematicsInteractor: Joint",a,"is missing its Head (Y)!");t.HeadZ?h=(d=t.HeadZ.match(p))?e[parseInt(d[1])-1]:t.HeadZ:console.warn("IGX.Std.KinematicsInteractor: Joint",a,"is missing its Head (Z)!");t.Tail?(u=(d=t.Tail.match(p))?e[parseInt(d[1])-1]:t.Tail,n.isParent(h,u)||console.warn("IGX.Std.KinematicsInteractor: Joint",a,"- Tail isn't child of Head!")):console.warn("IGX.Std.KinematicsInteractor: Joint",a,"is missing its Tail!");t.Name=a,t.HeadX=r,t.HeadY=s,t.HeadZ=h,t.Tail=u,t._HeadXComponentId=i+r,t._HeadYComponentId=i+s,t._HeadZComponentId=i+h,t._TailComponentId=i+u,void 0!==t.FollowJointNode&&(t._FollowJointNodeComponentId=i+t.FollowJointNode)});var u=t.Target.match(p);u&&(t.Target=e[parseInt(u[1])-1]),a.IsValid(o+t.Target)?t._TargetComponentId=o+t.Target:console.warn("Target path",t.Target,"not valid."),a.IsValid(i+t._Origin)?t._OriginComponentId=i+t._Origin:console.warn("Origin path",t._Origin,"not valid."),"x"!==t.GeometryBase&&"y"!==t.GeometryBase&&"z"!==t.GeometryBase&&(console.warn('GeometryBase param received not allowed value! Only "x", "y" and "z" are allowed! Returning to default value ("z")'),t.GeometryBase="z"),"y"===t.GeometryBase&&(console.warn("GeometryBase = y not implemented yet. Switching to z now."),t.GeometryBase="z")}else console.warn("IGX.Std.KinematicsInteractor: Chain has no defined joints!")},i.prototype.isParent=function(t,e){return 0===e.indexOf(t)},i.prototype.getGeometryBase=function(t){var e=this._Chain,i=e.Joints[t],o=e.GeometryBase;return void 0!==i.GeometryBase&&(o=i.GeometryBase),o},i.prototype.getBoneEuler=function(t,e,i){var o=IG.Math.Quaternion.lookAt(e,i),a=IG.Math.Euler.createFromQuaternion(o);return"x"!==t||a.x!==Math.PI&&a.x!==-Math.PI?"z"!==t||a.z!==Math.PI&&a.z!==-Math.PI||(a.z=0,a.x*=-1):(a.x=0,a.z*=-1),a},i.prototype.isConstraintActive=function(t){var e=this._Chain.Joints[t];return void 0!==e.LimitLeft&&void 0!==e.LimitRight&&void 0!==e.LimitUp&&void 0!==e.LimitDown},i.prototype.getChainLevel=function(t){if(!t._ParentChain||"root"===t.Parent)return t._Level=0,0;var e=this.getChainLevel(t._ParentChain)+1;return t._Level=e,e},i.prototype.getEndEffectors=function(t){var e={};return this._MultiTargetChainStructure[t].forEach(function(t){e[t.Parent]||(e[t.Parent]=new Array),e[t.Parent].push(t)}),e},i.prototype.getJoint=function(t){for(var e=0,i=this._ChainList;e<i.length;e++)for(var o=0,a=i[e];o<a.length;o++)for(var n=0,r=a[o].Joints;n<r.length;n++){var s=r[n];if(0===t.indexOf(s.HeadX))return s}return console.warn("IGX.Std.KinematicsInteractor: Couldn't find follow joint",t),null},i.prototype.isFollowingJoint=function(t){var e=this._Chain.Joints[t];return!(!e.FollowJointNode||null===this.getJoint(e.FollowJointNode))},i.prototype.singleTargetKinematics=function(t){this.forward(t),this.solve(t),this.draw(t)},i.prototype.multiTargetKinematics=function(t){for(var e=this,i=this._MultiTargetChain[0],o=0,a=this._MultiTargetChain;o<a.length;o++){if(!(S=a[o]).Parent)return void console.warn("IGX.Std.KinematicsInteractor: A chain has no set Root param! (multi target kinematics)");if("root"===S.Parent)i=S;else{for(var n=0;n<this._MultiTargetChain.length;n++)if(S._ChainPath!==this._MultiTargetChain[n]._ChainPath&&S.Parent===this._MultiTargetChain[n]._ChainPath){S._ParentChain=this._MultiTargetChain[n];break}if(!S._ParentChain)return void console.warn("Couldn't find parent for kinematic chain",S._ChainPath)}}this._MultiTargetChain.forEach(function(t){t._Level||(t._Level=e.getChainLevel(t))}),this._MultiTargetChainStructure={};var r=0;this._MultiTargetChain.forEach(function(t){e._MultiTargetChainStructure[t._Level]||(e._MultiTargetChainStructure[t._Level]=new Array),e._MultiTargetChainStructure[t._Level].push(t),t._Level>r&&(r=t._Level)});var s=!0,h=0,p=10;for(null!=i.MaxIterations&&(p=i.MaxIterations);s;){for(var u=r;u>0;u--)if(this._MultiTargetChainStructure.hasOwnProperty(u)){var d=this.getEndEffectors(u);for(var m in d)if(d.hasOwnProperty(m)){var l=d[m];this.multiTargetSolve(l,u,t)}}for(var c=0,f=this._MultiTargetChain;c<f.length;c++){var S,I=(S=f[c]).Joints[S.Joints.length-1]._TailPos;if(!(IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(I,S._TargetPos))<S.Tolerance)){s=!0;break}s=!1}if(++h>p)break}this._MultiTargetChain.forEach(function(i){e._Chain=i,e.draw(t)})},i.prototype.multiTargetSolve=function(t,e,i){for(var o=0;o<t.length;o++){var a=t[o];this._Chain=a,this.backward(i)}var n,r=this.solveCentroid(t,i);this._Chain=this._Chain._ParentChain;var s=!1;for(o=0;o<this._Chain.Joints.length;o++){if(!this._Chain.Joints[o]._Blocked){s=!1;break}s=!0}if(s)n=r;else{var h=r;this._Chain._TargetPos=h,this.forward(i),this.solve(i)}var p=this._Chain;if(e>1&&"root"!==p.Parent){var u=this.getEndEffectors(p._Level);this.multiTargetSolve(u[p.Parent],p._Level,i)}n=p.Joints[p.Joints.length-1]._TailPos;for(o=0;o<t.length;o++){a=t[o];this._Chain=a,this._Chain._OriginPos=n,this.forward(i)}},i.prototype.draw=function(t){var e=this;this._Chain.Joints.forEach(function(i,o){t.SetPosition(i._HeadXComponentId,i._HeadPos);var a=e.getGeometryBase(o),n=e.getBoneEuler(a,i._HeadPos,i._TailPos),r=n.x*IG.Math.Rad2Deg,s=n.y*IG.Math.Rad2Deg,h=n.z*IG.Math.Rad2Deg;t.SetXRotation(i._HeadXComponentId,r),t.SetYRotation(i._HeadYComponentId,s),t.SetZRotation(i._HeadZComponentId,h)})},i.prototype.solveCentroid=function(t,e){for(var i=new IG.Math.Vector3(0,0,0),o=0;o<t.length;o++){var a=t[o];i.x+=a.Joints[0]._HeadPos.x,i.y+=a.Joints[0]._HeadPos.y,i.z+=a.Joints[0]._HeadPos.z}i=IG.Math.Vector3.scalarMultiply(1/t.length,i);for(var n=0;n<t.length;n++){var r=t[n];if(this._Chain=r,IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(i,this._Chain._TargetPos))>this._Chain._TotalLength){this._Chain=this._Chain._ParentChain,this._Chain._TargetPos=i,this.forward(e),this.solve(e),i=this._Chain.Joints[this._Chain.Joints.length-1]._TailPos,this._Chain=r,this._Chain._OriginPos=i,this.forward(e),this.solve(e);var s=IG.Math.Vector3.sub(this._Chain._TargetPos,this._Chain.Joints[this._Chain.Joints.length-1]._TailPos);i=IG.Math.Vector3.add(i,s),this.backward(e)}}return i},i.prototype.solve=function(t){var e=this._Chain;if(IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(e._OriginPos,e._TargetPos))>e._TotalLength)for(var i=0;i<e.Joints.length;i++){var o=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(e._TargetPos,e.Joints[i]._HeadPos)),a=e.Joints[i]._Length/o,n=IG.Math.Vector3.add(IG.Math.Vector3.scalarMultiply(1-a,e.Joints[i]._HeadPos),IG.Math.Vector3.scalarMultiply(a,e._TargetPos));e.Joints[i]._TailPos=n,e.Joints[i+1]&&(e.Joints[i+1]._HeadPos=n)}else{var r=0,s=20;null!=e.MaxIterations&&(s=e.MaxIterations);var h=e.Joints[e.Joints.length-1]._TailPos;for(o=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(h,e._TargetPos));o>e.Tolerance&&(this.backward(t),this.forward(t),o=IG.Math.Vector3.magnitude(IG.Math.Vector3.sub(h,e._TargetPos)),!(++r>s)););}},i.prototype.backward=function(t){for(var e=this._Chain,i=e.Joints.length-1;i>=0;i--){var o=e.Joints[i];if(!o._Blocked){i===e.Joints.length-1?o._TailPos=e._TargetPos:o._TailPos=e.Joints[i+1]._HeadPos;var a=o._HeadPos;this.isFollowingJoint(i)&&(a=this.getOrComputeRelativePosition(e,e._RootId,o._FollowJointNodeComponentId,t));var n=IG.Math.Vector3.sub(o._TailPos,a),r=IG.Math.Vector3.magnitude(n),s=o._Length/r,h=IG.Math.Vector3.add(IG.Math.Vector3.scalarMultiply(1-s,o._TailPos),IG.Math.Vector3.scalarMultiply(s,a));o._HeadPos=h}}},i.prototype.forward=function(t){for(var e=this._Chain,i=0;i<e.Joints.length;i++){var o=e.Joints[i];if(!o._Blocked){o._HeadPos=0===i?e._OriginPos:e.Joints[i-1]._TailPos;var a=o._TailPos;i+1<e.Joints.length&&this.isFollowingJoint(i+1)&&(a=this.getOrComputeRelativePosition(e,e._RootId,e.Joints[i+1]._FollowJointNodeComponentId,t));var n=IG.Math.Vector3.sub(a,o._HeadPos),r=IG.Math.Vector3.magnitude(n),s=o._Length/r,h=IG.Math.Vector3.add(IG.Math.Vector3.scalarMultiply(1-s,o._HeadPos),IG.Math.Vector3.scalarMultiply(s,a));this.isConstraintActive(i)&&(IG.Math.Vector3.normalizeInPlace(n),h=IG.Math.Vector3.add(o._HeadPos,this.constrain(IG.Math.Vector3.sub(h,o._HeadPos),n,i))),o._TailPos=h}}},i.prototype.constrain=function(t,e,i){var o=this._Chain.Joints[i],a=this.getGeometryBase(i),n=this.getBoneEuler(a,o._HeadPos,IG.Math.Vector3.add(o._HeadPos,e)),r=n.x*IG.Math.Rad2Deg,s=n.y*IG.Math.Rad2Deg,h=n.z*IG.Math.Rad2Deg;"x"===a?(s>o.LimitLeft?s=o.LimitLeft:s<-o.LimitRight&&(s=-o.LimitRight),h>o.LimitUp?h=o.LimitUp:h<-o.LimitDown&&(h=-o.LimitDown)):"z"===a&&(s>o.LimitLeft?s=o.LimitLeft:s<-o.LimitRight&&(s=-o.LimitRight),r>o.LimitDown?r=o.LimitDown:r<-o.LimitUp&&(r=-o.LimitUp));var p=r*IG.Math.Deg2Rad-n.x,u=s*IG.Math.Deg2Rad-n.y,d=h*IG.Math.Deg2Rad-n.z,m=0,l=IG.Math.Matrix4.create();if(IG.Math.isCloseTo(p,0,1e-5)?IG.Math.isCloseTo(u,0,1e-5)?IG.Math.isCloseTo(d,0,1e-5)||(m=d,l=IG.Math.Matrix4.getZRotationMatrix(m)):(m=u,l=IG.Math.Matrix4.getYRotationMatrix(m)):(m=p,l=IG.Math.Matrix4.getXRotationMatrix(m)),0!==m){var c=new IG.Math.Vector3(0,0,0);return c=IG.Math.Vector3.multiplyWithMatrix4Right(t,l),this.constrain(c,IG.Math.Vector3.normalize(c),i)}return t},i.prototype.getOrComputeRelativePosition=function(t,i,o,a){var n="".concat(i,"___").concat(o),r=t._RelativePositionCache[n];return void 0!==r?r:t._RelativePositionCache[n]=e.Util.GetRelativePosition(this._ComponentId,i,o,a)},i}();e.KinematicsInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(){function e(t,e,i,o,a){this.rootId=t,this.stepSize=e,this.subNodes=i,this.animation=o,this.interactorParams=a,this.date=0,this.steps=1/e,this.cachedScenes=[],this.date=Date.now()}return e.prototype.initialize=function(t){this.cachedScenes=[t]},e.prototype.debugInfo=function(){console.log("stepSize",this.stepSize,this.steps),console.log("cachedOnes:",this.cachedScenes)},e.prototype.getStepSize=function(){return this.stepSize},e.prototype.getCache=function(){return this.cachedScenes},e.prototype.setCache=function(t,e){var i=e;if(t.toString().split(".")[1])console.warn("invalid array index");else if(this.cachedScenes[t]=i,t>0&&this.cachedScenes[0])for(var o in e)this.cachedScenes[0][o].activedeformation=this.cachedScenes[0][o].activedeformation||e[o].activedeformation},e.prototype.clearCache=function(){this.cachedScenes=[this.cachedScenes[0]]},e.prototype.interpolate=function(e){var i=Math.floor(e*this.steps),o=Math.ceil(e*this.steps),a=e*this.steps,n=this.cachedScenes[i],r=this.cachedScenes[o];if(i===o)return n;var s=function(t,e,i,o,a){return e===o?e:e+(o-e)/(i-t)*(a-t)},h=function(t,e,i,o,a){if(e===o)return e;for(;e<0;)e+=360;for(;o<0;)o+=360;for(;e>360;)e-=360;for(;o>360;)o-=360;if(e<o){var n=Math.abs(o-e);Math.abs(o-(e+360))<n&&(e+=360)}else{n=Math.abs(e-o);Math.abs(e-(o+360))<n&&(o+=360)}return e+(o-e)/(i-t)*(a-t)},p={};for(var u in n){var d=n[u],m=r[u],l=s(i,d.position.x,o,m.position.x,a),c=s(i,d.position.y,o,m.position.y,a),f=s(i,d.position.z,o,m.position.z,a),S=s(i,d.scaling.x,o,m.scaling.x,a),I=s(i,d.scaling.y,o,m.scaling.y,a),v=s(i,d.scaling.z,o,m.scaling.z,a),g=h(i,d.rotation[0],o,m.rotation[0],a),P=h(i,d.rotation[1],o,m.rotation[1],a),G=h(i,d.rotation[2],o,m.rotation[2],a);p[u]={position:new t.Float3(l,c,f),scaling:new t.Float3(S,I,v),rotation:[g,P,G],visibility:n[u].visibility},(d.activedeformation||m.activedeformation)&&(p[u].deformation=s(i,d.deformation,o,m.deformation,a),p[u].activedeformation=!0)}return p},e}();e.Cache=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i={Position:{X:0,Y:0,Z:0},Rotation:{X:0,Y:0,Z:0},Scaling:{X:1,Y:1,Z:1},Deformation:0},o=function(t,e){var o=__assign(__assign({},t),{Position:__assign({},t.Position),Rotation:__assign({},t.Rotation),Scaling:__assign({},t.Scaling)});for(var a in e){for(var n=a.split("."),r=o,s=i,h=0;h<n.length-1;h++){var p=n[h];r=r[p],s&&(s=s[p])}var u=n[n.length-1];(void 0===r[u]||null===r[u]&&s)&&(r[u]=s[u])}return o},a=function(i){function a(t){var o=this;e.SetupValue(t,e.Start,0),e.SetupValue(t,e.End,1),e.SetupAnimation(t),(o=i.call(this,t)||this).autoReset=!1,o.d=Date.now(),t.DebugLevel&&(o.Debug=!0,console.log("AnimationInteractor parameters",t,o.d)),o.useCache=Boolean(t.Record),o.stepSize=.1,o.nodesToBeCached=[],o.absoluteNodesToBeCached=[],o.IGX_API=new e.ApiConnection(o.Debug),o.IGX_API.setUseShadow(o.useCache),o.useDebugCache=!1,o.debugapi=new e.ApiConnection(o.Debug),o.debugapi.setUseShadow(!0),o.Debug&&console.log("animation parameters: usedDebugCache",o.useDebugCache,"useCache",o.useCache);var n=a.extractLinkedPointsFromParameters(t),r=o.PrepAnimation(t.Animation,n);if(o.animation=r.Animation,o.kinematics=r.Kinematics,o.parameters.BackwardAnimation){var s=o.PrepAnimation(t.BackwardAnimation,n);o.backwardAnimation=s.Animation,o.backwardKinematics=s.Kinematics}o.params=new Array(a.PARAM_COUNT);for(var h=0;h<a.PARAM_COUNT;h++){o.params[h]=null;var p=t["Param"+(h+1)];p&&(p="string"!=typeof p?p.toString():p,o.params[h]=p)}return o.autoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.autoReset=!0:"string"!=typeof t.AutoReset&&(o.autoReset=t.AutoReset),o.Debug&&(a.windowReplacement.AInteractor=o,console.log(a.windowReplacement)),"undefined"!=typeof window&&(window.windowReplacement=a.windowReplacement),o}return __extends(a,i),a.extractLinkedPointsFromParameters=function(t){for(var e={},i=0;i<10;i++){var o=t["LinkedPoint".concat(i,"Key")],a=t["LinkedPoint".concat(i,"Path")];"string"==typeof o&&""!==o&&"string"==typeof a&&""!==a&&(e[a]=[o])}if(Object.getOwnPropertyNames(e).length>0)return e},a.prototype.setUseCache=function(t){this.useCache=t},a.prototype.PrepAnimation=function(i,a){var n=this;if(this.Debug&&console.log("in PrepAnimation()",i),void 0===i)throw new Error("IGX.Std.AnimationInteractor: No Animation specified.");var r=__assign({},t.Std.findGlobalByPath(i));if(void 0===r)throw new Error('Animation "'.concat(r,'" could not be found.'));void 0!==a&&(r.LinkedPoints=a),this.lastPositionForIntermediateCalculationOnly=0;var s=[];r.Animations.forEach(function(t){var e={};for(var i in t.States){var a=t.States[i];for(var r in a){var h=a[r];if("object"==typeof h)for(var p in h)e["".concat(r,".").concat(p)]=!0;else e[r]=!0}}var u,d,m=[];for(var l in t.States){var c=Number(l);u?m.push({time:c,period:c-d,state1:o(t.States[u],e),state2:o(t.States[l],e)}):m.push({time:c,state1:o(t.States[l],e)}),u=l,d=c}m.push({time:9999,state1:o(t.States[u],e)}),void 0===t.Path&&(t.Path="."),void 0===t.Mode&&(t.Mode="Linear"),s.push({path:t.Path,mode:t.Mode,states:m}),n.Debug&&console.log("+++",t._,t.Path),n.nodesToBeCached.push(t.Path)}),r._loops=s;var h=null;if("object"==typeof r.Kinematics){h=new e.KinematicsInteractor(JSON.parse(JSON.stringify(r.Kinematics)));var p=[];Array.isArray(r.Kinematics)?p.push.apply(p,r.Kinematics):p.push(r.Kinematics);for(var u=0,d=p;u<d.length;u++){for(var m=d[u],l=0,c=m.Joints;l<c.length;l++){var f=c[l];this.nodesToBeCached.push(f.HeadX),this.nodesToBeCached.push(f.HeadY),this.nodesToBeCached.push(f.HeadZ),this.nodesToBeCached.push(f.Tail),f.FollowJointNode&&this.nodesToBeCached.push(f.FollowJointNode)}if(m.Target&&"subbase"!=m.Target&&0!=m.Target.indexOf("Param")&&this.absoluteNodesToBeCached.push(m.Target),m.Target&&0==m.Target.indexOf("Param")){var S=this.parameters[m.Target];S&&this.absoluteNodesToBeCached.push(S)}}}var I=[];this.nodesToBeCached.forEach(function(t){var e=""+t;if("."!==e)for(;e.indexOf(".");){if(n.nodesToBeCached.filter(function(t){return t===e}).length>0||I.indexOf(e)<0&&I.push(""+e),e.lastIndexOf(".")<0)break;e=e.slice(0,e.lastIndexOf("."))}}),this.nodesToBeCached=__spreadArray(__spreadArray([],this.nodesToBeCached,!0),I,!0);var v=[];return this.absoluteNodesToBeCached.forEach(function(t){for(var e=""+t;e.indexOf(".");){if(n.absoluteNodesToBeCached.filter(function(t){return t===e}).length>0||v.indexOf(e)<0&&v.push(""+e),e.lastIndexOf(".")<0)break;e=e.slice(0,e.lastIndexOf("."))}}),this.absoluteNodesToBeCached=__spreadArray(__spreadArray([],this.absoluteNodesToBeCached,!0),v,!0),{Animation:r,Kinematics:h}},a.prototype.SetPosition=function(t){return this.SetStagePosition(this.parameters.Stage,t===e.Start?this.parameters[e.Start]:this.parameters[e.End])},a.prototype.SetStagePosition=function(t,i,o){if(this.autoReset&&(i<.5?(i*=2,o=!1):(i=2*(1-i),o=!0)),this.Debug&&console.log("SetStagePosition",this.GetComponentId(),this.useCache?"CACHED":"NOT cached",t,i,o),this.parameters.Stage===t){if(this.useDebugCache&&!this.useCache&&(a.windowReplacement&&!a.windowReplacement.animcaches&&(a.windowReplacement.animcaches=[]),!this.forwardCache_debug)){this.forwardCache_debug=new e.Cache(this.GetComponentId(),this.stepSize,this.nodesToBeCached,this.animation,this.parameters);var n=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);this.forwardCache_debug.initialize(n),this.forwardCache_debug.name="forwardcache_debug"+this.GetComponentId(),a.windowReplacement.animcaches.push(this.forwardCache_debug),console.log("initial via IGX_API:"),console.log(JSON.stringify(n));var r=this.debugapi.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);console.log("initial via debugapi"),console.log(JSON.stringify(r))}if(this.useCache){if(a.windowReplacement&&!a.windowReplacement.animcaches&&(a.windowReplacement.animcaches=[]),!this.forwardCache){this.forwardCache=new e.Cache(this.GetComponentId(),this.stepSize,this.nodesToBeCached,this.animation,this.parameters);n=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);this.forwardCache.initialize(n),this.forwardCache.name="forwardcache"+this.GetComponentId(),a.windowReplacement.animcaches.push(this.forwardCache)}if(this.backwardAnimation&&!this.backwardsCache){this.backwardsCache=new e.Cache(this.GetComponentId(),this.stepSize,this.nodesToBeCached,this.backwardAnimation,this.parameters);n=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);this.backwardsCache.initialize(n),this.backwardsCache.name="backwardscache"+this.GetComponentId(),a.windowReplacement.animcaches.push(this.backwardsCache)}}if(this.backwardAnimation&&o){if(this.backwardsCache){this.calculateMissing(i,!0,this.backwardsCache,this.IGX_API);s=this.backwardsCache.interpolate(i);return void this.IGX_API.setOriginalSceneFromShadow(s,this.GetComponentId(),this.animation.LinkedPoints)}}else if(this.forwardCache){this.calculateMissing(i,!1,this.forwardCache,this.IGX_API);var s=this.forwardCache.interpolate(i);return void this.IGX_API.setOriginalSceneFromShadow(s,this.GetComponentId(),this.animation.LinkedPoints)}if(null!==this.parameters.IntermediateCalculation){this.Debug&&console.log("lastPositionForIntermediateCalculationOnly",this.lastPositionForIntermediateCalculationOnly);for(var h=[],p=this.parameters.IntermediateCalculation,u=this.lastPositionForIntermediateCalculationOnly;Math.abs(i-u)>p;)u=i-u>0?u+p:u-p,h.push(u);this.Debug&&console.log("IntermediateCalculation steps would be",this.lastPositionForIntermediateCalculationOnly,h,i);for(var d=0;d<h.length;d++)this.calculate___SetStagePositionInternal(t,h[d],o,this.IGX_API);this.calculate___SetStagePositionInternal(t,i,o,this.IGX_API),this.lastPositionForIntermediateCalculationOnly=i}else this.calculate___SetStagePositionInternal(t,i,o,this.IGX_API);if(this.Debug){var m=this.IGX_API.setShadowWithParameters(this.GetComponentId(),this.nodesToBeCached,this.absoluteNodesToBeCached,this.animation,this.parameters);a.windowReplacement.scene_reality=m}}},a.prototype.debug_compareShadows=function(t,e){if(t&&e){var i=Object.keys(t),o=Object.keys(e);i.forEach(function(i){t[i]&&!e[i]&&console.log("key",i,"missing in b!!")}),o.forEach(function(i){e[i]&&!t[i]&&console.log("key",i,"missing in a!!")}),console.log("checking for missing paths in bk");this.GetComponentId();var a=[];o.forEach(function(t){for(var e=""+t;e.indexOf(".");){if(o.filter(function(t){return t===e}).length>0||a.indexOf(e)<0&&a.push(""+e),e.lastIndexOf(".")<0)break;e=e.slice(0,e.lastIndexOf("."))}}),console.log("missings",a),i.forEach(function(i){var o=t[i],a=e[i],n=Math.abs(o.position.x-a.position.x)>1e-6,r=Math.abs(o.position.y-a.position.y)>1e-6,s=Math.abs(o.position.z-a.position.z)>1e-6;(n||r||s)&&console.log("DIFFERENCE Position",i,o.position,a.position);var h=Math.abs(o.rotation[0]-a.rotation[0])>1e-6,p=Math.abs(o.rotation[1]-a.rotation[1])>1e-6,u=Math.abs(o.rotation[2]-a.rotation[2])>1e-6;(h||p||u)&&console.log("DIFFERENCE Rotation",i,o.rotation,a.rotation),o.scaling.x===a.scaling.x&&o.scaling.y===a.scaling.y&&o.scaling.z===a.scaling.z||console.log("DIFFERENCE Scaling",i,o.scaling,a.scaling)})}else console.log("a or b is undefined !!")},a.prototype.calculateMissing=function(t,e,i,o){if(0===t)return!1;for(var a=1/this.stepSize,n=Math.ceil(t*a),r=i?i.getCache():e?this.backwardsCache.getCache():this.forwardCache.getCache(),s=[],h=n;h>0;h--)r[h]||(s=__spreadArray([h],s,!0));if(s.length<1)return!1;for(var p=0,u=s;p<u.length;p++){var d=u[p];this.calculate___SetStagePositionInternal(this.parameters.Stage,d/a,e,o);var m=o.getShadow();e?this.backwardsCache.setCache(d,m):this.forwardCache.setCache(d,m),this.useCache&&this.Debug&&console.log("Add missing",d)}return!0},a.prototype.readQuat=function(t,e){var i=t.X,o="string"==typeof i?e(i,this.params):i;o=isNaN(o)?0:o;var a=t.Y,n="string"==typeof a?e(a,this.params):a;n=isNaN(n)?0:n;var r=t.Z,s="string"==typeof r?e(r,this.params):r;s=isNaN(s)?0:s;var h=t.W,p="string"==typeof h?e(h,this.params):h;return{x:o,y:n,z:s,w:p=isNaN(p)?0:p}},a.prototype.detectQuaternion=function(t){return"True"===t.Q||"true"===t.Q||"TRUE"===t.Q||!0===t.Q},a.prototype.slerpInPlaceA=function(t,e,i){if(0===i)return t;if(1===i)return t=__assign({},e);var o=t.x,a=t.y,n=t.z,r=t.w,s=r*e.w+o*e.x+a*e.y+n*e.z;if(s<0?(t.w=-e.w,t.x=-e.x,t.y=-e.y,t.z=-e.z,s=-s):t=__assign({},e),s>=1)return t.w=r,t.x=o,t.y=a,t.z=n,t;var h=1-s*s;if(h<=1e-8){var p=1-i;return t.w=p*r+i*t.w,t.x=p*o+i*t.x,t.y=p*a+i*t.y,t.z=p*n+i*t.z,IG.Math.Quaternion.normalizeInPlace(t),t}var u=Math.sqrt(h),d=Math.atan2(u,s),m=Math.sin((1-i)*d)/u,l=Math.sin(i*d)/u;return t.w=r*m+t.w*l,t.x=o*m+t.x*l,t.y=a*m+t.y*l,t.z=n*m+t.z*l,t},a.prototype.SetMultiViaQuat=function(t,e,i,o,a,n,r,s){var h=!!s.SetQuaternionRotation;if((e&&i||e&&o||i&&o)&&h){var p,u={x:a*IG.Math.Deg2Rad,y:n*IG.Math.Deg2Rad,z:r*IG.Math.Deg2Rad};p=IG.Math.Quaternion.createFromEuler({x:u.x,y:u.y,z:u.z,order:"xyz"}),s.SetQuaternionRotation&&s.SetQuaternionRotation(t,p.x,p.y,p.z,p.w)}else e&&s.SetXRotation(t,a),i&&s.SetYRotation(t,n),o&&s.SetZRotation(t,r)},a.prototype.calculate___SetStagePositionInternal=function(t,i,o,a){var n=this;if(void 0!==this.animation&&(this.backwardAnimation||(o=!1),this.parameters.Stage===t)){i<0?i=0:i>1&&(i=1);var r=this.animation;o&&(r=this.backwardAnimation);var s={};this.animation.LinkedPoints&&Object.keys(this.animation.LinkedPoints).forEach(function(t){(n.animation.LinkedPoints[t]||[]).forEach(function(i){var o=n.GetComponentId(),r=o.split("_")[0]+"__",h=e.getAbsPath(o,t),p=e.Util.GetLocalTransform(r+".",h,a),u=a.GetVisibility(h);s[i]={ppath:t,tf:p,oldvisibility:u}})});var h=new Array;r._loops.forEach(function(t){var o=!1;t.states.forEach(function(r){if(!1===o&&i<=r.time){var s=n.GetComponentId();if("."!==t.path&&(s=e.getAbsPath(s,t.path)),!1===a.IsValid(s))return;h.push(s);var p=/param(\d+)/i,u=function(t,e){var i=t.match(p);if(i){var o=parseInt(i[1]);return o--,parseFloat(e[o])}};if(void 0===r.state2){if(r.state1.Position){var d=a.GetPosition(s);if(void 0!==r.state1.Position.X){var m=r.state1.Position.X;d.x="string"==typeof m?u(m,n.params):m,d.x=isNaN(d.x)?0:d.x}if(void 0!==r.state1.Position.Y){var l=r.state1.Position.Y;d.y="string"==typeof l?u(l,n.params):l,d.y=isNaN(d.y)?0:d.y}if(void 0!==r.state1.Position.Z){var c=r.state1.Position.Z;d.z="string"==typeof c?u(c,n.params):c,d.z=isNaN(d.z)?0:d.z}a.SetPosition(s,d)}if(r.state1.Rotation)if(n.detectQuaternion(r.state1.Rotation)){var f=n.readQuat(r.state1.Rotation,u),S=IG.Math.Euler.createFromQuaternion(f,"xyz");a.SetQuaternionRotation?a.SetQuaternionRotation(s,f.x,f.y,f.z,f.w):(a.SetXRotation(s,S.x*IG.Math.Rad2Deg),a.SetYRotation(s,S.y*IG.Math.Rad2Deg),a.SetZRotation(s,S.z*IG.Math.Rad2Deg))}else{var I=!1,v=0,g=!1,P=0,G=!1,A=0;if(void 0!==r.state1.Rotation.X)v="string"==typeof(m=r.state1.Rotation.X)?u(m,n.params):m,v=isNaN(v)?0:v,I=!0;if(void 0!==r.state1.Rotation.Y)P="string"==typeof(l=r.state1.Rotation.Y)?u(l,n.params):l,P=isNaN(P)?0:P,g=!0;if(void 0!==r.state1.Rotation.Z)A="string"==typeof(c=r.state1.Rotation.Z)?u(c,n.params):c,A=isNaN(A)?0:A,G=!0;n.SetMultiViaQuat(s,I,g,G,v,P,A,a)}if(r.state1.Scaling){var y=a.GetScaling(s);if(void 0!==r.state1.Scaling.X){m=r.state1.Scaling.X;y.x="string"==typeof m?u(m,n.params):m,y.x=isNaN(y.x)?1:y.x}if(void 0!==r.state1.Scaling.Y){l=r.state1.Scaling.Y;y.y="string"==typeof l?u(l,n.params):l,y.y=isNaN(y.y)?1:y.y}if(void 0!==r.state1.Scaling.Z){c=r.state1.Scaling.Z;y.z="string"==typeof c?u(c,n.params):c,y.z=isNaN(y.z)?1:y.z}a.SetScaling(s,y)}if(void 0!==r.state1.Deformation){var M=r.state1.Deformation,R="string"==typeof M?u(M,n.params):M;R=isNaN(R)?0:R,a.SetDeformation(s,R)}if(void 0!==r.state1.Visibility)"string"==typeof(F=r.state1.Visibility)&&(F="true"===n.params[parseInt(F.match(p)[1])-1]),a.SetVisibility(s,F)}else{var C=(r.time-i)/r.period,b=1-C;if(r.state1.Position){d=a.GetPosition(s);if(void 0!==r.state1.Position.X){var _="string"==typeof(V=r.state1.Position.X)?u(V,n.params):V;_=isNaN(_)?0:_;var w="string"==typeof(z=r.state2.Position.X?r.state2.Position.X:0)?u(z,n.params):z;w=isNaN(w)||void 0===w?0:w,d.x=C*_+b*w}if(void 0!==r.state1.Position.Y){_="string"==typeof(X=r.state1.Position.Y)?u(X,n.params):X;_=isNaN(_)?0:_;w="string"==typeof(D=r.state2.Position.Y?r.state2.Position.Y:0)?u(D,n.params):D;w=isNaN(w)||void 0===w?0:w,d.y=C*_+b*w}if(void 0!==r.state1.Position.Z){_="string"==typeof(N=r.state1.Position.Z)?u(N,n.params):N;_=isNaN(_)?0:_;w="string"==typeof(L=r.state2.Position.Z?r.state2.Position.Z:0)?u(L,n.params):L;w=isNaN(w)||void 0===w?0:w,d.z=C*_+b*w}a.SetPosition(s,d)}else if(r.state2.Position){d=n.IGX_API.GetPosition(s);if(void 0!==r.state2.Position.X){w="string"==typeof(z=r.state2.Position.X)?u(z,n.params):z;w=isNaN(w)?0:w,d.x=b*w}if(void 0!==r.state2.Position.Y){w="string"==typeof(D=r.state2.Position.Y)?u(D,n.params):D;w=isNaN(w)?0:w,d.y=b*w}if(void 0!==r.state2.Position.Z){w="string"==typeof(L=r.state2.Position.Z)?u(L,n.params):L;w=isNaN(w)?0:w,d.z=b*w}a.SetPosition(s,d)}if(r.state1.Rotation)if(n.detectQuaternion(r.state1.Rotation)){var x=n.readQuat(r.state1.Rotation,u),T=n.readQuat(r.state2.Rotation,u),E=__assign({},x);E=n.slerpInPlaceA(E,T,b);S=IG.Math.Euler.createFromQuaternion(E,"xyz");a.SetQuaternionRotation?a.SetQuaternionRotation(s,E.x,E.y,E.z,E.w):(a.SetXRotation(s,S.x*IG.Math.Rad2Deg),a.SetYRotation(s,S.y*IG.Math.Rad2Deg),a.SetZRotation(s,S.z*IG.Math.Rad2Deg))}else{I=!1,v=0,g=!1,P=0,G=!1,A=0;if(void 0!==r.state1.Rotation.X){_="string"==typeof(V=r.state1.Rotation.X)?u(V,n.params):V;_=isNaN(_)?0:_;w="string"==typeof(z=r.state2.Rotation.X?r.state2.Rotation.X:0)?u(z,n.params):z;I=!0,v=C*_+b*(w=isNaN(w)||void 0===w?0:w)}if(void 0!==r.state1.Rotation.Y){_="string"==typeof(X=r.state1.Rotation.Y)?u(X,n.params):X;_=isNaN(_)?0:_;w="string"==typeof(D=r.state2.Rotation.Y?r.state2.Rotation.Y:0)?u(D,n.params):D;g=!0,P=C*_+b*(w=isNaN(w)||void 0===w?0:w)}if(void 0!==r.state1.Rotation.Z){_="string"==typeof(N=r.state1.Rotation.Z)?u(N,n.params):N;_=isNaN(_)?0:_;w="string"==typeof(L=r.state2.Rotation.Z?r.state2.Rotation.Z:0)?u(L,n.params):L;G=!0,A=C*_+b*(w=isNaN(w)||void 0===w?0:w)}n.SetMultiViaQuat(s,I,g,G,v,P,A,a)}else if(r.state2.Rotation)if(n.detectQuaternion(r.state2.Rotation)){f=n.readQuat(r.state2.Rotation,u),S=IG.Math.Euler.createFromQuaternion(f,"xyz");a.SetQuaternionRotation?a.SetQuaternionRotation(s,f.x,f.y,f.z,f.w):(a.SetXRotation(s,S.x*IG.Math.Rad2Deg),a.SetYRotation(s,S.y*IG.Math.Rad2Deg),a.SetZRotation(s,S.z*IG.Math.Rad2Deg))}else{I=!1,v=0,g=!1,P=0,G=!1,A=0;if(void 0!==r.state2.Rotation.X){w="string"==typeof(z=r.state2.Rotation.X)?u(z,n.params):z;I=!0,v=b*(w=isNaN(w)?0:w)}if(void 0!==r.state2.Rotation.Y){w="string"==typeof(D=r.state2.Rotation.Y)?u(D,n.params):D;g=!0,P=b*(w=isNaN(w)?0:w)}if(void 0!==r.state2.Rotation.Z){w="string"==typeof(L=r.state2.Rotation.Z)?u(L,n.params):L;G=!0,A=b*(w=isNaN(w)?0:w)}console.log("interpolated rotation x!"),n.SetMultiViaQuat(s,I,g,G,v,P,A,a)}if(r.state1.Scaling){y=a.GetScaling(s);if(void 0!==r.state1.Scaling.X){var V;_="string"==typeof(V=r.state1.Scaling.X)?u(V,n.params):V;_=isNaN(_)?1:_;w="string"==typeof(z=r.state2.Scaling.X?r.state2.Scaling.X:1)?u(z,n.params):z;void 0===(w=isNaN(w)?1:w)&&(w=1),y.x=C*_+b*w}if(void 0!==r.state1.Scaling.Y){var X;_="string"==typeof(X=r.state1.Scaling.Y)?u(X,n.params):X;_=isNaN(_)?1:_;w="string"==typeof(D=r.state2.Scaling.Y?r.state2.Scaling.Y:1)?u(D,n.params):D;void 0===(w=isNaN(w)?1:w)&&(w=1),y.y=C*_+b*w}if(void 0!==r.state1.Scaling.Z){var N;_="string"==typeof(N=r.state1.Scaling.Z)?u(N,n.params):N;_=isNaN(_)?1:_;w="string"==typeof(L=r.state2.Scaling.Z?r.state2.Scaling.Z:1)?u(L,n.params):L;void 0===(w=isNaN(w)?1:w)&&(w=1),y.z=C*_+b*w}a.SetScaling(s,y)}else if(r.state2.Scaling){y=a.GetScaling(s);if(void 0!==r.state2.Scaling.X){var z;w="string"==typeof(z=r.state2.Scaling.X)?u(z,n.params):z;w=isNaN(w)?1:w,y.x=C+b*w}if(void 0!==r.state2.Scaling.Y){var D;w="string"==typeof(D=r.state2.Scaling.Y)?u(D,n.params):D;w=isNaN(w)?1:w,y.y=C+b*w}if(void 0!==r.state2.Scaling.Z){var L;w="string"==typeof(L=r.state2.Scaling.Z)?u(L,n.params):L;w=isNaN(w)?1:w,y.z=C+b*w}a.SetScaling(s,y)}if(void 0!==r.state1.Deformation){var k=r.state1.Deformation;_="string"==typeof k?u(k,n.params):k;_=isNaN(_)?0:_;w="string"==typeof(Y=r.state2.Deformation)?u(Y,n.params):Y;void 0===(w=isNaN(w)?0:w)&&(w=0),a.SetDeformation(s,C*_+b*w)}else if(void 0!==r.state2.Deformation){var Y;w="string"==typeof(Y=r.state2.Deformation)?u(Y,n.params):Y;w=isNaN(w)?0:w,a.SetDeformation(s,b*w)}if(void 0!==r.state1.Visibility)"string"==typeof(F=r.state1.Visibility)&&(F="true"===n.params[parseInt(F.match(p)[1])-1]),a.SetVisibility(s,F);else if(void 0!==r.state2.Visibility){var F;"string"==typeof(F=r.state2.Visibility)&&(F="true"===n.params[parseInt(F.match(p)[1])-1]),a.SetVisibility(s,F)}}o=!0}})});var p=this.kinematics;o&&(p=this.backwardKinematics),p&&p.KinematicSolver(this.GetComponentId(),this.params,h,a),s&&Object.keys(s).forEach(function(t){var i=s[t].ppath,o=s[t].oldvisibility,r=n.GetComponentId(),h=r.split("_")[0]+"__",p=e.getAbsPath(r,i),u=e.Util.GetLocalTransform(h+".",p,a),d=a.GetVisibility(p);a.SetPoint(h+".",t,u[0],u[1],d!=o?d:null)})}},a.prototype.GetHints=function(){var t=[0];return this.animation&&(this.animation.Animations||[]).forEach(function(e){e.States&&Object.keys(e.States).forEach(function(e){t.push(parseFloat(e+""))})}),this.backwardAnimation&&(this.backwardAnimation.Animations||[]).forEach(function(e){e.States&&Object.keys(e.States).forEach(function(e){t.push(parseFloat(e+""))})}),t.push(1),t},a.PARAM_COUNT=50,a.windowReplacement={comment:"animCaches parent without window object"},a}(t.Core.Interactor);e.AnimationInteractor=a,e.Test1={Id:"Test1",Animations:[{States:{.1:{Position:{Y:.1}},.6:{Position:{Y:.2}},.9:{Position:{Y:1}}}}]}}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,e.Start,0),e.SetupValue(t,e.End,1),e.SetupAnimation(t),o=i.call(this,t)||this,void 0===t.Inverse?t.Inverse=!1:"string"==typeof t.Inverse?t.Inverse=!0===t.Inverse||"true"===t.Inverse||"1"===t.Inverse||1===t.Inverse:t.Inverse=1==t.Inverse,o.parameters[e.Manual]=!1,o.bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(t){this.SetStagePosition(this.parameters.Stage,t===e.Start?this.parameters[e.Start]:this.parameters[e.End])},o.prototype.SetStagePosition=function(e,i){var o;e===this.parameters.Stage&&(o=this.bAutoReset?i<.5?2*(this.parameters.Inverse?1-i-.5:i):2*(1-(this.parameters.Inverse?1-i+.5:i)):this.parameters.Inverse?1-i:i,e===this.parameters.Stage&&t.API.SetDeformation(this.GetComponentId(),o))},o}(t.Core.Interactor);e.DeformationInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o=this;return e.SetupValue(t,"Maximum",90),e.SetupValue(t,"Minimum",0),e.SetupValue(t,"Thickness",0),e.SetupValue(t,"Gap",0),"X"!=t.RotationAxis&&"Y"!=t.RotationAxis&&"Z"!=t.RotationAxis&&(t.RotationAxis="X"),"Right"!=t.Offset&&(t.Offset="Left"),e.SetupAnimation(t),(o=i.call(this,t)||this).bAutoReset=!1,"string"==typeof t.AutoReset&&"true"===t.AutoReset.toLowerCase()?o.bAutoReset=!0:"string"!=typeof t.AutoReset&&(o.bAutoReset=t.AutoReset),o}return __extends(o,i),o.prototype.SetPosition=function(t){switch(t){case e.Start:this.setPosition(0);break;case e.End:this.setPosition(1)}},o.prototype.setPosition=function(e){this.position||(this.position=t.API.GetPosition(this.GetComponentId()));var i=this.parameters.Offset,o=this.parameters.RotationAxis,a=this.parameters.Thickness*e,n=this.parameters.Gap*e;if(!(void 0===this.parameters.Start&&void 0===this.parameters.StageStart&&void 0===this.parameters.Minimum||void 0===this.parameters.End&&void 0===this.parameters.StageEnd&&void 0===this.parameters.Maximum)){var r,s=(r=void 0===this.parameters.StageStart?void 0===this.parameters.Start?this.parameters.Minimum:this.parameters.Start:this.parameters.StageStart)+((void 0===this.parameters.StageEnd?void 0===this.parameters.End?this.parameters.Maximum:this.parameters.End:this.parameters.StageEnd)-r)*e,h=new t.Float3;if(h.x=this.position.x,h.y=this.position.y,h.z=this.position.z,console.log(i,o,h,s),"Left"===i)switch(o){case"X":h.z-=a,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetXRotation(this.GetComponentId(),s);break;case"Y":h.x-=a,h.z+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetYRotation(this.GetComponentId(),s);break;case"Z":h.x-=a,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetZRotation(this.GetComponentId(),-s)}else switch(o){case"X":h.z+=a,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetXRotation(this.GetComponentId(),-s);break;case"Y":h.x+=a,h.z+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetYRotation(this.GetComponentId(),-s);break;case"Z":h.x+=a,h.y+=n,t.API.SetPosition(this.GetComponentId(),h),t.API.SetZRotation(this.GetComponentId(),s)}}},o.prototype.SetStagePosition=function(t,e){if(t.toString()===this.parameters.Stage.toString()){var i=e;this.bAutoReset&&(i=e<.5?2*e:2*(1-e)),this.setPosition(i)}},o.prototype.GetHints=function(){var t=[0];return this.bAutoReset&&t.push(.5),t.push(1),t},o}(t.Core.Interactor);e.OffsetRotator=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),function(t){!function(e){var i=function(i){function o(t){var o;return e.SetupAnimation(t),o=i.call(this,t)||this,"string"==typeof t.Threshold?t.Threshold=Number(t.Threshold):"number"==typeof t.Threshold?t.Threshold=t.Threshold:void 0===t.Threshold&&(t.Threshold=.1),o}return __extends(o,i),o.prototype.SetPosition=function(t){this.SetStagePosition(this.parameters.Stage,t===e.Start?0:1)},o.prototype.SetStagePosition=function(e,i){e===this.parameters.Stage&&t.API.SetVisibility(this.GetComponentId(),i<this.parameters.Threshold)},o}(t.Core.Interactor);e.VisibilityInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={})),console.log("IG.GFX.Standard 1.12.0 (1.12.0.100). Copyright (C) 2013 - 2026 intelligentgraphics AG. All Rights Reserved."),!IGX.Float3){var Float3=function(t,e,i){this.x=void 0===t?0:t,this.y=void 0===e?0:e,this.z=void 0===i?0:i};IGX.Float3=Float3}!function(t){!function(e){var i=function(t){function i(i){return e.SetupAnimation(i),t.call(this,i)||this}return __extends(i,t),i.prototype.SetPosition=function(t){},i.prototype.SetStagePosition=function(t,e){},i}(t.Core.Interactor);e.EmptyInteractor=i}(t.Std||(t.Std={}))}(IGX||(IGX={}));
9
+ //# sourceMappingURL=IG.GFX.Standard.min.js.map
package/Readme.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## History
4
4
 
5
+ **IG.GFX.Standard 1.12.0**
6
+
7
+ - improve kinematics performance
8
+
9
+ **IG.GFX.Standard 1.11.1**
10
+
11
+ - fix creation of shadow scene for recorded animation interactor
12
+
13
+ **IG.GFX.Standard 1.11.0**
14
+
15
+ - add support for AnimationInteractor LinkedPoints parameters
16
+
5
17
  **IG.GFX.Standard 1.10.5**
6
18
 
7
19
  - set multi rotations via quaternion if available
@@ -10,14 +22,13 @@
10
22
 
11
23
  - fix another issue in d.ts file
12
24
 
13
-
14
25
  **IG.GFX.Standard 1.10.3**
15
26
 
16
27
  - fix issues in d.ts file
17
28
 
18
29
  **IG.GFX.Standard 1.10.2**
19
30
 
20
- - add AutoReset option for AnimationInteractor
31
+ - add AutoReset option for AnimationInteractor
21
32
 
22
33
  **IG.GFX.Standard 1.10.1**
23
34
 
@@ -39,7 +50,7 @@
39
50
 
40
51
  **IG.GFX.Standard 1.9.1**
41
52
 
42
- - improve _index.json types
53
+ - improve \_index.json types
43
54
 
44
55
  **IG.GFX.Standard 1.9**
45
56
 
@@ -78,10 +89,10 @@
78
89
  **IG.GFX.Standard 1.7.4**
79
90
 
80
91
  - AutoReset param for:
81
- - all range and raster translators
82
- - all range and raster rotators
83
- - deformation interactor
84
- - offset rotator
92
+ - all range and raster translators
93
+ - all range and raster rotators
94
+ - deformation interactor
95
+ - offset rotator
85
96
  - code cleanup
86
97
 
87
98
  **IG.GFX.Standard 1.7.3 Patch 4**
@@ -109,19 +120,19 @@
109
120
 
110
121
  **IG.GFX.Standard 1.7.2**
111
122
 
112
- - Kinematics Interactor:
113
- - better centroid calculation (multi target)
114
- - fixed constraints
115
- - follow target feature
116
- - independent multiple chains in one animation.json
123
+ - Kinematics Interactor:
124
+ - better centroid calculation (multi target)
125
+ - fixed constraints
126
+ - follow target feature
127
+ - independent multiple chains in one animation.json
117
128
  - Utilities:
118
- - updated GetLocalTransform with correct math functions (composeTRS - needs Math library 1.0.2)
119
- - new GetRelativePosition function
129
+ - updated GetLocalTransform with correct math functions (composeTRS - needs Math library 1.0.2)
130
+ - new GetRelativePosition function
120
131
 
121
132
  **IG.GFX.Standard 1.7.1**
122
133
 
123
134
  - Animation Interactor: mapping of object paths to attachment points:
124
- - new entry "LinkedPoints" parallel to "Animations": path -> array of point keys
135
+ - new entry "LinkedPoints" parallel to "Animations": path -> array of point keys
125
136
 
126
137
  **IG.GFX.Standard 1.7 Patch 1**
127
138
 
@@ -175,13 +186,13 @@
175
186
  **IG.GFX.Standard 1.5.1**
176
187
 
177
188
  - AnimationInteractor:
178
- -- access to neighbors via path prefix '..'
179
- -- new parameter Visibility
180
- -- fix for assignment to root components
189
+ -- access to neighbors via path prefix '..'
190
+ -- new parameter Visibility
191
+ -- fix for assignment to root components
181
192
 
182
193
  **IG.GFX.Standard 1.5**
183
194
 
184
- - new special functions for particular hinges: IGX.Std.FourBar
195
+ - new special functions for particular hinges: IGX.Std.FourBar
185
196
  - new basic vector functions: IGX.Std.Util
186
197
 
187
198
  **IG.GFX.Standard 1.4.1**
@@ -203,7 +214,7 @@
203
214
 
204
215
  **IG.GFX.Standard 1.2**
205
216
 
206
- - Adds animation stages to x y z range rotator and range translator
217
+ - Adds animation stages to x y z range rotator and range translator
207
218
 
208
219
  **IG.GFX.Standard 1.1.1**
209
220
 
package/_Package.json CHANGED
@@ -5,5 +5,5 @@
5
5
  "Type": "Interactor",
6
6
  "RunTime": true,
7
7
  "Copyright": "Copyright (C) 2013 - 2024 intelligentgraphics AG. All Rights Reserved.",
8
- "Version": "1.11.0.100"
8
+ "Version": "1.12.0.100"
9
9
  }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
- "name": "@intelligentgraphics/3d.ig.gfx.standard",
3
- "description": "IG.GFX.Standard 1.11.0 (1.11.0.100)",
4
- "version": "1.11.0",
5
- "dependencies": {
6
- "@intelligentgraphics/3d.ig.gfx.core": "^2.6.1",
7
- "@intelligentgraphics/3d.ig.math": "^1.1.0"
8
- },
9
- "main": "IG.GFX.Standard.js",
10
- "types": "IG.GFX.Standard.d.ts",
11
- "publishConfig": {
12
- "acccess": "public"
13
- },
14
- "ig": {
15
- "scriptingLibrary": true
16
- }
17
- }
2
+ "name": "@intelligentgraphics/3d.ig.gfx.standard",
3
+ "description": "IG.GFX.Standard 1.12.0 (1.12.0.100)",
4
+ "version": "1.12.0",
5
+ "dependencies": {
6
+ "@intelligentgraphics/3d.ig.gfx.core": "^2.6.1",
7
+ "@intelligentgraphics/3d.ig.math": "^1.1.0"
8
+ },
9
+ "main": "IG.GFX.Standard.js",
10
+ "types": "IG.GFX.Standard.d.ts",
11
+ "publishConfig": {
12
+ "acccess": "public"
13
+ },
14
+ "ig": {
15
+ "scriptingLibrary": true
16
+ }
17
+ }