wonder.js
Version:
710 lines (707 loc) • 166 kB
JavaScript
'use strict';
var Curry = require("bs-platform/lib/js/curry.js");
var Sinon = require("wonder-bs-sinon/lib/js/src/sinon.js");
var Sinon$1 = require("sinon");
var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js");
var TestTool$Wonderjs = require("../../../../tool/TestTool.js");
var Vector3Tool$Wonderjs = require("../../../../tool/service/atom/Vector3Tool.js");
var TransformAPI$Wonderjs = require("../../../../../src/api/TransformAPI.js");
var GameObjectAPI$Wonderjs = require("../../../../../src/api/GameObjectAPI.js");
var MainStateTool$Wonderjs = require("../../../../tool/service/state/MainStateTool.js");
var TransformTool$Wonderjs = require("../../../../tool/service/transform/TransformTool.js");
var GameObjectTool$Wonderjs = require("../../../../tool/service/gameObject/GameObjectTool.js");
var QuaternionTool$Wonderjs = require("../../../tool/service/atom/QuaternionTool.js");
var Vector3Service$Wonderjs = require("../../../../../src/service/atom/Vector3Service.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
Wonder_jest.describe("Transform", (function (param) {
var sandbox = Sinon.getSandboxDefaultVal(/* () */0);
var state = /* record */[/* contents */MainStateTool$Wonderjs.createState(/* () */0)];
var _judgeOneToOne = function (param, param$1, param$2, state) {
var child = param[1];
var parent = param[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformAPI$Wonderjs.getTransformLocalPosition(parent, state),
TransformAPI$Wonderjs.getTransformPosition(parent, state),
TransformAPI$Wonderjs.getTransformLocalPosition(child, state),
TransformAPI$Wonderjs.getTransformPosition(child, state)
]), /* tuple */[
param$1[0],
param$1[1],
param$2[0],
param$2[1]
]);
};
var _judgeRotationOneToOne = function (param, param$1, param$2, state) {
var child = param[1];
var parent = param[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformAPI$Wonderjs.getTransformLocalRotation(parent, state),
TransformAPI$Wonderjs.getTransformRotation(parent, state),
TransformAPI$Wonderjs.getTransformLocalRotation(child, state),
TransformAPI$Wonderjs.getTransformRotation(child, state)
]), /* tuple */[
param$1[0],
param$1[1],
param$2[0],
param$2[1]
]);
};
var _judgeScaleOneToOne = function (param, param$1, param$2, state) {
var child = param[1];
var parent = param[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformAPI$Wonderjs.getTransformLocalScale(parent, state),
TransformAPI$Wonderjs.getTransformScale(parent, state),
TransformAPI$Wonderjs.getTransformLocalScale(child, state),
TransformAPI$Wonderjs.getTransformScale(child, state)
]), /* tuple */[
param$1[0],
param$1[1],
param$2[0],
param$2[1]
]);
};
var _judgeOneToTwo = function (param, param$1, param$2, param$3, state) {
var child2 = param[2];
var child1 = param[1];
var parent = param[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformAPI$Wonderjs.getTransformLocalPosition(parent, state),
TransformAPI$Wonderjs.getTransformPosition(parent, state),
TransformAPI$Wonderjs.getTransformLocalPosition(child1, state),
TransformAPI$Wonderjs.getTransformPosition(child1, state),
TransformAPI$Wonderjs.getTransformLocalPosition(child2, state),
TransformAPI$Wonderjs.getTransformPosition(child2, state)
]), /* tuple */[
param$1[0],
param$1[1],
param$2[0],
param$2[1],
param$3[0],
param$3[1]
]);
};
beforeEach((function () {
sandbox[0] = Sinon$1.sandbox.create();
state[0] = TestTool$Wonderjs.init(sandbox, undefined, undefined, /* () */0);
return /* () */0;
}));
afterEach((function () {
return Curry._1(Sinon.restoreSandbox, sandbox[0]);
}));
Wonder_jest.describe("createTransform", (function (param) {
Wonder_jest.test("create a new transform which is just index(int)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformTool$Wonderjs.getRecord(match[0])[/* index */0],
match[1]
]), /* tuple */[
2,
1
]);
}));
Wonder_jest.describe("change state", (function (param) {
return Wonder_jest.test("state->index + 1", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var record = TransformTool$Wonderjs.getRecord(match[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](record[/* index */0]), 2);
}));
}));
return Wonder_jest.test("mark new transform dirty", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformTool$Wonderjs.isDirty(match[1], match[0])), true);
}));
}));
Wonder_jest.describe("unsafeGetTransformParent", (function (param) {
return Wonder_jest.test("if has no parent, error", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var transform = match[1];
var state$1 = match[0];
return Wonder_jest.Expect[/* toThrow */18](Wonder_jest.Expect[/* expect */0]((function (param) {
return TransformAPI$Wonderjs.unsafeGetTransformParent(transform, state$1);
})));
}));
}));
Wonder_jest.describe("setTransformParent", (function (param) {
Wonder_jest.describe("the change of parent before setted as parent will affect child", (function (param) {
Wonder_jest.test("test one(parent)-one(child)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var pos = /* tuple */[
1,
2,
3
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos, match$1[0]));
return _judgeOneToOne(/* tuple */[
parent,
child
], /* tuple */[
pos,
pos
], /* tuple */[
TransformTool$Wonderjs.getDefaultPosition(/* () */0),
pos
], state$1);
}));
return Wonder_jest.test("test one(parent)-two(child)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child1 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var child2 = match$2[1];
var pos1 = /* tuple */[
1,
2,
3
];
var pos2 = /* tuple */[
10,
20,
30
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child1, TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos1, match$2[0]));
var state$2 = TransformAPI$Wonderjs.setTransformParent(parent, child2, TransformAPI$Wonderjs.setTransformLocalPosition(child2, pos2, state$1));
return _judgeOneToTwo(/* tuple */[
parent,
child1,
child2
], /* tuple */[
pos1,
pos1
], /* tuple */[
TransformTool$Wonderjs.getDefaultPosition(/* () */0),
pos1
], /* tuple */[
pos2,
Vector3Service$Wonderjs.add(/* Float */0, pos1, pos2)
], state$2);
}));
}));
Wonder_jest.describe("if set parent to be null, remove its current parent", (function (param) {
Wonder_jest.describe("test one(parent)-one(child)", (function (param) {
var exec = function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var pos = /* tuple */[
1,
2,
3
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos, match$1[0]));
var state$2 = TransformAPI$Wonderjs.setTransformParent(null, child, state$1);
return /* tuple */[
state$2,
parent,
child,
pos
];
};
Wonder_jest.test("test remove its current parent", (function (param) {
var match = exec(/* () */0);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformTool$Wonderjs.getTransformParent(match[2], match[0])), undefined);
}));
return Wonder_jest.test("test position and local position", (function (param) {
var match = exec(/* () */0);
var pos = match[3];
return _judgeOneToOne(/* tuple */[
match[1],
match[2]
], /* tuple */[
pos,
pos
], /* tuple */[
TransformTool$Wonderjs.getDefaultPosition(/* () */0),
TransformTool$Wonderjs.getDefaultPosition(/* () */0)
], match[0]);
}));
}));
return Wonder_jest.test("test one(parent)-two(child)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child1 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var child2 = match$2[1];
var pos1 = /* tuple */[
1,
2,
3
];
var pos2 = /* tuple */[
10,
20,
30
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child1, TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos1, match$2[0]));
var state$2 = TransformAPI$Wonderjs.setTransformParent(parent, child2, TransformAPI$Wonderjs.setTransformLocalPosition(child2, pos2, state$1));
var state$3 = TransformAPI$Wonderjs.setTransformParent(null, child2, state$2);
return _judgeOneToTwo(/* tuple */[
parent,
child1,
child2
], /* tuple */[
pos1,
pos1
], /* tuple */[
TransformTool$Wonderjs.getDefaultPosition(/* () */0),
pos1
], /* tuple */[
pos2,
pos2
], state$3);
}));
}));
Wonder_jest.describe("if child already has parent", (function (param) {
Wonder_jest.test("can set the same parent", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, TransformAPI$Wonderjs.setTransformLocalPosition(parent, /* tuple */[
1,
2,
3
], match$1[0]));
var state$2 = TransformAPI$Wonderjs.setTransformParent(parent, child, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.unsafeGetTransformParent(child, state$2)), parent);
}));
Wonder_jest.test("can set different parent", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent1 = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var parent2 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var child = match$2[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent1, child, TransformAPI$Wonderjs.setTransformLocalPosition(parent1, /* tuple */[
1,
2,
3
], match$2[0]));
var state$2 = TransformAPI$Wonderjs.setTransformParent(parent2, child, TransformAPI$Wonderjs.setTransformLocalPosition(parent2, /* tuple */[
300,
20,
30
], state$1));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.unsafeGetTransformParent(child, state$2)), parent2);
}));
return Wonder_jest.test("change its current parent's children order", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child1 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var match$3 = TransformAPI$Wonderjs.createTransform(match$2[0]);
var child3 = match$3[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child3, TransformAPI$Wonderjs.setTransformParent(parent, match$2[1], TransformAPI$Wonderjs.setTransformParent(parent, child1, match$3[0])));
var state$2 = TransformAPI$Wonderjs.setTransformParent(child3, child1, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.unsafeGetTransformChildren(parent, state$2)), /* array */[
4,
3
]);
}));
}));
return Wonder_jest.describe("fix bug", (function (param) {
return Wonder_jest.test("test two(parent)-two(child)", (function (param) {
var match = GameObjectTool$Wonderjs.createGameObject(state[0]);
var transform1 = match[2];
var match$1 = GameObjectTool$Wonderjs.createGameObject(match[0]);
var transform2 = match$1[2];
var match$2 = GameObjectTool$Wonderjs.createGameObject(match$1[0]);
var transform3 = match$2[2];
var match$3 = GameObjectTool$Wonderjs.createGameObject(match$2[0]);
var transform4 = match$3[2];
var state$1 = TransformAPI$Wonderjs.setTransformParent(transform2, transform4, TransformAPI$Wonderjs.setTransformParent(transform1, transform3, match$3[0]));
var pos1 = /* tuple */[
1,
2,
3
];
var pos2 = /* tuple */[
2,
3,
4
];
var pos3 = /* tuple */[
4,
3,
4
];
var pos4 = /* tuple */[
7,
3,
4
];
TransformTool$Wonderjs.getRecord(state$1);
var state$2 = TransformAPI$Wonderjs.setTransformLocalPosition(transform4, pos4, TransformAPI$Wonderjs.setTransformLocalPosition(transform3, pos3, TransformAPI$Wonderjs.setTransformLocalPosition(transform2, pos2, TransformAPI$Wonderjs.setTransformLocalPosition(transform1, pos1, state$1))));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformAPI$Wonderjs.getTransformPosition(transform1, state$2),
TransformAPI$Wonderjs.getTransformPosition(transform2, state$2),
TransformAPI$Wonderjs.getTransformPosition(transform3, state$2),
TransformAPI$Wonderjs.getTransformPosition(transform4, state$2)
]), /* tuple */[
pos1,
pos2,
Vector3Service$Wonderjs.add(/* Float */0, pos3, pos1),
Vector3Service$Wonderjs.add(/* Float */0, pos4, pos2)
]);
}));
}));
}));
Wonder_jest.describe("hasTransformParent", (function (param) {
Wonder_jest.test("if has no parent, return false", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.hasTransformParent(match[1], match[0])), false);
}));
return Wonder_jest.test("else, return true", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child1 = match$1[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(match[1], child1, match$1[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.hasTransformParent(child1, state$1)), true);
}));
}));
Wonder_jest.describe("setTransformParentKeepOrder", (function (param) {
return Wonder_jest.test("not change its current parent's children order", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child1 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var match$3 = TransformAPI$Wonderjs.createTransform(match$2[0]);
var child3 = match$3[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child3, TransformAPI$Wonderjs.setTransformParent(parent, match$2[1], TransformAPI$Wonderjs.setTransformParent(parent, child1, match$3[0])));
var state$2 = TransformAPI$Wonderjs.setTransformParentKeepOrder(child3, child1, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.unsafeGetTransformChildren(parent, state$2)), /* array */[
3,
4
]);
}));
}));
Wonder_jest.describe("unsafeGetTransformChildren", (function (param) {
return Wonder_jest.test("get parent's all children", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child1 = match$1[1];
var match$2 = TransformAPI$Wonderjs.createTransform(match$1[0]);
var child2 = match$2[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child1, match$2[0]);
var state$2 = TransformAPI$Wonderjs.setTransformParent(parent, child2, state$1);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.unsafeGetTransformChildren(parent, state$2)), /* array */[
child1,
child2
]);
}));
}));
Wonder_jest.describe("setTransformLocalPosition", (function (param) {
var _prepare = function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var pos1 = /* tuple */[
1,
2,
3
];
var pos2 = /* tuple */[
5,
10,
30
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, match$1[0]);
var state$2 = TransformAPI$Wonderjs.setTransformLocalPosition(child, pos2, TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos1, state$1));
return /* tuple */[
state$2,
parent,
child,
pos1,
pos2
];
};
Wonder_jest.test("change parent's localPosition should affect children", (function (param) {
var match = _prepare(/* () */0);
var pos2 = match[4];
var parent = match[1];
var state = TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos2, match[0]);
return _judgeOneToOne(/* tuple */[
parent,
match[2]
], /* tuple */[
pos2,
pos2
], /* tuple */[
pos2,
Vector3Service$Wonderjs.add(/* Float */0, pos2, pos2)
], state);
}));
return Wonder_jest.test("change child's localPosition shouldn't affect parent", (function (param) {
var match = _prepare(/* () */0);
var pos1 = match[3];
var child = match[2];
var state = TransformAPI$Wonderjs.setTransformLocalPosition(child, pos1, match[0]);
return _judgeOneToOne(/* tuple */[
match[1],
child
], /* tuple */[
pos1,
pos1
], /* tuple */[
pos1,
Vector3Service$Wonderjs.add(/* Float */0, pos1, pos1)
], state);
}));
}));
Wonder_jest.describe("getTransformPosition", (function (param) {
Wonder_jest.test("default value should be (0.,0.,0.)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.getTransformPosition(match[1], match[0])), TransformTool$Wonderjs.getDefaultPosition(/* () */0));
}));
return Wonder_jest.test("get the position in world coordinate system", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var pos = /* tuple */[
1,
2,
3
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos, match$1[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.getTransformPosition(child, state$1)), pos);
}));
}));
Wonder_jest.describe("setTransformPosition", (function (param) {
return Wonder_jest.describe("set position in world coordinate system", (function (param) {
Wonder_jest.test("change parent's position should affect children", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var pos2 = /* tuple */[
5,
10,
30
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, match$1[0]);
var state$2 = TransformAPI$Wonderjs.setTransformLocalPosition(parent, /* tuple */[
1,
2,
3
], state$1);
var state$3 = TransformAPI$Wonderjs.setTransformLocalPosition(child, pos2, state$2);
var state$4 = TransformAPI$Wonderjs.setTransformPosition(parent, pos2, state$3);
return _judgeOneToOne(/* tuple */[
parent,
child
], /* tuple */[
pos2,
pos2
], /* tuple */[
pos2,
Vector3Service$Wonderjs.add(/* Float */0, pos2, pos2)
], state$4);
}));
return Wonder_jest.test("change child's position shouldn't affect parent", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var pos1 = /* tuple */[
1,
2,
3
];
var pos3 = /* tuple */[
2,
3,
4
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, match$1[0]);
var state$2 = TransformAPI$Wonderjs.setTransformLocalPosition(parent, pos1, state$1);
var state$3 = TransformAPI$Wonderjs.setTransformLocalPosition(child, /* tuple */[
5,
10,
30
], state$2);
var state$4 = TransformAPI$Wonderjs.setTransformPosition(child, pos3, state$3);
return _judgeOneToOne(/* tuple */[
parent,
child
], /* tuple */[
pos1,
pos1
], /* tuple */[
/* tuple */[
1,
1,
1
],
pos3
], state$4);
}));
}));
}));
Wonder_jest.describe("getTransformRotation", (function (param) {
Wonder_jest.test("default value should be (0.,0.,0.,1.)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.getTransformRotation(match[1], match[0])), TransformTool$Wonderjs.getDefaultRotation(/* () */0));
}));
return Wonder_jest.test("get the rotation in world coordinate system", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var rotation = /* tuple */[
1,
2,
3,
2.5
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, TransformAPI$Wonderjs.setTransformLocalRotation(parent, rotation, match$1[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.getTransformRotation(child, state$1)), rotation);
}));
}));
Wonder_jest.describe("setTransformRotation", (function (param) {
return Wonder_jest.describe("set rotation in world coordinate system", (function (param) {
Wonder_jest.test("change parent's rotation should affect children", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var rotation2 = /* tuple */[
5,
10.5,
30,
1
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, match$1[0]);
var state$2 = TransformAPI$Wonderjs.setTransformLocalRotation(parent, /* tuple */[
1,
2,
3.5,
2
], state$1);
var state$3 = TransformAPI$Wonderjs.setTransformLocalRotation(child, rotation2, state$2);
var state$4 = TransformAPI$Wonderjs.setTransformRotation(parent, rotation2, state$3);
return _judgeRotationOneToOne(/* tuple */[
parent,
child
], /* tuple */[
rotation2,
rotation2
], /* tuple */[
rotation2,
/* tuple */[
-14.148975834432052,
-29.71284925230731,
-84.89385500659232,
1462.650035039141
]
], state$4);
}));
return Wonder_jest.test("change child's rotation shouldn't affect parent", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var rotation1 = /* tuple */[
1,
2,
3,
1
];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, match$1[0]);
var state$2 = TransformAPI$Wonderjs.setTransformLocalRotation(parent, rotation1, state$1);
var state$3 = TransformAPI$Wonderjs.setTransformLocalRotation(child, /* tuple */[
5.5,
10,
30,
2
], state$2);
var state$4 = TransformAPI$Wonderjs.setTransformRotation(child, /* tuple */[
2.5,
3.5,
4.5,
1
], state$3);
return _judgeRotationOneToOne(/* tuple */[
parent,
child
], /* tuple */[
rotation1,
rotation1
], /* tuple */[
/* tuple */[
0.7745966911315918,
-0.3872983455657959,
0.7745966911315918,
6.196773529052734
],
/* tuple */[
6.826419538772125,
8.489076950779234,
6.460195134263704,
-10.027219687210458
]
], state$4);
}));
}));
}));
Wonder_jest.describe("getTransformEulerAngles", (function (param) {
Wonder_jest.test("default value should be (0.,0.,0.)", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.getTransformEulerAngles(match[1], match[0])), /* tuple */[
0,
-0,
0
]);
}));
return Wonder_jest.test("get the eulerAngles in world coordinate system", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var state$1 = TransformAPI$Wonderjs.setTransformParent(parent, child, TransformAPI$Wonderjs.setTransformLocalEulerAngles(parent, /* tuple */[
45,
45,
90
], match$1[0]));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformAPI$Wonderjs.getTransformEulerAngles(child, state$1)), /* tuple */[
45,
44.99999999999999,
90
]);
}));
}));
Wonder_jest.describe("setTransformEulerAngles", (function (param) {
return Wonder_jest.describe("set eulerAngles in world coordinate system", (function (param) {
var _judgeEulerAnglesOneToOne = function (param, param$1, param$2, state) {
var child = param[1];
var parent = param[0];
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](/* tuple */[
TransformAPI$Wonderjs.getTransformLocalEulerAngles(parent, state),
TransformAPI$Wonderjs.getTransformEulerAngles(parent, state),
TransformAPI$Wonderjs.getTransformLocalEulerAngles(child, state),
TransformAPI$Wonderjs.getTransformEulerAngles(child, state)
]), /* tuple */[
param$1[0],
param$1[1],
param$2[0],
param$2[1]
]);
};
Wonder_jest.test("change parent's eulerAngles should affect children", (function (param) {
var match = TransformAPI$Wonderjs.createTransform(state[0]);
var parent = match[1];
var match$1 = TransformAPI$Wonderjs.createTransform(match[0]);
var child = match$1[1];
var eulerAngles2 = /* tuple */[
5,
10.5,