فهرست منبع

move setters to satProp

Nikolay Suslov 7 سال پیش
والد
کامیت
702d57e2e2

+ 165 - 190
public/ohmlang-lsys/appui.js

@@ -1,144 +1,119 @@
-function createApp(){
+function createApp() {
 
     let self = this
 
-    function makeSetter(val){
-        let setstr = 'this.'+val+ '= value; this.redrawEvent();' 
+
+
+    function makeSetter(val) {
+        let setstr = 'this.' + val + '= value; this.redrawEvent();'
         return setstr
     }
 
     function getNewPosition() {
         //let allChild = vwf.find("","/*")
-        let cursorVisID = vwf.find("myCursor-avatar-" + vwf.moniker_,"./vis")[0]
+        let cursorVisID = vwf.find("myCursor-avatar-" + vwf.moniker_, "./vis")[0]
         let avPos = AFRAME.utils.coordinates.parse(vwf.getProperty(cursorVisID, 'worldPosition'));
         let newPos = [avPos.x, avPos.y, avPos.z]
         return newPos
-    }  
-
-return {
-    $cell: true,
-    $type: "div",
-    class: "propGrid max-width mdc-layout-grid mdc-layout-grid--align-left",
-    $components: [
-        {
-            $cell: true,
-            $type: "div",
-            class: "mdc-layout-grid__inner",
-            $components: [
-                {
-                    $cell: true,
-                    $type: "div",
-                    class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-12",
-                    $components: [
-                        // {
-                        //     $cell: true,
-                        //     $type: "button",
-                        //     class: "mdc-button mdc-button--raised",
-                        //     $text: "Draw L-System",
-                        //     onclick: function (e) {
-                        //         let sceneID = vwf.find("","/")[0];
-                        //         vwf_view.kernel.callMethod(sceneID, "drawLSys1");
-                        //     }
-
-                        // },
-                        {
-                            $cell: true,
-                            $type: "button",
-                            class: "mdc-button mdc-button--raised",
-                            $text: "Create new turtle",
-                            onclick: function (e) {
-                               let sceneID = vwf.find("","/")[0];
-                               let turtleID = vwf.find("","/turtle")[0];
-
-                               let params = {
-                                   "angle": 60,
-                                   "iteration": 3,
-                                   "stepLength": 0.3,
-                                   "rule": 'F++F++F',
-                                   "axiomF": 'F-F++F-F',
-                                   "axiomG": ''
-                               }
-
-                               console.log("create new turtle");
-                              //let newTurtle = vwf.getNode(turtleID, true);
-                              // let newTurtle = self.removeProps(node);
-
-                              let newTurtle = self.getNodeDef(turtleID);
-
-                            //    newTurtle.children.drawNode = {
-                            //     "extends": "http://vwf.example.com/aframe/aentity.vwf"
-                            // }
-                           newTurtle.events.redrawEvent = {}
-                            
-                            let props = ["angle", "iteration", "stepLength", "rule", "axiomF", "axiomG"]
-                            
-                              props.forEach(el =>{
-                                newTurtle.properties[el] = {
-                                    "value": params[el],
-                                    "set": makeSetter(el)
+    }
+
+    return {
+        $cell: true,
+        $type: "div",
+        class: "propGrid max-width mdc-layout-grid mdc-layout-grid--align-left",
+        $components: [
+            {
+                $cell: true,
+                $type: "div",
+                class: "mdc-layout-grid__inner",
+                $components: [
+                    {
+                        $cell: true,
+                        $type: "div",
+                        class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-12",
+                        $components: [
+                            // {
+                            //     $cell: true,
+                            //     $type: "button",
+                            //     class: "mdc-button mdc-button--raised",
+                            //     $text: "Draw L-System",
+                            //     onclick: function (e) {
+                            //         let sceneID = vwf.find("","/")[0];
+                            //         vwf_view.kernel.callMethod(sceneID, "drawLSys1");
+                            //     }
+
+                            // },
+                            {
+                                $cell: true,
+                                $type: "button",
+                                class: "mdc-button mdc-button--raised",
+                                $text: "Create new turtle",
+                                onclick: function (e) {
+                                    let sceneID = vwf.find("", "/")[0];
+                                    let turtleID = vwf.find("", "/turtle")[0];
+
+                                    console.log("create new turtle");
+                                    let newTurtle = vwf.getNode(turtleID, true);
+
+                                    newTurtle.properties.position = getNewPosition();
+
+                                    let randomName = "turtle-new-" + self.GUID();
+                                    vwf_view.kernel.createChild(sceneID, randomName, newTurtle);
                                 }
-                              })
-                            
-                              newTurtle.properties.position = getNewPosition();
-                              newTurtle.properties.ready = false;
 
-                               let randomName = "turtle-new-" + self.GUID();
-                               vwf_view.kernel.createChild(sceneID, randomName, newTurtle);
                             }
 
-                        }
-                       
-
-                    ]
-                },
-                {
-                    $cell: true,
-                    $type: "div",
-                    class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
-                    $components: [
-
-                        {
-                            $type: "img",
-                            src: "./lsys/Koch.jpg",
-                            class: "mdc-elevation--z2",
-                            style: "width: 150px",
-                            onclick: function(evt){
-                                
-                            let turtleID = vwf.find("","/turtle")[0];
-                            
-                            let params = {
-                                "angle": 60,
-                                "iteration": 3,
-                                "stepLength": 0.3,
-                                "rule": 'F++F++F',
-                                "axiomF": 'F-F++F-F',
-                                "axiomG": ''
+
+                        ]
+                    },
+                    {
+                        $cell: true,
+                        $type: "div",
+                        class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
+                        $components: [
+
+                            {
+                                $type: "img",
+                                src: "./lsys/Koch.jpg",
+                                class: "mdc-elevation--z2",
+                                style: "width: 150px",
+                                onclick: function (evt) {
+
+                                    let turtleID = vwf.find("", "/turtle")[0];
+
+                                    let params = {
+                                        "angle": 60,
+                                        "iteration": 3,
+                                        "stepLength": 0.3,
+                                        "rule": 'F++F++F',
+                                        "axiomF": 'F-F++F-F',
+                                        "axiomG": ''
+                                    }
+
+                                    vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
+
+
+
+                                }
+
                             }
+                        ]
+                    },
+                    {
+                        $cell: true,
+                        $type: "div",
+                        class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
+                        $components: [
 
-                            vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
-                    
-                            
-
-                        }
-                            
-                        }
-                    ]
-                },
-                {
-                    $cell: true,
-                    $type: "div",
-                    class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
-                    $components: [
-               
                             {
                                 $type: "img",
                                 src: "./lsys/dragon.jpg",
                                 class: "mdc-elevation--z2",
                                 style: "width: 150px",
-                                onclick: function(evt){
+                                onclick: function (evt) {
+
+                                    let turtleID = vwf.find("", "/turtle")[0];
 
-                                    let turtleID = vwf.find("","/turtle")[0];
-                                    
                                     let params = {
                                         "angle": 90,
                                         "iteration": 10,
@@ -149,83 +124,83 @@ return {
                                     }
 
                                     vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
-                            
-                                    
+
+
 
                                 }
-                                
-                            }
 
-                    ]
-                },
-                {
-                    $cell: true,
-                    $type: "div",
-                    class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
-                    $components: [
-
-                        {
-                            $type: "img",
-                            src: "./lsys/SierpinskiCurve.jpg",
-                            class: "mdc-elevation--z2",
-                            style: "width: 150px",
-                            onclick: function(evt){
-                                
-                            let turtleID = vwf.find("","/turtle")[0];
-                            
-                            let params = {
-                                "angle": 60,
-                                "iteration": 5,
-                                "stepLength": 0.3,
-                                "rule": 'F',
-                                "axiomF": 'G-F-G',
-                                "axiomG": 'F+G+F'
                             }
 
-                            vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
-                    
-                            
-
-                        }
-                            
-                        }
-                    ]
-                },
-                {
-                    $cell: true,
-                    $type: "div",
-                    class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
-                    $components: [
-
-                        {
-                            $type: "img",
-                            src: "./lsys/SierpinskiTriangle.jpg",
-                            class: "mdc-elevation--z2",
-                            style: "width: 150px",
-                            onclick: function(evt){
-                                
-                            let turtleID = vwf.find("","/turtle")[0];
-                            
-                            let params = {
-                                "angle": 120,
-                                "iteration": 5,
-                                "stepLength": 0.3,
-                                "rule": 'F--F--F',
-                                "axiomF": 'F--F--F--G',
-                                "axiomG": 'GG'
+                        ]
+                    },
+                    {
+                        $cell: true,
+                        $type: "div",
+                        class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
+                        $components: [
+
+                            {
+                                $type: "img",
+                                src: "./lsys/SierpinskiCurve.jpg",
+                                class: "mdc-elevation--z2",
+                                style: "width: 150px",
+                                onclick: function (evt) {
+
+                                    let turtleID = vwf.find("", "/turtle")[0];
+
+                                    let params = {
+                                        "angle": 60,
+                                        "iteration": 5,
+                                        "stepLength": 0.3,
+                                        "rule": 'F',
+                                        "axiomF": 'G-F-G',
+                                        "axiomG": 'F+G+F'
+                                    }
+
+                                    vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
+
+
+
+                                }
+
                             }
+                        ]
+                    },
+                    {
+                        $cell: true,
+                        $type: "div",
+                        class: "mdc-layout-grid__cell mdc-layout-grid__cell--span-6",
+                        $components: [
 
-                            vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
-                    
-                            
-
-                        }
-                            
-                        }
-                    ]
-                }
-            ]
-        }
-    ]
-}
+                            {
+                                $type: "img",
+                                src: "./lsys/SierpinskiTriangle.jpg",
+                                class: "mdc-elevation--z2",
+                                style: "width: 150px",
+                                onclick: function (evt) {
+
+                                    let turtleID = vwf.find("", "/turtle")[0];
+
+                                    let params = {
+                                        "angle": 120,
+                                        "iteration": 5,
+                                        "stepLength": 0.3,
+                                        "rule": 'F--F--F',
+                                        "axiomF": 'F--F--F--G',
+                                        "axiomG": 'GG'
+                                    }
+
+                                    vwf_view.kernel.callMethod(turtleID, 'setTurtleParams', [Object.entries(params)])
+
+
+
+                                }
+
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
 }

+ 39 - 0
public/ohmlang-lsys/index.vwf.html

@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <script type="text/javascript">
+
+        vwf_view.satProperty = function (nodeID, propertyName, propertyValue) {
+            if (propertyValue === undefined || propertyValue == null) {
+                return;
+            }
+
+            let props = ["angle", "iteration", "stepLength", "rule", "axiomF", "axiomG"]
+
+
+            if (props.includes(propertyName)) {
+                vwf_view.kernel.callMethod(nodeID, "makeLSys");
+                 //console.log(propertyName +' - '+ propertyValue);
+            }
+
+            // switch ( propertyName ) {
+            //     case "iteration":
+            //     vwf_view.kernel.callMethod(nodeID, "makeLSys");
+            //     console.log("here!!")
+            //     break;
+
+            //     default:
+            //         break;
+            // }
+
+        }
+
+
+    </script>
+</head>
+
+<body>
+</body>
+
+</html>

+ 8 - 34
public/ohmlang-lsys/index.vwf.yaml

@@ -26,36 +26,12 @@ children:
             radius: 0.2
             wireframe: true
             angleInRadians: 0
-            iteration:
-                set: |
-                    this.iteration = value;
-                    this.redrawEvent();
-                value: 3
-            angle:
-                set: |
-                    this.angle = value;
-                    this.redrawEvent();
-                value: 60  
-            stepLength: 
-                set: |
-                    this.stepLength = value;
-                    this.redrawEvent();
-                value: 0.5  
-            rule: 
-                set: |
-                    this.rule = value;
-                    this.redrawEvent();
-                value: 'F++F++F'
-            axiomF: 
-                set: |
-                    this.axiomF = value;
-                    this.redrawEvent();
-                value: 'F-F++F-F'
-            axiomG:
-                set: |
-                    this.axiomG = value;
-                    this.redrawEvent();
-                value: ''
+            iteration: 3
+            angle: 60  
+            stepLength: 0.5  
+            rule: 'F++F++F'
+            axiomF: 'F-F++F-F'
+            axiomG: ''
             lsys: ''
             readyForDraw: true
         children:
@@ -151,9 +127,7 @@ children:
                                         //vwf_view.kernel.callMethod(turtleID, 'turn', [-1 * this.args.y]);
                                         self.parent.turn(-1*this.args.y);
                                     }
-                            });  
-        events:
-            redrawEvent:
+                            });
         methods:
             parseLSys: |
                 var str = this.rule;
@@ -217,7 +191,7 @@ children:
                     this.makeLSys();
             initialize:
                 body: |
-                    this.redrawEvent = function(){this.makeLSys()}
+                    //this.redrawEvent = function(){this.makeLSys()}
                     vwf_view.kernel.callMethod(this.id, "makeLSys");
                     console.log("initialising turtle");
 methods:

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

@@ -636,20 +636,20 @@ define(["module", "vwf/model", "vwf/utility"], function (module, model, utility)
                         case "position":
                             var pos = aframeObject.getAttribute('position');
                             if (pos !== undefined) {
-                                value = AFRAME.utils.coordinates.stringify(pos);
+                                value = pos//[pos.x, pos.y, pos.z]//AFRAME.utils.coordinates.stringify(pos);
                             }
                             break;
                         case "scale":
                             var scale = aframeObject.getAttribute('scale');
                             if (scale !== undefined) {
-                                value = AFRAME.utils.coordinates.stringify(scale);
+                                value = scale//AFRAME.utils.coordinates.stringify(scale);
                             }
                             break;
 
                         case "rotation":
                             var rot = aframeObject.getAttribute('rotation');
                             if (rot !== undefined) {
-                                value = AFRAME.utils.coordinates.stringify(rot);
+                                value = rot//AFRAME.utils.coordinates.stringify(rot);
                             }
                             break;
 

+ 1 - 0
support/proxy/vwf.example.com/aframe/avatar.js

@@ -250,6 +250,7 @@ this.followAvatarControl = function (position, rotation) {
     //this.avatarNameNode.rotation = [myRot.x, myRot.y, rotation.z]; 
 
     this.avatarNode.myHead.rotation = [rotation.x, myHeadRot.y, rotation.z];
+    
     // this.avatarNode.myCursor.rotation = [rotation.x, myHeadRot.y, rotation.z];
 
     // this.avatarCamera.rotation = [rotation.x, myHeadRot.y, rotation.z];