浏览代码

Move conversion routines to a separate utilities object

customisations
alemart 10 个月前
父节点
当前提交
fa03dc5116
共有 3 个文件被更改,包括 156 次插入116 次删除
  1. 50
    42
      plugins/aframe-with-encantar.js
  2. 53
    37
      plugins/babylon-with-encantar.js
  3. 53
    37
      plugins/three-with-encantar.js

+ 50
- 42
plugins/aframe-with-encantar.js 查看文件

40
     /**
40
     /**
41
      * Pointer-based input (current frame)
41
      * Pointer-based input (current frame)
42
      * Make sure to add a PointerTracker to your session in order to use these
42
      * Make sure to add a PointerTracker to your session in order to use these
43
-     * @returns {TrackablePointer[]}
43
+     * @type {TrackablePointer[]}
44
      */
44
      */
45
     pointers: [],
45
     pointers: [],
46
 
46
 
47
     /**
47
     /**
48
-     * Convert an AR Vector2 to a THREE Vector2
49
-     * @param {Vector2} v
50
-     * @returns {THREE.Vector2}
48
+     * AR Utilities
49
+     * @type {object}
51
      */
50
      */
52
-    convertVector2(v)
53
-    {
54
-        return new THREE.Vector2(v.x, v.y);
55
-    },
51
+    utils: {
52
+
53
+        /**
54
+         * Convert an AR Vector2 to a THREE Vector2
55
+         * @param {Vector2} v
56
+         * @returns {THREE.Vector2}
57
+         */
58
+        convertVector2(v)
59
+        {
60
+            return new THREE.Vector2(v.x, v.y);
61
+        },
62
+
63
+        /**
64
+         * Convert an AR Vector3 to a THREE Vector3
65
+         * @param {Vector3} v
66
+         * @returns {THREE.Vector3}
67
+         */
68
+        convertVector3(v)
69
+        {
70
+            return new THREE.Vector3(v.x, v.y, v.z);
71
+        },
72
+
73
+        /**
74
+         * Convert an AR Quaternion to a THREE Quaternion
75
+         * @param {Quaternion} q
76
+         * @returns {THREE.Quaternion}
77
+         */
78
+        convertQuaternion(q)
79
+        {
80
+            return new THREE.Quaternion(q.x, q.y, q.z, q.w);
81
+        },
82
+
83
+        /**
84
+         * Convert an AR Ray to a THREE Ray
85
+         * @param {Ray} r
86
+         * @returns {THREE.Ray}
87
+         */
88
+        convertRay(r)
89
+        {
90
+            const origin = this.convertVector3(r.origin);
91
+            const direction = this.convertVector3(r.direction);
92
+            return new THREE.Ray(origin, direction);
93
+        },
56
 
94
 
57
-    /**
58
-     * Convert an AR Vector3 to a THREE Vector3
59
-     * @param {Vector3} v
60
-     * @returns {THREE.Vector3}
61
-     */
62
-    convertVector3(v)
63
-    {
64
-        return new THREE.Vector3(v.x, v.y, v.z);
65
-    },
66
-
67
-    /**
68
-     * Convert an AR Quaternion to a THREE Quaternion
69
-     * @param {Quaternion} q
70
-     * @returns {THREE.Quaternion}
71
-     */
72
-    convertQuaternion(q)
73
-    {
74
-        return new THREE.Quaternion(q.x, q.y, q.z, q.w);
75
-    },
76
-
77
-    /**
78
-     * Convert an AR Ray to a THREE Ray
79
-     * @param {Ray} r
80
-     * @returns {THREE.Ray}
81
-     */
82
-    convertRay(r)
83
-    {
84
-        const origin = this.convertVector3(r.origin);
85
-        const direction = this.convertVector3(r.direction);
86
-        return new THREE.Ray(origin, direction);
87
-    },
95
+    }
88
 
96
 
89
 });
97
 });
90
 
98
 
91
 /**
99
 /**
92
- * AR Utilities
100
+ * Internal Utilities
93
  */
101
  */
