Browse Source

avatar work in progress

Nikolay Suslov 7 years ago
parent
commit
0485e0f4d1

+ 0 - 13
public/aframe2/index.vwf.yaml

@@ -101,19 +101,6 @@ children:
       color: "white"
       wireframe: false
       src: "#bg2"
-  camentity:
-    extends: http://vwf.example.com/aframe/aentity.vwf
-    properties:
-      position: [0, 0, 0]
-    children:
-      camera:
-        extends: http://vwf.example.com/aframe/acamera.vwf
-        properties:
-          look-controls-enabled: true
-          forAvatar: true
-        children:
-          cursor:
-            extends: http://vwf.example.com/aframe/acursor.vwf
 methods:
   initialize:
     body: |

+ 1 - 14
public/ohmlang-calc/index.vwf.yaml

@@ -127,17 +127,4 @@ children:
   sky:
     extends: http://vwf.example.com/aframe/asky.vwf
     properties:
-      color: "#ECECEC"
-  camentity:
-    extends: http://vwf.example.com/aframe/aentity.vwf
-    properties:
-      position: [0, 0, 0]
-    children:
-      camera:
-        extends: http://vwf.example.com/aframe/acamera.vwf
-        properties:
-          look-controls-enabled: true
-          forAvatar: true
-        children:
-          cursor:
-            extends: http://vwf.example.com/aframe/acursor.vwf
+      color: "#ECECEC"

+ 1 - 14
public/ohmlang-lsys/index.vwf.yaml

@@ -194,17 +194,4 @@ children:
   sky:
     extends: http://vwf.example.com/aframe/asky.vwf
     properties:
-      color: "#ECECEC"
-  camentity:
-    extends: http://vwf.example.com/aframe/aentity.vwf
-    properties:
-      position: [0, 0, 0]
-    children:
-      camera:
-        extends: http://vwf.example.com/aframe/acamera.vwf
-        properties:
-          look-controls-enabled: true
-          forAvatar: true
-        children:
-          cursor:
-            extends: http://vwf.example.com/aframe/acursor.vwf
+      color: "#ECECEC"

+ 3 - 3
support/client/lib/vwf.js

@@ -324,7 +324,7 @@
                         deps: [ "vwf/model/blockly/blockly_compressed" ]
                     },
                      "vwf/model/aframe/addon/aframe-interpolation": {
-                        deps: [ "vwf/model/aframe/aframe-master" ]
+                        deps: [ "vwf/model/aframe/aframe-v0.5.0" ]
                     },
                 }
             };
@@ -373,7 +373,7 @@
                 { library: "vwf/model/ohm", active: true },
 
                   { library: "vwf/model/aframe", 
-                    linkedLibraries: [ "vwf/model/aframe/aframe-master",
+                    linkedLibraries: [ "vwf/model/aframe/aframe-v0.5.0",
                     "vwf/model/aframe/addon/aframe-interpolation" ], 
                     active: false 
                 },
@@ -422,7 +422,7 @@
                 { library: "vwf/view/ohm", active: true },
 
                  { library: "vwf/view/aframe", active: false },
-                { library: "vwf/model/aframe/aframe-master", active: false },
+                { library: "vwf/model/aframe/aframe-v0.5.0", active: false },
                 { library: "vwf/model/aframe/addon/aframe-interpolation", active: false },
 
                 { library: "vwf/view/kineticjs", active: false },

+ 34 - 35
support/client/lib/vwf/model/aframe.js

@@ -279,6 +279,14 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                                 case "color":
                                     aframeObject.setAttribute('color', propertyValue);
                                     break;
+                                
+                                case "transparent":
+                                    aframeObject.setAttribute('material','transparent', propertyValue);
+                                    break;
+
+                                case "opacity":
+                                    aframeObject.setAttribute('material','opacity', propertyValue);
+                                    break;
 
                                 case "fog":
                                     aframeObject.setAttribute('material','fog', propertyValue);
@@ -291,16 +299,16 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                                     aframeObject.setAttribute('wireframeLinewidth', propertyValue);
                                     break;
 
-                                // case "clickable":
-                                  
-                                //         value = propertyValue;
-
-                                //     break;
+                                //  case "clickable":   
+                                //          console.log("set clickable!");
+                                //          value = propertyValue;
+                                //      break;
 
                                 // case "clickable":
                                 //     if (propertyValue) {
                                 //         aframeObject.addEventListener('click', function (evt) {
-                                //             vwf_view.kernel.fireEvent(node.ID, "clickEvent");
+                                //              console.log("click!");
+                                //             vwf_view.kernel.fireEvent(node.ID, "clickEvent",evt.detail.cursorEl.id);
                                 //         });
                                 //     }
                                 //     break;
@@ -490,39 +498,16 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                          value = propertyValue;
                           switch (propertyName) {
 
-                                    case "activeForAvatar":
-                                       console.log("set active camera to view");
+                                case "active":
+                                    aframeObject.setAttribute('active', propertyValue);
                                        break;
 
-                                    case "forAvatar":
-                                        if (propertyValue) {
-                                            // aframeObject.addEventListener('componentchanged', function (evt) {
-
-                                            //     if (evt.detail.name === 'position') {
-                                            //         self.kernel.fireEvent(node.ID, "setAvatarPosition", evt.detail.newData);
-
-                                            //     }
-                                            //     if (evt.detail.name === 'rotation') {
-                                            //         self.kernel.fireEvent(node.ID, "setAvatarRotation", evt.detail.newData);
-                                                
-                                            //     }
-                                            // });
-                                        }
-                                        break;
-                    
-
                              default:
                                  value = undefined;
                                  break;
                          }
                      }
 
