Explorar el Código

Move conversion routines to a separate utilities object

customisations
alemart hace 10 meses
padre
commit
fa03dc5116
Se han modificado 3 ficheros con 156 adiciones y 116 borrados
  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 Ver fichero

@@ -40,58 +40,66 @@ const ARBaseSystem = () => ({
40 40
     /**
41 41
      * Pointer-based input (current frame)
42 42
      * Make sure to add a PointerTracker to your session in order to use these
43
-     * @returns {TrackablePointer[]}
43
+     * @type {TrackablePointer[]}
44 44
      */
45 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 104
     findTrackedImage(frame, name = '')
97 105
     {
@@ -159,7 +167,7 @@ AFRAME.registerSystem('ar', Object.assign(ARBaseSystem(), {
159 167
     // data;
160 168
     // schema;
161 169
 
162
-    _utils: ARUtils(),
170
+    _utils: Utils(),
163 171
     _started: false,
164 172
     _components: [],
165 173
     _roots: [],

+ 53
- 37
plugins/babylon-with-encantar.js Ver fichero

@@ -59,6 +59,54 @@ class ARDemo
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 110
  * Helper for creating Augmented Reality experiences
63 111
  */
64 112
 class ARSystem
@@ -139,45 +187,12 @@ 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,6 +209,7 @@ class ARSystem
194 209
         this._scene = null;
195 210
         this._camera = null;
196 211
         this._engine = null;
212
+        this._utils = new ARUtils();
197 213
     }
198 214
 }
199 215
 

+ 53
- 37
plugins/three-with-encantar.js Ver fichero

@@ -59,6 +59,54 @@ class ARDemo
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 110
  * Helper for creating Augmented Reality experiences
63 111
  */
64 112
 class ARSystem
@@ -139,45 +187,12 @@ 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,6 +209,7 @@ class ARSystem
194 209
         this._scene = null;
195 210
         this._camera = null;
196 211
         this._renderer = null;
212
+        this._utils = new ARUtils();
197 213
     }
198 214
 }
199 215
 

Loading…
Cancelar
Guardar