@mlightcad/geometry-engine 3.0.4 → 3.0.5

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 (159) hide show
  1. package/dist/geometry-engine.js +10702 -0
  2. package/dist/geometry-engine.umd.cjs +4 -0
  3. package/lib/geometry/AcGeArea2d.d.ts +61 -0
  4. package/lib/geometry/AcGeArea2d.d.ts.map +1 -0
  5. package/lib/geometry/AcGeArea2d.js +174 -0
  6. package/lib/geometry/AcGeArea2d.js.map +1 -0
  7. package/lib/geometry/AcGeCatmullRomCurve3d.d.ts +146 -0
  8. package/lib/geometry/AcGeCatmullRomCurve3d.d.ts.map +1 -0
  9. package/lib/geometry/AcGeCatmullRomCurve3d.js +358 -0
  10. package/lib/geometry/AcGeCatmullRomCurve3d.js.map +1 -0
  11. package/lib/geometry/AcGeCircArc2d.d.ts +132 -0
  12. package/lib/geometry/AcGeCircArc2d.d.ts.map +1 -0
  13. package/lib/geometry/AcGeCircArc2d.js +473 -0
  14. package/lib/geometry/AcGeCircArc2d.js.map +1 -0
  15. package/lib/geometry/AcGeCircArc3d.d.ts +138 -0
  16. package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -0
  17. package/lib/geometry/AcGeCircArc3d.js +447 -0
  18. package/lib/geometry/AcGeCircArc3d.js.map +1 -0
  19. package/lib/geometry/AcGeCurve2d.d.ts +85 -0
  20. package/lib/geometry/AcGeCurve2d.d.ts.map +1 -0
  21. package/lib/geometry/AcGeCurve2d.js +213 -0
  22. package/lib/geometry/AcGeCurve2d.js.map +1 -0
  23. package/lib/geometry/AcGeCurve3d.d.ts +27 -0
  24. package/lib/geometry/AcGeCurve3d.d.ts.map +1 -0
  25. package/lib/geometry/AcGeCurve3d.js +29 -0
  26. package/lib/geometry/AcGeCurve3d.js.map +1 -0
  27. package/lib/geometry/AcGeEllipseArc2d.d.ts +105 -0
  28. package/lib/geometry/AcGeEllipseArc2d.d.ts.map +1 -0
  29. package/lib/geometry/AcGeEllipseArc2d.js +292 -0
  30. package/lib/geometry/AcGeEllipseArc2d.js.map +1 -0
  31. package/lib/geometry/AcGeEllipseArc3d.d.ts +142 -0
  32. package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -0
  33. package/lib/geometry/AcGeEllipseArc3d.js +459 -0
  34. package/lib/geometry/AcGeEllipseArc3d.js.map +1 -0
  35. package/lib/geometry/AcGeLine2d.d.ts +56 -0
  36. package/lib/geometry/AcGeLine2d.d.ts.map +1 -0
  37. package/lib/geometry/AcGeLine2d.js +125 -0
  38. package/lib/geometry/AcGeLine2d.js.map +1 -0
  39. package/lib/geometry/AcGeLine3d.d.ts +134 -0
  40. package/lib/geometry/AcGeLine3d.d.ts.map +1 -0
  41. package/lib/geometry/AcGeLine3d.js +291 -0
  42. package/lib/geometry/AcGeLine3d.js.map +1 -0
  43. package/lib/geometry/AcGeLoop2d.d.ts +59 -0
  44. package/lib/geometry/AcGeLoop2d.d.ts.map +1 -0
  45. package/lib/geometry/AcGeLoop2d.js +141 -0
  46. package/lib/geometry/AcGeLoop2d.js.map +1 -0
  47. package/lib/geometry/AcGeNurbsCurve.d.ts +73 -0
  48. package/lib/geometry/AcGeNurbsCurve.d.ts.map +1 -0
  49. package/lib/geometry/AcGeNurbsCurve.js +172 -0
  50. package/lib/geometry/AcGeNurbsCurve.js.map +1 -0
  51. package/lib/geometry/AcGePolyline2d.d.ts +90 -0
  52. package/lib/geometry/AcGePolyline2d.d.ts.map +1 -0
  53. package/lib/geometry/AcGePolyline2d.js +224 -0
  54. package/lib/geometry/AcGePolyline2d.js.map +1 -0
  55. package/lib/geometry/AcGeShape.d.ts +12 -0
  56. package/lib/geometry/AcGeShape.d.ts.map +1 -0
  57. package/lib/geometry/AcGeShape.js +22 -0
  58. package/lib/geometry/AcGeShape.js.map +1 -0
  59. package/lib/geometry/AcGeShape2d.d.ts +31 -0
  60. package/lib/geometry/AcGeShape2d.d.ts.map +1 -0
  61. package/lib/geometry/AcGeShape2d.js +51 -0
  62. package/lib/geometry/AcGeShape2d.js.map +1 -0
  63. package/lib/geometry/AcGeShape3d.d.ts +33 -0
  64. package/lib/geometry/AcGeShape3d.d.ts.map +1 -0
  65. package/lib/geometry/AcGeShape3d.js +52 -0
  66. package/lib/geometry/AcGeShape3d.js.map +1 -0
  67. package/lib/geometry/AcGeSpline3d.d.ts +99 -0
  68. package/lib/geometry/AcGeSpline3d.d.ts.map +1 -0
  69. package/lib/geometry/AcGeSpline3d.js +350 -0
  70. package/lib/geometry/AcGeSpline3d.js.map +1 -0
  71. package/lib/geometry/index.d.ts +15 -0
  72. package/lib/geometry/index.d.ts.map +1 -0
  73. package/lib/geometry/index.js +15 -0
  74. package/lib/geometry/index.js.map +1 -0
  75. package/lib/index.d.ts +4 -0
  76. package/lib/index.d.ts.map +1 -0
  77. package/lib/index.js +4 -0
  78. package/lib/index.js.map +1 -0
  79. package/lib/math/AcGeBox2d.d.ts +173 -0
  80. package/lib/math/AcGeBox2d.d.ts.map +1 -0
  81. package/lib/math/AcGeBox2d.js +289 -0
  82. package/lib/math/AcGeBox2d.js.map +1 -0
  83. package/lib/math/AcGeBox3d.d.ts +195 -0
  84. package/lib/math/AcGeBox3d.d.ts.map +1 -0
  85. package/lib/math/AcGeBox3d.js +378 -0
  86. package/lib/math/AcGeBox3d.js.map +1 -0
  87. package/lib/math/AcGeEuler.d.ts +133 -0
  88. package/lib/math/AcGeEuler.d.ts.map +1 -0
  89. package/lib/math/AcGeEuler.js +358 -0
  90. package/lib/math/AcGeEuler.js.map +1 -0
  91. package/lib/math/AcGeMatrix2d.d.ts +203 -0
  92. package/lib/math/AcGeMatrix2d.d.ts.map +1 -0
  93. package/lib/math/AcGeMatrix2d.js +393 -0
  94. package/lib/math/AcGeMatrix2d.js.map +1 -0
  95. package/lib/math/AcGeMatrix3d.d.ts +279 -0
  96. package/lib/math/AcGeMatrix3d.d.ts.map +1 -0
  97. package/lib/math/AcGeMatrix3d.js +1037 -0
  98. package/lib/math/AcGeMatrix3d.js.map +1 -0
  99. package/lib/math/AcGePlane.d.ts +131 -0
  100. package/lib/math/AcGePlane.d.ts.map +1 -0
  101. package/lib/math/AcGePlane.js +218 -0
  102. package/lib/math/AcGePlane.js.map +1 -0
  103. package/lib/math/AcGePoint.d.ts +4 -0
  104. package/lib/math/AcGePoint.d.ts.map +1 -0
  105. package/lib/math/AcGePoint.js +2 -0
  106. package/lib/math/AcGePoint.js.map +1 -0
  107. package/lib/math/AcGePoint2d.d.ts +17 -0
  108. package/lib/math/AcGePoint2d.d.ts.map +1 -0
  109. package/lib/math/AcGePoint2d.js +40 -0
  110. package/lib/math/AcGePoint2d.js.map +1 -0
  111. package/lib/math/AcGePoint3d.d.ts +18 -0
  112. package/lib/math/AcGePoint3d.d.ts.map +1 -0
  113. package/lib/math/AcGePoint3d.js +43 -0
  114. package/lib/math/AcGePoint3d.js.map +1 -0
  115. package/lib/math/AcGeQuaternion.d.ts +230 -0
  116. package/lib/math/AcGeQuaternion.d.ts.map +1 -0
  117. package/lib/math/AcGeQuaternion.js +666 -0
  118. package/lib/math/AcGeQuaternion.js.map +1 -0
  119. package/lib/math/AcGeVector.d.ts +9 -0
  120. package/lib/math/AcGeVector.d.ts.map +1 -0
  121. package/lib/math/AcGeVector.js +2 -0
  122. package/lib/math/AcGeVector.js.map +1 -0
  123. package/lib/math/AcGeVector2d.d.ts +361 -0
  124. package/lib/math/AcGeVector2d.d.ts.map +1 -0
  125. package/lib/math/AcGeVector2d.js +622 -0
  126. package/lib/math/AcGeVector2d.js.map +1 -0
  127. package/lib/math/AcGeVector3d.d.ts +493 -0
  128. package/lib/math/AcGeVector3d.d.ts.map +1 -0
  129. package/lib/math/AcGeVector3d.js +868 -0
  130. package/lib/math/AcGeVector3d.js.map +1 -0
  131. package/lib/math/index.d.ts +14 -0
  132. package/lib/math/index.d.ts.map +1 -0
  133. package/lib/math/index.js +14 -0
  134. package/lib/math/index.js.map +1 -0
  135. package/lib/util/AcGeConstants.d.ts +19 -0
  136. package/lib/util/AcGeConstants.d.ts.map +1 -0
  137. package/lib/util/AcGeConstants.js +25 -0
  138. package/lib/util/AcGeConstants.js.map +1 -0
  139. package/lib/util/AcGeGeometryUtil.d.ts +16 -0
  140. package/lib/util/AcGeGeometryUtil.d.ts.map +1 -0
  141. package/lib/util/AcGeGeometryUtil.js +56 -0
  142. package/lib/util/AcGeGeometryUtil.js.map +1 -0
  143. package/lib/util/AcGeMathUtil.d.ts +203 -0
  144. package/lib/util/AcGeMathUtil.d.ts.map +1 -0
  145. package/lib/util/AcGeMathUtil.js +585 -0
  146. package/lib/util/AcGeMathUtil.js.map +1 -0
  147. package/lib/util/AcGeNurbsUtil.d.ts +34 -0
  148. package/lib/util/AcGeNurbsUtil.d.ts.map +1 -0
  149. package/lib/util/AcGeNurbsUtil.js +218 -0
  150. package/lib/util/AcGeNurbsUtil.js.map +1 -0
  151. package/lib/util/AcGeTol.d.ts +91 -0
  152. package/lib/util/AcGeTol.d.ts.map +1 -0
  153. package/lib/util/AcGeTol.js +83 -0
  154. package/lib/util/AcGeTol.js.map +1 -0
  155. package/lib/util/index.d.ts +6 -0
  156. package/lib/util/index.d.ts.map +1 -0
  157. package/lib/util/index.js +6 -0
  158. package/lib/util/index.js.map +1 -0
  159. package/package.json +2 -2