94
-const ARUtils = () => ({
102
+const Utils = () => ({
95
 
103
 
96
     findTrackedImage(frame, name = '')
104
     findTrackedImage(frame, name = '')
97
     {
105
     {
159
     // data;
167
     // data;
160
     // schema;
168
     // schema;
161
 
169
 
162
-    _utils: ARUtils(),
170
+    _utils: Utils(),
163
     _started: false,
171
     _started: false,
164
     _components: [],
172
     _components: [],
165
     _roots: [],
173
     _roots: [],

+ 53
- 37
plugins/babylon-with-encantar.js 查看文件

59
 }
59
 }
60
 
60
 
61
 /**
61
 /**
62
+ * AR Utilities
63
+ */
64
+class ARUtils
65
+{
66
+    /**
67
+     * Convert an AR Vector2 to a BABYLON Vector2
68
+     * @param {Vector2} v
69
+     * @returns {BABYLON.Vector2}
70
+     */
71
+    convertVector2(v)
72
+    {
73
+        return new BABYLON.Vector2(v.x, v.y);
74
+    }
75
+
76
+    /**
77
+     * Convert an AR Vector3 to a BABYLON Vector3
78
+     * @param {Vector3} v
79
+     * @returns {BABYLON.Vector3}
80
+     */
81
+    convertVector3(v)
82
+    {
83
+        return new BABYLON.Vector3(v.x, v.y, v.z);
84
+    }
85
+
86
+    /**
87
+     * Convert an AR Quaternion to a BABYLON Quaternion
88
+     * @param {Quaternion} q
89
+     * @returns {BABYLON.Quaternion}
90
+     */
91
+    convertQuaternion(q)
92
+    {
93
+        return new BABYLON.Quaternion(q.x, q.y, q.z, q.w);
94
+    }
95
+
96
+    /**
97
+     * Convert an AR Ray to a BABYLON Ray
98
+     * @param {Ray} r
99
+     * @returns {BABYLON.Ray}
100
+     */
101
+    convertRay(r)
102
+    {
103
+        const origin = this.convertVector3(r.origin);
104
+        const direction = this.convertVector3(r.direction);
105
+        return new BABYLON.Ray(origin, direction);
106
+    }
107
+}
108
+
109
+/**
62
  * Helper for creating Augmented Reality experiences
110
  * Helper for creating Augmented Reality experiences
63
  */
111
  */
64
 class ARSystem
112
 class ARSystem
139
     }
187
     }
140
 
188
 
141
     /**
189
     /**
142
-     * Convert an AR Vector2 to a BABYLON Vector2
143
-     * @param {Vector2} v
144
-     * @returns {BABYLON.Vector2}
190
+     * AR Utilities
191
+     * @returns {ARUtils}
145
      */
192
      */
146
-    convertVector2(v)
193
+    get utils()
147
     {
194
     {
148
-        return new BABYLON.Vector2(v.x, v.y);
149
-    }
150
-
151
-    /**
152
-     * Convert an AR Vector3 to a BABYLON Vector3
153
-     * @param {Vector3} v
154
-     * @returns {BABYLON.Vector3}
155
-     */
156
-    convertVector3(v)
157
-    {
158
-        return new BABYLON.Vector3(v.x, v.y, v.z);
159
-    }
160
-
161
-    /**
162
-     * Convert an AR Quaternion to a BABYLON Quaternion
163
-     * @param {Quaternion} q
164
-     * @returns {BABYLON.Quaternion}
165
-     */
166
-    convertQuaternion(q)
167
-    {
168
-        return new BABYLON.Quaternion(q.x, q.y, q.z, q.w);
169
-    }
170
-
171
-    /**
172
-     * Convert an AR Ray to a BABYLON Ray
173
-     * @param {Ray} r
174
-     * @returns {BABYLON.Ray}
175
-     */
176
-    convertRay(r)
177
-    {
178
-        const origin = this.convertVector3(r.origin);
179
-        const direction = this.convertVector3(r.direction);
180
-        return new BABYLON.Ray(origin, direction);
195
+        return this._utils;
181
     }
196
     }
182
 
197
 
183
     /**
198
     /**
194
         this._scene = null;
209
         this._scene = null;
195
         this._camera = null;
210
         this._camera = null;
196
         this._engine = null;
211
         this._engine = null;
212
+        this._utils = new ARUtils();
197
     }
213
     }
198
 }
214
 }
199
 
215
 

+ 53
- 37
plugins/three-with-encantar.js 查看文件

59
 }
59
 }
60
 
60
 
61
 /**
61
 /**
62
+ * AR Utilities
63
+ */
64
+class ARUtils
65
+{
66
+    /**
67
+     * Convert an AR Vector2 to a THREE Vector2
68
+     * @param {Vector2} v
69
+     * @returns {THREE.Vector2}
70
+     */
71
+    convertVector2(v)
72
+    {
73
+        return new THREE.Vector2(v.x, v.y);
74
+    }
75
+
76
+    /**
77
+     * Convert an AR Vector3 to a THREE Vector3
78
+     * @param {Vector3} v
79
+     * @returns {THREE.Vector3}
80
+     */
81
+    convertVector3(v)
82
+    {
83
+        return new THREE.Vector3(v.x, v.y, v.z);
84
+    }
85
+
86
+    /**
87
+     * Convert an AR Quaternion to a THREE Quaternion
88
+     * @param {Quaternion} q
89
+     * @returns {THREE.Quaternion}
90
+     */
91
+    convertQuaternion(q)
92
+    {
93
+        return new THREE.Quaternion(q.x, q.y, q.z, q.w);
94
+    }
95
+
96
+    /**
97
+     * Convert an AR Ray to a THREE Ray
98
+     * @param {Ray} r
99
+     * @returns {THREE.Ray}
100
+     */
101
+    convertRay(r)
102
+    {
103
+        const origin = this.convertVector3(r.origin);
104
+        const direction = this.convertVector3(r.direction);
105
+        return new THREE.Ray(origin, direction);
106
+    }
107
+}
108
+
109
+/**
62
  * Helper for creating Augmented Reality experiences
110
  * Helper for creating Augmented Reality experiences
63
  */
111
  */
64
 class ARSystem
112
 class ARSystem
139
     }
187
     }