-
-                    //if (!aframeObject) return value;
-
-                    //if (propertyValue !== undefined) {
-                        //self = this;
-
             }
             return value;
         },
@@ -601,6 +586,18 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                                 }
                                 break;
 
+                            case "opacity":
+                                if (aframeObject.getAttribute('material')){
+                                    value = aframeObject.getAttribute('material').opacity;
+                                }
+                                break;
+
+                            case "transparent":
+                                if (aframeObject.getAttribute('material')){
+                                    value = aframeObject.getAttribute('material').transparent;
+                                }
+                                break;
+                                
                             case "wireframe":
                                 value = aframeObject.getAttribute('wireframe');
                                 break;
@@ -609,9 +606,9 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                                 value = aframeObject.getAttribute('wireframeLinewidth');
                                 break;
 
-                            // case "clickable":
-                            //   value = propertyValue; 
-                            //     break;
+                            //  case "clickable":
+                            //    value = propertyValue; 
+                            //      break;
 
                             case "src":
                                 value = aframeObject.getAttribute('src');
@@ -718,7 +715,9 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                  if ( value === undefined && aframeObject.nodeName == "A-CAMERA" ) {
         
                            switch (propertyName) {
-                               
+                                case "active":
+                                    value = aframeObject.getAttribute('active');
+                                    break;
                                 }
                 }
 

File diff suppressed because it is too large
+ 157 - 1603
support/client/lib/vwf/model/aframe/aframe-master.js


File diff suppressed because it is too large
+ 0 - 0
support/client/lib/vwf/model/aframe/aframe-master.min.js


+ 27 - 45
support/client/lib/vwf/view/aframe.js

@@ -55,17 +55,24 @@ define(["module", "vwf/view", "jquery", "jquery-ui"], function (module, view, $)
 
             if (this.state.scenes[childID]) {
                 let scene = this.state.scenes[childID];
+
                 document.body.append(scene);
-                createAvatar(childID);
                 createAvatarControl(scene);
+                createAvatar(childID);
+                
+               
+                
             }
 
-            //  let avatarCameraID = 'camera-avatar-' + self.kernel.moniker();
-            // if (childID == avatarCameraID && ) {
-            //     let avatarCameraEl = document.querySelector('#'+ avatarCameraID);
-            //      avatarCameraEl.setAttribute('camera', 'active', true);
-            // }
+        },
+
 
+        initializedNode: function( nodeID, childID ) {
+
+            var node = this.state.nodes[childID];
+            if (!node) {
+                return;
+            }
 
         },
 
@@ -88,28 +95,15 @@ define(["module", "vwf/view", "jquery", "jquery-ui"], function (module, view, $)
 
             var aframeObject = node.aframeObj;
             switch (propertyName) {
-
-                case "activeForAvatar":
-                    console.log("sat to active!");
-                     //let avatarCameraID = 'camera-avatar-' + self.kernel.moniker();
-                    //node.aframeObj.setAttribute('camera', 'active', propertyValue);
-                     let avatarCameraEl = document.querySelector('#camera-avatar-'+ self.kernel.moniker());
-                        //avatarCameraEl.setAttribute('camera', 'active', false);
-                        //avatarCameraEl.setAttribute('camera', 'userHeight', 0.0);
-                        document.querySelector('#avatarControl').setAttribute('camera', 'active', true);
-
-
-                    break;
-
                 case "clickable":
                     if (propertyValue) {
+                        aframeObject.setAttribute('class', 'intersectable');
                         aframeObject.addEventListener('click', function (evt) {
-
                             let cursorID = 'cursor-avatar-'+self.kernel.moniker();
                            if (evt.detail.cursorEl.id == cursorID) {
-                            vwf_view.kernel.fireEvent(nodeId, "clickEvent")
+                                vwf_view.kernel.fireEvent(nodeId, "clickEvent")
                            }
-                        })
+                        });
                     }
                     break;
             }
@@ -119,21 +113,18 @@ define(["module", "vwf/view", "jquery", "jquery-ui"], function (module, view, $)
             //var avatarID = vwf_view.kernel.find("", avatarName)
 
             var avatarName = 'avatar-' + self.kernel.moniker();
-            if (eventName == "setAvatarPosition") {
-                vwf_view.kernel.setProperty(avatarName, "position", [eventParameters.x, eventParameters.y, eventParameters.z]);
-            }
+
             if (eventName == "setAvatarRotation") {
                 vwf_view.kernel.setProperty(avatarName, "rotation", [eventParameters.x, eventParameters.y, eventParameters.z]);
             }
 
-             if (eventName == "setPosition") {
+             if (eventName == "setAvatarPosition") {
                 vwf_view.kernel.setProperty(avatarName, "position", [eventParameters.x, eventParameters.y, eventParameters.z]);
             }
-
         },
 
-        // ticked: function (vwfTime) {
-        // }
+        ticked: function (vwfTime) {
+        }
 
     });
 
