@needle-tools/engine 3.3.0-alpha → 3.4.0-alpha

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.
Files changed (101) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/needle-engine.js +26116 -24881
  3. package/dist/needle-engine.min.js +384 -383
  4. package/dist/needle-engine.umd.cjs +372 -371
  5. package/lib/engine/codegen/register_types.js +50 -2
  6. package/lib/engine/codegen/register_types.js.map +1 -1
  7. package/lib/engine/engine_gameobject.d.ts +1 -1
  8. package/lib/engine/engine_gameobject.js +4 -2
  9. package/lib/engine/engine_gameobject.js.map +1 -1
  10. package/lib/engine/engine_three_utils.js +2 -2
  11. package/lib/engine/engine_three_utils.js.map +1 -1
  12. package/lib/engine-components/Animation.js +4 -0
  13. package/lib/engine-components/Animation.js.map +1 -1
  14. package/lib/engine-components/codegen/components.d.ts +25 -1
  15. package/lib/engine-components/codegen/components.js +25 -1
  16. package/lib/engine-components/codegen/components.js.map +1 -1
  17. package/lib/engine-components/export/usdz/Extension.d.ts +4 -4
  18. package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +86 -0
  19. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +830 -0
  20. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -0
  21. package/lib/engine-components/export/usdz/USDZExporter.d.ts +6 -3
  22. package/lib/engine-components/export/usdz/USDZExporter.js +34 -11
  23. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  24. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +15 -15
  25. package/lib/engine-components/export/usdz/extensions/Animation.js +24 -29
  26. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
  27. package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -0
  28. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +7 -0
  29. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js.map +1 -0
  30. package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +47 -0
  31. package/lib/engine-components/export/usdz/extensions/USDZText.js +114 -0
  32. package/lib/engine-components/export/usdz/extensions/USDZText.js.map +1 -0
  33. package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -0
  34. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +89 -0
  35. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js.map +1 -0
  36. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +23 -0
  37. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +114 -0
  38. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js.map +1 -0
  39. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +96 -0
  40. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +421 -0
  41. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -0
  42. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +111 -0
  43. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +409 -0
  44. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js.map +1 -0
  45. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  46. package/lib/engine-components/ui/BaseUIComponent.d.ts +2 -0
  47. package/lib/engine-components/ui/BaseUIComponent.js +6 -0
  48. package/lib/engine-components/ui/BaseUIComponent.js.map +1 -1
  49. package/lib/engine-components/ui/Canvas.d.ts +11 -1
  50. package/lib/engine-components/ui/Canvas.js +72 -3
  51. package/lib/engine-components/ui/Canvas.js.map +1 -1
  52. package/lib/engine-components/ui/Graphic.js.map +1 -1
  53. package/lib/engine-components/ui/Image.js +4 -4
  54. package/lib/engine-components/ui/Image.js.map +1 -1
  55. package/lib/engine-components/ui/Interfaces.d.ts +11 -0
  56. package/lib/engine-components/ui/Interfaces.js +11 -0
  57. package/lib/engine-components/ui/Interfaces.js.map +1 -1
  58. package/lib/engine-components/ui/Layout.d.ts +65 -3
  59. package/lib/engine-components/ui/Layout.js +304 -3
  60. package/lib/engine-components/ui/Layout.js.map +1 -1
  61. package/lib/engine-components/ui/RectTransform.d.ts +8 -7
  62. package/lib/engine-components/ui/RectTransform.js +63 -35
  63. package/lib/engine-components/ui/RectTransform.js.map +1 -1
  64. package/lib/engine-components/utils/LookAt.d.ts +7 -1
  65. package/lib/engine-components/utils/LookAt.js +43 -6
  66. package/lib/engine-components/utils/LookAt.js.map +1 -1
  67. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +4 -3
  68. package/lib/engine-components/webxr/WebXRImageTracking.js +81 -25
  69. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  70. package/lib/tsconfig.tsbuildinfo +1 -1
  71. package/package.json +1 -1
  72. package/plugins/vite/reload.js +13 -2
  73. package/src/engine/codegen/register_types.js +52 -4
  74. package/src/engine/engine_gameobject.ts +3 -2
  75. package/src/engine/engine_three_utils.ts +2 -2
  76. package/src/engine-components/Animation.ts +4 -0
  77. package/src/engine-components/codegen/components.ts +25 -1
  78. package/src/engine-components/export/usdz/Extension.ts +4 -5
  79. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1280 -0
  80. package/src/engine-components/export/usdz/USDZExporter.ts +39 -17
  81. package/src/engine-components/export/usdz/extensions/Animation.ts +37 -45
  82. package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +10 -0
  83. package/src/engine-components/export/usdz/extensions/USDZText.ts +142 -0
  84. package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -0
  85. package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +181 -0
  86. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +503 -0
  87. package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +459 -0
  88. package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
  89. package/src/engine-components/ui/BaseUIComponent.ts +7 -1
  90. package/src/engine-components/ui/Canvas.ts +80 -5
  91. package/src/engine-components/ui/Graphic.ts +2 -0
  92. package/src/engine-components/ui/Image.ts +3 -3
  93. package/src/engine-components/ui/Interfaces.ts +30 -6
  94. package/src/engine-components/ui/Layout.ts +303 -4
  95. package/src/engine-components/ui/RectTransform.ts +65 -40
  96. package/src/engine-components/utils/LookAt.ts +60 -7
  97. package/src/engine-components/webxr/WebXRImageTracking.ts +100 -27
  98. package/lib/engine-components/export/usdz/types.d.ts +0 -34
  99. package/lib/engine-components/export/usdz/types.js +0 -2
  100. package/lib/engine-components/export/usdz/types.js.map +0 -1
  101. package/src/engine-components/export/usdz/types.ts +0 -39