140
 
188
 
141
     /**
189
     /**
142
-     * Convert an AR Vector2 to a THREE Vector2
143
-     * @param {Vector2} v
144
-     * @returns {THREE.Vector2}
190
+     * AR Utilities
191
+     * @returns {ARUtils}
145
      */
192
      */
146
-    convertVector2(v)
193
+    get utils()
147
     {
194
     {
148
-        return new THREE.Vector2(v.x, v.y);
149
-    }
150
-
151
-    /**
152
-     * Convert an AR Vector3 to a THREE Vector3
153
-     * @param {Vector3} v
154
-     * @returns {THREE.Vector3}
155
-     */
156
-    convertVector3(v)
157
-    {
158
-        return new THREE.Vector3(v.x, v.y, v.z);
159
-    }
160
-
161
-    /**
162
-     * Convert an AR Quaternion to a THREE Quaternion
163
-     * @param {Quaternion} q
164
-     * @returns {THREE.Quaternion}
165
-     */
166
-    convertQuaternion(q)
167
-    {
168
-        return new THREE.Quaternion(q.x, q.y, q.z, q.w);
169
-    }
170
-
171
-    /**
172
-     * Convert an AR Ray to a THREE Ray
173
-     * @param {Ray} r
174
-     * @returns {THREE.Ray}
175
-     */
176
-    convertRay(r)
177
-    {
178
-        const origin = this.convertVector3(r.origin);
179
-        const direction = this.convertVector3(r.direction);
180
-        return new THREE.Ray(origin, direction);
195
+        return this._utils;
181
     }
196
     }
182
 
197
 
183
     /**
198
     /**
194
         this._scene = null;
209
         this._scene = null;
195
         this._camera = null;
210
         this._camera = null;
196
         this._renderer = null;
211
         this._renderer = null;
212
+        this._utils = new ARUtils();
197
     }
213
     }
198
 }
214
 }
199
 
215
 

正在加载...
取消
保存