@@ -0,0 +1,133 @@
1
+ import { AcGeMatrix3d } from './AcGeMatrix3d';
2
+ import { AcGeQuaternion } from './AcGeQuaternion';
3
+ import { AcGeVector3d } from './AcGeVector3d';
4
+ export declare class AcGeEuler {
5
+ static DEFAULT_ORDER: string;
6
+ private _x;
7
+ private _y;
8
+ private _z;
9
+ private _order;
10
+ /**
11
+ * Create one instance of this class
12
+ * @param x (optional) the angle of the x axis in radians. Default is 0.
13
+ * @param y (optional) the angle of the y axis in radians. Default is 0.
14
+ * @param z (optional) the angle of the z axis in radians. Default is 0.
15
+ * @param order (optional) a string representing the order that the rotations are applied,
16
+ * defaults to 'XYZ' (must be upper case).
17
+ */
18
+ constructor(x?: number, y?: number, z?: number, order?: string);
19
+ /**
20
+ * The current value of the x component.
21
+ */
22
+ get x(): number;
23
+ set x(value: number);
24
+ /**
25
+ * The current value of the y component.
26
+ */
27
+ get y(): number;
28
+ set y(value: number);
29
+ /**
30
+ * The current value of the z component.
31
+ */
32
+ get z(): number;
33
+ set z(value: number);
34
+ /**
35
+ * The order in which to apply rotations. Default is 'XYZ', which means that the object will first be
36
+ * rotated around its X axis, then its Y axis and finally its Z axis. Other possibilities are: 'YZX',
37
+ * 'ZXY', 'XZY', 'YXZ' and 'ZYX'. These must be in upper case.
38
+ *
39
+ * It uses intrinsic Tait-Bryan angles. This means that rotations are performed with respect to the
40
+ * local coordinate system. That is, for order 'XYZ', the rotation is first around the local-X axis
41
+ * (which is the same as the world-X axis), then around local-Y (which may now be different from the
42
+ * world Y-axis), then local-Z (which may be different from the world Z-axis).
43
+ */
44
+ get order(): string;
45
+ set order(value: string);
46
+ /**
47
+ * Set the angles of this euler transform and optionally the order.
48
+ * @param x (optional) the angle of the x axis in radians. Default is 0.
49
+ * @param y (optional) the angle of the y axis in radians. Default is 0.
50
+ * @param z (optional) the angle of the z axis in radians. Default is 0.
51
+ * @param order (optional) a string representing the order that the rotations are applied,
52
+ * defaults to 'XYZ' (must be upper case).
53
+ * @returns Return this euler
54
+ */
55
+ set(x: number, y: number, z: number, order?: string): this;
56
+ /**
57
+ * Return a new Euler with the same parameters as this one.
58
+ * @returns Return a new Euler with the same parameters as this one.
59
+ */
60
+ clone(): AcGeEuler;
61
+ /**
62
+ * Copy value of euler to this euler.
63
+ * @param euler Input the eurler copied from
64
+ * @returns Return this euler
65
+ */
66
+ copy(euler: AcGeEuler): this;
67
+ /**
68
+ * Set this euler by exatracting rotation information from the specified matrix.
69
+ * @param m Input a Matrix4 of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).
70
+ * @param order (optional) a string representing the order that the rotations are applied. Sets the
71
+ * angles of this euler transform from a pure rotation matrix based on the orientation specified by
72
+ * order.
73
+ * @param update Input one flag to indicate whether to trigger change callback function
74
+ * @returns Return this euler
75
+ */
76
+ setFromRotationMatrix(m: AcGeMatrix3d, order?: string, update?: boolean): this;
77
+ /**
78
+ * Set this urler from the specified quaternion.
79
+ * @param q Input a normalized quaternion.
80
+ * @param order (optional) a string representing the order that the rotations are applied. Sets the
81
+ * angles of this euler transform from a pure rotation matrix based on the orientation specified by
82
+ * order.
83
+ * @param update Input one flag to indicate whether to trigger change callback function
84
+ * @returns Return this euler
85
+ */
86
+ setFromQuaternion(q: AcGeQuaternion, order: string, update?: boolean): this;
87
+ /**
88
+ * Set the x, y and z, and optionally update the order.
89
+ * @param v Input one 3d vector
90
+ * @param order Input a optional string representing the order that the rotations are applied.
91
+ * @returns Return this euler
92
+ */
93
+ setFromVector3(v: AcGeVector3d, order?: string): this;
94
+ /**
95
+ * Resets the euler angle with a new order by creating a quaternion from this euler angle and then
96
+ * setting this euler angle with the quaternion and the new order.
97
+ * @param newOrder Input the new order that the rotations are applied.
98
+ * @returns Return this euler
99
+ */
100
+ reorder(newOrder: string): this;
101
+ /**
102
+ * Check for strict equality of this euler and euler.
103
+ * @param euler Input the euler to compare
104
+ * @returns Return true if the specified euler and this euler represent the same rotation.
105
+ */
106
+ equals(euler: AcGeEuler): boolean;
107
+ /**
108
+ * Set this euler from the specified array.
109
+ * @param array Input an array of length 3 or 4. The optional 4th argument corresponds to the order.
110
+ * - Assign this euler's x angle to array[0].
111
+ * - Assign this euler's y angle to array[1].
112
+ * - Assign this euler's z angle to array[2].
113
+ * - Optionally assign this euler's order to array[3].
114
+ * @returns
115
+ */
116
+ fromArray(array: (number | string)[]): this;
117
+ /**
118
+ * Return an array of the form [x, y, z, order ].
119
+ * @param array Input an optional array to store the euler in.
120
+ * @param offset Input an optional offset in the array.
121
+ * @returns Return an array of the form [x, y, z, order].
122
+ */
123
+ toArray(array?: (number | string)[], offset?: number): (string | number)[];
124
+ /**
125
+ * Trigger the specified callback function once this euler changes
126
+ * @param callback
127
+ * @returns
128
+ */
129
+ _onChange(callback: () => void): this;
130
+ _onChangeCallback(): void;
131
+ [Symbol.iterator](): Generator<string | number, void, unknown>;
132
+ }
133
+ //# sourceMappingURL=AcGeEuler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGeEuler.d.ts","sourceRoot":"","sources":["../../src/math/AcGeEuler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C,qBAAa,SAAS;IACpB,MAAM,CAAC,aAAa,SAAQ;IAC5B,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,MAAM,CAAQ;IAEtB;;;;;;;OAOG;gBACS,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,KAAK,SAA0B;IAOhE;;OAEG;IACH,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED;;OAEG;IACH,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED;;OAEG;IACH,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED;;;;;;;;;OASG;IACH,IAAI,KAAK,IAGQ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAGtB;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,SAAc;IAWxD;;;OAGG;IACH,KAAK;IAIL;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,SAAS;IAUrB;;;;;;;;OAQG;IACH,qBAAqB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,SAAc,EAAE,MAAM,UAAO;IAwGzE;;;;;;;;OAQG;IACH,iBAAiB,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAK1E;;;;;OAKG;IACH,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,SAAc;IAInD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM;IAMxB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,SAAS;IASvB;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;IAWpC;;;;;OAKG;IACH,OAAO,CAAC,KAAK,GAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,EAAE,MAAM,SAAI;IASnD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI;IAK9B,iBAAiB;IAEhB,CAAC,MAAM,CAAC,QAAQ,CAAC;CAMnB"}
@@ -0,0 +1,358 @@
1
+ var __generator = (this && this.__generator) || function (thisArg, body) {
2
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
3
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
4
+ function verb(n) { return function (v) { return step([n, v]); }; }
5
+ function step(op) {
6
+ if (f) throw new TypeError("Generator is already executing.");
7
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
8
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
9
+ if (y = 0, t) op = [op[0] & 2, t.value];
10
+ switch (op[0]) {
11
+ case 0: case 1: t = op; break;
12
+ case 4: _.label++; return { value: op[1], done: false };
13
+ case 5: _.label++; y = op[1]; op = [0]; continue;
14
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
15
+ default:
16
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
17
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
18
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
19
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
20
+ if (t[2]) _.ops.pop();
21
+ _.trys.pop(); continue;
22
+ }
23
+ op = body.call(thisArg, _);
24
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
25
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
26
+ }
27
+ };
28
+ import { clamp } from '../util';
29
+ import { AcGeMatrix3d } from './AcGeMatrix3d';
30
+ import { AcGeQuaternion } from './AcGeQuaternion';
31
+ var _matrix = /*@__PURE__*/ new AcGeMatrix3d();
32
+ var _quaternion = /*@__PURE__*/ new AcGeQuaternion();
33
+ var AcGeEuler = /** @class */ (function () {
34
+ /**
35
+ * Create one instance of this class
36
+ * @param x (optional) the angle of the x axis in radians. Default is 0.
37
+ * @param y (optional) the angle of the y axis in radians. Default is 0.
38
+ * @param z (optional) the angle of the z axis in radians. Default is 0.
39
+ * @param order (optional) a string representing the order that the rotations are applied,
40
+ * defaults to 'XYZ' (must be upper case).
41
+ */
42
+ function AcGeEuler(x, y, z, order) {
43
+ if (x === void 0) { x = 0; }
44
+ if (y === void 0) { y = 0; }
45
+ if (z === void 0) { z = 0; }
46
+ if (order === void 0) { order = AcGeEuler.DEFAULT_ORDER; }
47
+ this._x = x;
48
+ this._y = y;
49
+ this._z = z;
50
+ this._order = order;
51
+ }
52
+ Object.defineProperty(AcGeEuler.prototype, "x", {
53
+ /**
54
+ * The current value of the x component.
55
+ */
56
+ get: function () {
57
+ return this._x;
58
+ },
59
+ set: function (value) {
60
+ this._x = value;
61
+ this._onChangeCallback();
62
+ },
63
+ enumerable: false,
64
+ configurable: true
65
+ });
66
+ Object.defineProperty(AcGeEuler.prototype, "y", {
67
+ /**
68
+ * The current value of the y component.
69
+ */
70
+ get: function () {
71
+ return this._y;
72
+ },
73
+ set: function (value) {
74
+ this._y = value;
75
+ this._onChangeCallback();
76
+ },
77
+ enumerable: false,
78
+ configurable: true
79
+ });
80
+ Object.defineProperty(AcGeEuler.prototype, "z", {
81
+ /**
82
+ * The current value of the z component.
83
+ */
84
+ get: function () {
85
+ return this._z;
86
+ },
87
+ set: function (value) {
88
+ this._z = value;
89
+ this._onChangeCallback();
90
+ },
91
+ enumerable: false,
92
+ configurable: true
93
+ });
94
+ Object.defineProperty(AcGeEuler.prototype, "order", {
95
+ /**
96
+ * The order in which to apply rotations. Default is 'XYZ', which means that the object will first be
97
+ * rotated around its X axis, then its Y axis and finally its Z axis. Other possibilities are: 'YZX',
98
+ * 'ZXY', 'XZY', 'YXZ' and 'ZYX'. These must be in upper case.
99
+ *
100
+ * It uses intrinsic Tait-Bryan angles. This means that rotations are performed with respect to the
101
+ * local coordinate system. That is, for order 'XYZ', the rotation is first around the local-X axis
102
+ * (which is the same as the world-X axis), then around local-Y (which may now be different from the
103
+ * world Y-axis), then local-Z (which may be different from the world Z-axis).
104
+ */
105
+ get: function () {
106
+ return this._order;
107
+ },
108
+ set: function (value) {
109
+ this._order = value;
110
+ this._onChangeCallback();
111
+ },
112
+ enumerable: false,
113
+ configurable: true
114
+ });
115
+ /**
116
+ * Set the angles of this euler transform and optionally the order.
117
+ * @param x (optional) the angle of the x axis in radians. Default is 0.
118
+ * @param y (optional) the angle of the y axis in radians. Default is 0.
119
+ * @param z (optional) the angle of the z axis in radians. Default is 0.
120
+ * @param order (optional) a string representing the order that the rotations are applied,
121
+ * defaults to 'XYZ' (must be upper case).
122
+ * @returns Return this euler
123
+ */
124
+ AcGeEuler.prototype.set = function (x, y, z, order) {
125
+ if (order === void 0) { order = this._order; }
126
+ this._x = x;
127
+ this._y = y;
128
+ this._z = z;
129
+ this._order = order;
130
+ this._onChangeCallback();
131
+ return this;
132
+ };
133
+ /**
134
+ * Return a new Euler with the same parameters as this one.
135
+ * @returns Return a new Euler with the same parameters as this one.
136
+ */
137
+ AcGeEuler.prototype.clone = function () {
138
+ return new AcGeEuler(this._x, this._y, this._z, this._order);
139
+ };
140
+ /**
141
+ * Copy value of euler to this euler.
142
+ * @param euler Input the eurler copied from
143
+ * @returns Return this euler
144
+ */
145
+ AcGeEuler.prototype.copy = function (euler) {
146
+ this._x = euler._x;
147
+ this._y = euler._y;
148
+ this._z = euler._z;
149
+ this._order = euler._order;
150
+ this._onChangeCallback();
151
+ return this;
152
+ };
153
+ /**
154
+ * Set this euler by exatracting rotation information from the specified matrix.
155
+ * @param m Input a Matrix4 of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).
156
+ * @param order (optional) a string representing the order that the rotations are applied. Sets the
157
+ * angles of this euler transform from a pure rotation matrix based on the orientation specified by
158
+ * order.
159
+ * @param update Input one flag to indicate whether to trigger change callback function
160
+ * @returns Return this euler
161
+ */
162
+ AcGeEuler.prototype.setFromRotationMatrix = function (m, order, update) {
163
+ if (order === void 0) { order = this._order; }
164
+ if (update === void 0) { update = true; }
165
+ // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)
166
+ var te = m.elements;
167
+ var m11 = te[0], m12 = te[4], m13 = te[8];
168
+ var m21 = te[1], m22 = te[5], m23 = te[9];
169
+ var m31 = te[2], m32 = te[6], m33 = te[10];
170
+ switch (order) {
171
+ case 'XYZ':
172
+ this._y = Math.asin(clamp(m13, -1, 1));
173
+ if (Math.abs(m13) < 0.9999999) {
174
+ this._x = Math.atan2(-m23, m33);
175
+ this._z = Math.atan2(-m12, m11);
176
+ }
177
+ else {
178
+ this._x = Math.atan2(m32, m22);
179
+ this._z = 0;
180
+ }
181
+ break;
182
+ case 'YXZ':
183
+ this._x = Math.asin(-clamp(m23, -1, 1));
184
+ if (Math.abs(m23) < 0.9999999) {
185
+ this._y = Math.atan2(m13, m33);
186
+ this._z = Math.atan2(m21, m22);
187
+ }
188
+ else {
189
+ this._y = Math.atan2(-m31, m11);
190
+ this._z = 0;
191
+ }
192
+ break;
193
+ case 'ZXY':
194
+ this._x = Math.asin(clamp(m32, -1, 1));
195
+ if (Math.abs(m32) < 0.9999999) {
196
+ this._y = Math.atan2(-m31, m33);
197
+ this._z = Math.atan2(-m12, m22);
198
+ }
199
+ else {
200
+ this._y = 0;
201
+ this._z = Math.atan2(m21, m11);
202
+ }
203
+ break;
204
+ case 'ZYX':
205
+ this._y = Math.asin(-clamp(m31, -1, 1));
206
+ if (Math.abs(m31) < 0.9999999) {
207
+ this._x = Math.atan2(m32, m33);
208
+ this._z = Math.atan2(m21, m11);
209
+ }
210
+ else {
211
+ this._x = 0;
212
+ this._z = Math.atan2(-m12, m22);
213
+ }
214
+ break;
215
+ case 'YZX':
216
+ this._z = Math.asin(clamp(m21, -1, 1));
217
+ if (Math.abs(m21) < 0.9999999) {
218
+ this._x = Math.atan2(-m23, m22);
219
+ this._y = Math.atan2(-m31, m11);
220
+ }
221
+ else {
222
+ this._x = 0;
223
+ this._y = Math.atan2(m13, m33);
224
+ }
225
+ break;
226
+ case 'XZY':
227
+ this._z = Math.asin(-clamp(m12, -1, 1));
228
+ if (Math.abs(m12) < 0.9999999) {
229
+ this._x = Math.atan2(m32, m22);
230
+ this._y = Math.atan2(m13, m11);
231
+ }
232
+ else {
233
+ this._x = Math.atan2(-m23, m33);
234
+ this._y = 0;
235
+ }
236
+ break;
237
+ default:
238
+ console.warn('THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' +
239
+ order);
240
+ }
241
+ this._order = order;
242
+ if (update === true)
243
+ this._onChangeCallback();
244
+ return this;
245
+ };
246
+ /**
247
+ * Set this urler from the specified quaternion.
248
+ * @param q Input a normalized quaternion.
249
+ * @param order (optional) a string representing the order that the rotations are applied. Sets the
250
+ * angles of this euler transform from a pure rotation matrix based on the orientation specified by
251
+ * order.
252
+ * @param update Input one flag to indicate whether to trigger change callback function
253
+ * @returns Return this euler
254
+ */
255
+ AcGeEuler.prototype.setFromQuaternion = function (q, order, update) {
256
+ if (update === void 0) { update = true; }
257
+ _matrix.makeRotationFromQuaternion(q);
258
+ return this.setFromRotationMatrix(_matrix, order, update);
259
+ };
260
+ /**
261
+ * Set the x, y and z, and optionally update the order.
262
+ * @param v Input one 3d vector
263
+ * @param order Input a optional string representing the order that the rotations are applied.
264
+ * @returns Return this euler
265
+ */
266
+ AcGeEuler.prototype.setFromVector3 = function (v, order) {
267
+ if (order === void 0) { order = this._order; }
268
+ return this.set(v.x, v.y, v.z, order);
269
+ };
270
+ /**
271
+ * Resets the euler angle with a new order by creating a quaternion from this euler angle and then
272
+ * setting this euler angle with the quaternion and the new order.
273
+ * @param newOrder Input the new order that the rotations are applied.
274
+ * @returns Return this euler
275
+ */
276
+ AcGeEuler.prototype.reorder = function (newOrder) {
277
+ // WARNING: this discards revolution information -bhouston
278
+ _quaternion.setFromEuler(this);
279
+ return this.setFromQuaternion(_quaternion, newOrder);
280
+ };
281
+ /**
282
+ * Check for strict equality of this euler and euler.
283
+ * @param euler Input the euler to compare
284
+ * @returns Return true if the specified euler and this euler represent the same rotation.
285
+ */
286
+ AcGeEuler.prototype.equals = function (euler) {
287
+ return (euler._x === this._x &&
288
+ euler._y === this._y &&
289
+ euler._z === this._z &&
290
+ euler._order === this._order);
291
+ };
292
+ /**
293
+ * Set this euler from the specified array.
294
+ * @param array Input an array of length 3 or 4. The optional 4th argument corresponds to the order.
295
+ * - Assign this euler's x angle to array[0].
296
+ * - Assign this euler's y angle to array[1].
297
+ * - Assign this euler's z angle to array[2].
298
+ * - Optionally assign this euler's order to array[3].
299
+ * @returns
300
+ */
301
+ AcGeEuler.prototype.fromArray = function (array) {
302
+ this._x = array[0];
303
+ this._y = array[1];
304
+ this._z = array[2];
305
+ if (array[3] !== undefined)
306
+ this._order = array[3];
307
+ this._onChangeCallback();
308
+ return this;
309
+ };
310
+ /**
311
+ * Return an array of the form [x, y, z, order ].
312
+ * @param array Input an optional array to store the euler in.
313
+ * @param offset Input an optional offset in the array.
314
+ * @returns Return an array of the form [x, y, z, order].
315
+ */
316
+ AcGeEuler.prototype.toArray = function (array, offset) {
317
+ if (array === void 0) { array = []; }
318
+ if (offset === void 0) { offset = 0; }
319
+ array[offset] = this._x;
320
+ array[offset + 1] = this._y;
321
+ array[offset + 2] = this._z;
322
+ array[offset + 3] = this._order;
323
+ return array;
324
+ };
325
+ /**
326
+ * Trigger the specified callback function once this euler changes
327
+ * @param callback
328
+ * @returns
329
+ */
330
+ AcGeEuler.prototype._onChange = function (callback) {
331
+ this._onChangeCallback = callback;
332
+ return this;
333
+ };
334
+ AcGeEuler.prototype._onChangeCallback = function () { };
335
+ AcGeEuler.prototype[Symbol.iterator] = function () {
336
+ return __generator(this, function (_a) {
337
+ switch (_a.label) {
338
+ case 0: return [4 /*yield*/, this._x];
339
+ case 1:
340
+ _a.sent();
341
+ return [4 /*yield*/, this._y];
342
+ case 2:
343
+ _a.sent();
344
+ return [4 /*yield*/, this._z];
345
+ case 3:
346
+ _a.sent();
347
+ return [4 /*yield*/, this._order];
348
+ case 4:
349
+ _a.sent();
350
+ return [2 /*return*/];
351
+ }
352
+ });
353
+ };
354
+ AcGeEuler.DEFAULT_ORDER = 'XYZ';
355
+ return AcGeEuler;
356
+ }());
357
+ export { AcGeEuler };
358
+ //# sourceMappingURL=AcGeEuler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGeEuler.js","sourceRoot":"","sources":["../../src/math/AcGeEuler.ts"],"names":[],"mappings":"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"}