@@ -146,31 +137,25 @@ define(["module", "vwf/view", "jquery", "jquery-ui"], function (module, view, $)
         controlEl.setAttribute('wasd-controls', {});
         controlEl.setAttribute('look-controls', {});
         aScene.appendChild(controlEl);
-        console.log(document.querySelector('#avatarControl').components);
 
-        controlEl.addEventListener('componentchanged', function (evt) {
+        let cursorEl = document.createElement('a-cursor');
+        cursorEl.setAttribute('id', 'cursor-'+avatarName);
+        cursorEl.setAttribute('raycaster', {objects: '.intersectable'});
+        controlEl.appendChild(cursorEl);
 
+       
+        controlEl.addEventListener('componentchanged', function (evt) {
         if (evt.detail.name === 'position') {
             var eventParameters = evt.detail.newData;
              vwf_view.kernel.setProperty(avatarName, "position", [eventParameters.x, eventParameters.y, eventParameters.z]);
-            //self.kernel.fireEvent(node.parentID, "setPosition", evt.detail.newData);
-
         }
 
          if (evt.detail.name === 'rotation') {
             var eventParameters = evt.detail.newData;
                vwf_view.kernel.setProperty(avatarName, "rotation", [eventParameters.x, eventParameters.y, eventParameters.z]);
-            //self.kernel.fireEvent(node.parentID, "setPosition", evt.detail.newData);
-
         }
 
     });
-
-        vwf_view.kernel.setProperty('camera-'+avatarName, "activeForAvatar", true);
-
-        //let avatarCameraEl = document.querySelector('#camera-'+ avatarName);
-       // avatarCameraEl.setAttribute('active', true);
-
     }
 
     function createAvatar(nodeID) {
@@ -178,16 +163,13 @@ define(["module", "vwf/view", "jquery", "jquery-ui"], function (module, view, $)
         let avatarID = self.kernel.moniker();
         var nodeName = 'avatar-' + avatarID;
 
-
         var newNode = {
             "id": nodeName,
             "uri": nodeName,
             "extends": "http://vwf.example.com/aframe/avatar.vwf"
         }
-
+        
         vwf_view.kernel.createChild(nodeID, nodeName, newNode);
         vwf_view.kernel.callMethod(nodeName, "createAvatarBody");
-        
     }
-
 });

+ 1 - 2
support/proxy/vwf.example.com/aframe/acamera.vwf.yaml

@@ -3,5 +3,4 @@
 extends: http://vwf.example.com/aframe/aentity.vwf
 type: "a-camera"
 properties:
-  forAvatar:
-  activeForAvatar:
+  active:

+ 2 - 0
support/proxy/vwf.example.com/aframe/aentity.vwf.yaml

@@ -3,6 +3,8 @@
 extends: http://vwf.example.com/aframe/node.vwf
 type: "a-entity"
 properties:
+  opacity:
+  transparent:
   color:
   position:
   rotation:

+ 25 - 7
support/proxy/vwf.example.com/aframe/avatar.vwf.yaml

@@ -29,24 +29,42 @@ methods:
                 } 
               }
 
-              let cursor = {
-                     "id": 'cursor-' + this.id,
-                     "extends": "http://vwf.example.com/aframe/acursor.vwf"
+              //let cursor = 
+              //{
+              //       "id": 'cursor-' + this.id,
+              //       "extends": "http://vwf.example.com/aframe/acursor.vwf",
+              //}
+
+              let cursorVis = 
+              {
+                     "extends": "http://vwf.example.com/aframe/abox.vwf",
+                     "properties": {
+                        "color": myColor,
+                        "opacity": 0.3,
+                        "transparent": true,
+                        "depth": 3,
+                        "width": 0.02,
+                        "height": 0.02,
+                        "rotation": [0, 180, 0],
+                        "position": [0, 0, -2]
+                     }
+
               }
 
-              let camera = {
+              let camera = 
+              {
                    "id": 'camera-' + this.id,
                     "extends": "http://vwf.example.com/aframe/acamera.vwf",
                     "properties": {
-                        "forAvatar": true,
                         "look-controls-enabled": false,
-                        "wasd-controls": false
+                        "wasd-controls": false,
+                        "active": false
                     }
               }
 
               this.interpolation = "50ms";
               this.children.create( "avatarBody", newNode );
-              this.children.create( "avatarCursor", cursor );
+              this.children.create( "avatarCursor", cursorVis );
               this.children.create( "avatarCamera", camera );
     getRandomColor:
         body: |

Some files were not shown because too many files changed in this diff