@@ -0,0 +1,30 @@
1
+ import { Object3D, Matrix4, Material, BufferGeometry } from "three";
2
+ import { ActionModel } from "./BehavioursBuilder";
3
+ import { USDObject, USDDocument } from "../../ThreeUSDZExporter";
4
+ export declare abstract class DocumentAction {
5
+ get id(): string;
6
+ protected object: Object3D;
7
+ protected model?: USDObject;
8
+ constructor(obj: Object3D);
9
+ apply(document: USDDocument): void;
10
+ protected abstract onApply(document: USDDocument): any;
11
+ }
12
+ export declare class VariantAction extends DocumentAction {
13
+ constructor(obj: Object3D, matrix?: Matrix4, material?: Material, geometry?: BufferGeometry);
14
+ private matrix;
15
+ private material;
16
+ private geometry;
17
+ protected onApply(_: USDDocument): void;
18
+ private _enableAction?;
19
+ private _disableAction?;
20
+ enable(): ActionModel;
21
+ disable(): ActionModel;
22
+ }
23
+ export declare class ActionCollection {
24
+ private actions;
25
+ private sortedActions?;
26
+ constructor(actions: DocumentAction[]);
27
+ private organize;
28
+ /** returns all document actions affecting the object passed in */
29
+ getActions(obj: Object3D): DocumentAction[] | null;
30
+ }
@@ -0,0 +1,89 @@
1
+ import { ActionBuilder } from "./BehavioursBuilder";
2
+ import { USDObject } from "../../ThreeUSDZExporter";
3
+ export class DocumentAction {
4
+ get id() { return this.object.uuid; }
5
+ object;
6
+ model;
7
+ constructor(obj) {
8
+ this.object = obj;
9
+ }
10
+ apply(document) {
11
+ if (!this.model) {
12
+ this.model = document.findById(this.object.uuid);
13
+ if (!this.model) {
14
+ console.error("could not find model with id " + this.object.uuid);
15
+ return;
16
+ }
17
+ }
18
+ this.onApply(document);
19
+ }
20
+ }
21
+ export class VariantAction extends DocumentAction {
22
+ constructor(obj, matrix, material, geometry) {
23
+ super(obj);
24
+ this.matrix = matrix;
25
+ this.material = material;
26
+ this.geometry = geometry;
27
+ }
28
+ matrix;
29
+ material;
30
+ geometry;
31
+ onApply(_) {
32
+ const model = this.model;
33
+ if (!model)
34
+ return;
35
+ if (!model.parent?.isDynamic) {
36
+ USDObject.createEmptyParent(model);
37
+ }
38
+ const clone = model.clone();
39
+ if (this.matrix)
40
+ clone.matrix = this.matrix;
41
+ if (this.material)
42
+ clone.material = this.material;
43
+ if (this.geometry)
44
+ clone.geometry = this.geometry;
45
+ model.parent?.add(clone);
46
+ }
47
+ _enableAction;
48
+ _disableAction;
49
+ enable() {
50
+ if (this._enableAction)
51
+ return this._enableAction;
52
+ this._enableAction = ActionBuilder.fadeAction(this.object, 0, true);
53
+ ;
54
+ return this._enableAction;
55
+ }
56
+ disable() {
57
+ if (this._disableAction)
58
+ return this._disableAction;
59
+ this._disableAction = ActionBuilder.fadeAction(this.object, 0, false);
60
+ ;
61
+ return this._disableAction;
62
+ }
63
+ }
64
+ export class ActionCollection {
65
+ actions;
66
+ sortedActions;
67
+ constructor(actions) {
68
+ this.actions = [...actions];
69
+ }
70
+ // organize is called once when getting an action for the first time
71
+ // the sorted actions are baked then and adding new actions will not be added anymore
72
+ organize() {
73
+ this.sortedActions = {};
74
+ for (const action of this.actions) {
75
+ const id = action.id;
76
+ if (!this.sortedActions[id]) {
77
+ this.sortedActions[id] = [];
78
+ }
79
+ this.sortedActions[id].push(action);
80
+ }
81
+ }
82
+ /** returns all document actions affecting the object passed in */
83
+ getActions(obj) {
84
+ if (!this.sortedActions)
85
+ this.organize();
86
+ return this.sortedActions[obj.uuid];
87
+ }
88
+ }
89
+ //# sourceMappingURL=Actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Actions.js","sourceRoot":"","sources":["../../../../../../src/engine-components/export/usdz/extensions/behavior/Actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Behaviour } from "../../../../Component";
2
+ import { IUSDExporterExtension } from "../../Extension";
3
+ import { USDObject, USDWriter } from "../../ThreeUSDZExporter";
4
+ import { BehaviorModel } from "./BehavioursBuilder";
5
+ import { IContext } from "../../../../../engine/engine_types";
6
+ export interface UsdzBehaviour {
7
+ createBehaviours?(ext: BehaviorExtension, model: USDObject, context: IContext): void;
8
+ beforeCreateDocument?(ext: BehaviorExtension, context: IContext): void;
9
+ afterCreateDocument?(ext: BehaviorExtension, context: IContext): void;
10
+ }
11
+ export declare class USDZBehaviours extends Behaviour {
12
+ start(): void;
13
+ }
14
+ export declare class BehaviorExtension implements IUSDExporterExtension {
15
+ get extensionName(): string;
16
+ private behaviours;
17
+ addBehavior(beh: BehaviorModel): void;
18
+ behaviourComponents: Array<UsdzBehaviour>;
19
+ onBeforeBuildDocument(context: any): void;
20
+ onExportObject(_object: any, model: USDObject, context: any): void;
21
+ onAfterBuildDocument(context: any): void;
22
+ onAfterHierarchy(context: any, writer: USDWriter): void;
23
+ }
@@ -0,0 +1,114 @@
1
+ import { Behaviour, GameObject } from "../../../../Component";
2
+ import { USDZExporter } from "../../USDZExporter";
3
+ export class USDZBehaviours extends Behaviour {
4
+ start() {
5
+ const exporter = GameObject.findObjectOfType(USDZExporter);
6
+ if (exporter) {
7
+ exporter.extensions.push(new BehaviorExtension());
8
+ }
9
+ }
10
+ }
11
+ export class BehaviorExtension {
12
+ get extensionName() {
13
+ return "Behaviour";
14
+ }
15
+ behaviours = [];
16
+ addBehavior(beh) {
17
+ this.behaviours.push(beh);
18
+ }
19
+ behaviourComponents = [];
20
+ onBeforeBuildDocument(context) {
21
+ context.root.traverse(e => {
22
+ GameObject.foreachComponent(e, (comp) => {
23
+ const c = comp;
24
+ if (typeof c.createBehaviours === "function" ||
25
+ typeof c.beforeCreateDocument === "function" ||
26
+ typeof c.afterCreateDocument === "function") {
27
+ this.behaviourComponents.push(c);
28
+ c.beforeCreateDocument?.call(c, this, context);
29
+ }
30
+ }, false);
31
+ });
32
+ }
33
+ onExportObject(_object, model, context) {
34
+ for (const beh of this.behaviourComponents) {
35
+ beh.createBehaviours?.call(beh, this, model, context);
36
+ }
37
+ }
38
+ onAfterBuildDocument(context) {
39
+ for (const beh of this.behaviourComponents) {
40
+ if (typeof beh.afterCreateDocument === "function")
41
+ beh.afterCreateDocument(this, context);
42
+ }
43
+ this.behaviourComponents.length = 0;
44
+ }
45
+ onAfterHierarchy(context, writer) {
46
+ if (this.behaviours?.length) {
47
+ // this.combineBehavioursWithSameTapActions();
48
+ writer.beginBlock('def Scope "Behaviors"');
49
+ for (const beh of this.behaviours)
50
+ beh.writeTo(this, context.document, writer);
51
+ writer.closeBlock();
52
+ }
53
+ }
54
+ }
55
+ // const playAnimationOnTap = new BehaviorModel("b_" + model.name + "_playanim", TriggerBuilder.tapTrigger(model),
56
+ // ActionBuilder.parallel(
57
+ // ActionBuilder.lookAtCameraAction(model),
58
+ // ActionBuilder.sequence(
59
+ // //ActionBuilder.startAnimationAction(model, 0, 0, 1, false, true),
60
+ // ActionBuilder.emphasize(model, 1, MotionType.Float),
61
+ // ActionBuilder.waitAction(1),
62
+ // ActionBuilder.emphasize(model, 1, MotionType.Blink),
63
+ // ActionBuilder.waitAction(1),
64
+ // ActionBuilder.emphasize(model, 1, MotionType.Jiggle),
65
+ // ActionBuilder.waitAction(1),
66
+ // ActionBuilder.emphasize(model, 1, MotionType.Pulse),
67
+ // ActionBuilder.waitAction(1),
68
+ // ActionBuilder.emphasize(model, 1, MotionType.Spin),
69
+ // ActionBuilder.waitAction(1),
70
+ // ActionBuilder.emphasize(model, 1, MotionType.Bounce),
71
+ // ActionBuilder.waitAction(1),
72
+ // ActionBuilder.emphasize(model, 1, MotionType.Flip),
73
+ // ActionBuilder.waitAction(1),
74
+ // ).makeLooping()
75
+ // ).makeLooping()
76
+ // );
77
+ // this.behaviours.push(playAnimationOnTap);
78
+ // return;
79
+ // const identityMatrix = new Matrix4().identity();
80
+ // const emptyParent = new USDZObject(model.name + "_empty", model.matrix);
81
+ // const parent = model.parent;
82
+ // parent.add(emptyParent);
83
+ // model.matrix = identityMatrix;
84
+ // emptyParent.add(model);
85
+ // const geometry = new THREE.SphereGeometry(.6, 32, 16);
86
+ // const modelVariant = new USDZObject(model.name + "_variant", identityMatrix, geometry, new MeshStandardMaterial({ color: 0xff0000 }));
87
+ // emptyParent.add(modelVariant);
88
+ // const matrix2 = new Matrix4();
89
+ // matrix2.makeTranslation(.5, 0, 0);
90
+ // const modelVariant2 = new USDZObject(model.name + "_variant2", matrix2, geometry, new MeshStandardMaterial({ color: 0xffff00 }));
91
+ // emptyParent.add(modelVariant2);
92
+ // const hideVariantOnStart = new BehaviorModel("b_" + model.name + "_start", TriggerBuilder.sceneStartTrigger(), ActionBuilder.fadeAction(modelVariant, 0, false));
93
+ // this.behaviours.push(hideVariantOnStart);
94
+ // const showVariant = new BehaviorModel("b_" + model.name + "_show_variant", [TriggerBuilder.tapTrigger(model)], new GroupActionModel("group", [
95
+ // ActionBuilder.fadeAction(model, 0, false),
96
+ // ActionBuilder.fadeAction(modelVariant, 0, true),
97
+ // ]));
98
+ // this.behaviours.push(showVariant);
99
+ // const showOriginal = new BehaviorModel("b_" + model.name + "_show_original", [
100
+ // TriggerBuilder.tapTrigger(modelVariant),
101
+ // TriggerBuilder.tapTrigger(modelVariant2)
102
+ // ],
103
+ // new GroupActionModel("group", [
104
+ // ActionBuilder.fadeAction([modelVariant, modelVariant2], 0, false),
105
+ // //ActionBuilder.waitAction(1),
106
+ // ActionBuilder.fadeAction(model, 0, true),
107
+ // //ActionBuilder.waitAction(.2),
108
+ // ActionBuilder.startAnimationAction(model, 0, 1000, 1, false, true),
109
+ // //ActionBuilder.lookAtCameraAction(model, 2, Vec3.forward, Vec3.up),
110
+ // //ActionBuilder.waitAction(1),
111
+ // //ActionBuilder.fadeAction(modelVariant2, 0, true),
112
+ // ]).makeSequence());
113
+ // this.behaviours.push(showOriginal);
114
+ //# sourceMappingURL=Behaviour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Behaviour.js","sourceRoot":"","sources":["../../../../../../src/engine-components/export/usdz/extensions/behavior/Behaviour.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { Behaviour } from "../../../../Component";
2
+ import { Animator } from "../../../../Animator";
3
+ import { IPointerClickHandler } from "../../../../ui/PointerEvents";
4
+ import { UsdzAnimation } from "../Animation";
5
+ import { Object3D, Material } from "three";
6
+ import { USDObject } from "../../ThreeUSDZExporter";
7
+ import { BehaviorExtension, UsdzBehaviour } from "./Behaviour";
8
+ import { MotionType } from "./BehavioursBuilder";
9
+ export declare class ChangeTransformOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
10
+ object?: Object3D;
11
+ target?: Object3D;
12
+ duration: number;
13
+ relativeMotion: boolean;
14
+ private coroutine;
15
+ private targetPos;
16
+ private targetRot;
17
+ private targetScale;
18
+ private moveToTarget;
19
+ private moveRelative;
20
+ onPointerClick(): void;
21
+ beforeCreateDocument(ext: any): void;
22
+ }
23
+ export declare class ChangeMaterialOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
24
+ materialToSwitch?: Material;
25
+ variantMaterial?: Material;
26
+ private _objectsWithThisMaterial;
27
+ awake(): void;
28
+ onPointerClick(): void;
29
+ private selfModel;
30
+ private targetModels;
31
+ private static _materialTriggersPerId;
32
+ createBehaviours(_ext: BehaviorExtension, model: USDObject, _context: any): void;
33
+ afterCreateDocument(ext: BehaviorExtension, _context: any): void;
34
+ private createAndAttachBehaviors;
35
+ private createVariants;
36
+ }
37
+ export declare class SetActiveOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
38
+ target?: Object3D;
39
+ private toggleOnClick;
40
+ targetState: boolean;
41
+ hideSelf: boolean;
42
+ onPointerClick(): void;
43
+ private selfModel;
44
+ private otherModel?;
45
+ private toggleModel?;
46
+ createBehaviours(_: any, model: any, _context: any): void;
47
+ private stateBeforeCreatingDocument;
48
+ beforeCreateDocument(): void;
49
+ afterCreateDocument(ext: any, context: any): void;
50
+ }
51
+ export declare class HideOnStart extends Behaviour implements UsdzBehaviour {
52
+ start(): void;
53
+ createBehaviours(ext: any, model: any, _context: any): void;
54
+ beforeCreateDocument(): void;
55
+ afterCreateDocument(): void;
56
+ }
57
+ export declare class EmphasizeOnClick extends Behaviour implements UsdzBehaviour {
58
+ target?: Object3D;
59
+ duration: number;
60
+ motionType: MotionType;
61
+ beforeCreateDocument(): void;
62
+ createBehaviours(ext: any, model: any, _context: any): void;
63
+ afterCreateDocument(_ext: any, _context: any): void;
64
+ }
65
+ export declare class PlayAnimationOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour, UsdzAnimation {
66
+ target?: Object3D;
67
+ animator?: Animator;
68
+ stateName?: string;
69
+ onPointerClick(): void;
70
+ private selfModel;
71
+ private registeredAnimationModel;
72
+ private registeredAnimation?;
73
+ createBehaviours(_ext: any, model: any, _context: any): void;
74
+ afterCreateDocument(ext: any, context: any): void;
75
+ createAnimation(ext: any, model: any, _context: any): void;
76
+ }
77
+ export declare class PreliminaryAction extends Behaviour {
78
+ getType(): string | void;
79
+ target?: Object3D;
80
+ getDuration(): number | void;
81
+ }
82
+ export declare class PreliminaryTrigger extends Behaviour {
83
+ target?: PreliminaryAction;
84
+ }
85
+ export declare class VisibilityAction extends PreliminaryAction {
86
+ type: VisibilityActionType;
87
+ duration: number;
88
+ getType(): "show" | "hide";
89
+ getDuration(): number;
90
+ }
91
+ export declare class TapGestureTrigger extends PreliminaryTrigger {
92
+ }
93
+ export declare enum VisibilityActionType {
94
+ Show = 0,
95
+ Hide = 1
96
+ }