diff --git a/src/components/SceneDesigner/AnnotationPoint.vue b/src/components/SceneDesigner/AnnotationPoint.vue
new file mode 100644
index 0000000..999d270
--- /dev/null
+++ b/src/components/SceneDesigner/AnnotationPoint.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SceneDesigner/GameObject.vue b/src/components/SceneDesigner/GameObject.vue
new file mode 100644
index 0000000..facb0ea
--- /dev/null
+++ b/src/components/SceneDesigner/GameObject.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SceneDesigner/Scene.vue b/src/components/SceneDesigner/Scene.vue
new file mode 100644
index 0000000..866cb8c
--- /dev/null
+++ b/src/components/SceneDesigner/Scene.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SceneDesigner/SceneDesigner.vue b/src/components/SceneDesigner/SceneDesigner.vue
index fce21c2..4267e46 100644
--- a/src/components/SceneDesigner/SceneDesigner.vue
+++ b/src/components/SceneDesigner/SceneDesigner.vue
@@ -1,40 +1,93 @@
-
- mdi-panorama-outline{{ $l.addScene }}
- mdi-bird{{ $l.addScene }}
- mdi-checkbox-marked-circle-plus-outline{{ $l.addScene }}
+
+ Pointer
+ Select
+ Move
+ Pan
+
+ {{ $l.addScene }}
+ {{ $l.addScene }}
+ {{ $l.addScene }}
-
-
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SceneDesigner/SvgAvatar.vue b/src/components/SceneDesigner/SvgAvatar.vue
deleted file mode 100644
index a94bbcd..0000000
--- a/src/components/SceneDesigner/SvgAvatar.vue
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/SceneDesigner/SvgIcon.vue b/src/components/SceneDesigner/SvgIcon.vue
new file mode 100644
index 0000000..9af461d
--- /dev/null
+++ b/src/components/SceneDesigner/SvgIcon.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SceneDesigner/SvgRectangle.vue b/src/components/SceneDesigner/SvgRectangle.vue
new file mode 100644
index 0000000..52e03bb
--- /dev/null
+++ b/src/components/SceneDesigner/SvgRectangle.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SceneDesigner/SvgScene.vue b/src/components/SceneDesigner/SvgScene.vue
deleted file mode 100644
index a6ebdb8..0000000
--- a/src/components/SceneDesigner/SvgScene.vue
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/gameEngine/index.js b/src/lib/gameEngine.js
similarity index 100%
rename from src/gameEngine/index.js
rename to src/lib/gameEngine.js
diff --git a/src/lib/utils.js b/src/lib/utils.js
new file mode 100644
index 0000000..a49b4fb
--- /dev/null
+++ b/src/lib/utils.js
@@ -0,0 +1,57 @@
+const epsilon = 0.1;
+
+export default {
+ blobToBase64: blob => {
+ const reader = new FileReader();
+ reader.readAsDataURL(blob);
+ return new Promise(resolve => {
+ reader.onloadend = () => {
+ resolve(reader.result);
+ };
+ });
+ },
+
+ adjustMinMax(r){
+ return {
+ x1: Math.min(r.x1, r.x2), x2: Math.max(r.x1, r.x2),
+ y1: Math.min(r.y1, r.y2), y2: Math.max(r.y1, r.y2)
+ }
+ },
+
+ intersectPointRect(p, r){
+ //r = this.adjustMinMax(r);
+ return p[0] >= r.x1 && p[0] <= r.x2 && p[1] >= r.y1 && p[1] <= r.y2;
+ },
+
+ intersectPointLine(p, l){
+ //l = this.adjustMinMax(l);
+ let dx = l.x2 - l.x1, dy = l.y2 - l.y1;
+ let c = dy / dx;
+ return this.intersectPointRect(p, l) && c * p[0] - p[1] <= epsilon
+ },
+
+ intersectLineRect(l, r){
+ return this.intersectPointRect([l.x1, l.y1], r) ||
+ this.intersectPointRect([l.x2, l.y2], r);
+ },
+
+ intersectRectRect(r1, r2){
+ return this.intersectPointRect([r1.x1, r1.y1], r2) ||
+ this.intersectPointRect([r1.x1, r1.y2], r2) ||
+ this.intersectPointRect([r1.x2, r1.y1], r2) ||
+ this.intersectPointRect([r1.x2, r1.y2], r2);
+ },
+
+ round(n, p = 2){
+ let pp = Math.pow(10, p);
+ return Math.round(n*pp)/pp;
+ },
+
+ deg2rad(deg){
+ return deg * (Math.PI / 180);
+ },
+
+ rad2deg(rad){
+ return rad * 180 / Math.PI;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/game-objects/[[id]].vue b/src/pages/game-objects/[[id]].vue
index 6c15181..a5e8658 100644
--- a/src/pages/game-objects/[[id]].vue
+++ b/src/pages/game-objects/[[id]].vue
@@ -38,7 +38,7 @@
\ No newline at end of file
diff --git a/src/plugins/api.js b/src/plugins/api.js
index d859fea..fafc10b 100644
--- a/src/plugins/api.js
+++ b/src/plugins/api.js
@@ -1,7 +1,8 @@
import axios from 'axios';
const $ax = axios.create({
- baseURL: '/api/'
+ baseURL: '/api/',
+ //transformRequest: data=>
})
export default {
@@ -20,6 +21,20 @@ export default {
async remove(id){
return await $ax.delete(`/game-object/${id}`)
}
+ },
+ scenario:{
+ async save(data){
+ return await $ax.put('/scenario', data);
+ },
+ async load(id){
+ return await $ax.get(`/scenario/${id}`);
+ },
+ async search(query){
+ return await $ax.post('/scenario', query);
+ },
+ async remove(id){
+ return await $ax.delete(`/scenario/${id}`)
+ }
}
}
}