|  | @@ -22,7 +22,7 @@
 | 
	
		
			
				|  |  |  /// @requires vwf/model
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  define(["module", "vwf/model", "vwf/utility"], function (module, model, utility) {
 | 
	
		
			
				|  |  | -var self;
 | 
	
		
			
				|  |  | +    var self;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      return model.load(module, {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -76,7 +76,19 @@ var self;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      return found;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                setAFrameProperty: function (propertyName, propertyValue, aframeObject) {
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                            if (propertyValue.hasOwnProperty('x')) {
 | 
	
		
			
				|  |  | +                                aframeObject.setAttribute(propertyName, propertyValue)
 | 
	
		
			
				|  |  | +                            } else
 | 
	
		
			
				|  |  | +                                if (Array.isArray(propertyValue)) {
 | 
	
		
			
				|  |  | +                                    aframeObject.setAttribute(propertyName, { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] })
 | 
	
		
			
				|  |  | +                                } else if (typeof propertyValue === 'string') {
 | 
	
		
			
				|  |  | +                                    aframeObject.setAttribute(propertyName, AFRAME.utils.coordinates.parse(propertyValue))
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              this.state.kernel = this.kernel.kernel.kernel;
 | 
	
	
		
			
				|  | @@ -133,11 +145,11 @@ var self;
 | 
	
		
			
				|  |  |                  //     }
 | 
	
		
			
				|  |  |                  // } else {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    node.aframeObj = createAFrameObject(node);
 | 
	
		
			
				|  |  | -                    addNodeToHierarchy(node);
 | 
	
		
			
				|  |  | +                node.aframeObj = createAFrameObject(node);
 | 
	
		
			
				|  |  | +                addNodeToHierarchy(node);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    //notifyDriverOfPrototypeAndBehaviorProps();
 | 
	
		
			
				|  |  | -              //  }
 | 
	
		
			
				|  |  | +                //notifyDriverOfPrototypeAndBehaviorProps();
 | 
	
		
			
				|  |  | +                //  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  //addNodeToHierarchy(node);
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -149,10 +161,10 @@ var self;
 | 
	
		
			
				|  |  |          // initializingNode: function( nodeID, childID, childExtendsID, childImplementsIDs,
 | 
	
		
			
				|  |  |          //     childSource, childType, childIndex, childName ) {
 | 
	
		
			
				|  |  |          //     var node = this.state.nodes[childID];
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //     if ( node && childType == "component" ) {
 | 
	
		
			
				|  |  | -                
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //     }
 | 
	
		
			
				|  |  |          // },
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -175,7 +187,7 @@ var self;
 | 
	
		
			
				|  |  |              return this.initializingProperty(nodeID, propertyName, propertyValue);
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // -- deletingNode -------------------------------------------------------------------------
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -209,9 +221,9 @@ var self;
 | 
	
		
			
				|  |  |              var node = this.state.nodes[nodeID];
 | 
	
		
			
				|  |  |              var value = undefined;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //    if (node.componentName == 'line') {
 | 
	
		
			
				|  |  | -        //        console.log(node.aframeObj);
 | 
	
		
			
				|  |  | -        //    }
 | 
	
		
			
				|  |  | +            //    if (node.componentName == 'line') {
 | 
	
		
			
				|  |  | +            //        console.log(node.aframeObj);
 | 
	
		
			
				|  |  | +            //    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (node && node.aframeObj && utility.validObject(propertyValue)) {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -229,7 +241,7 @@ var self;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  if (value === undefined && isAEntityDefinition(node.prototypes)) {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -242,13 +254,33 @@ var self;
 | 
	
		
			
				|  |  |                          //         break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          case "position":
 | 
	
		
			
				|  |  | -                            aframeObject.setAttribute('position', { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        this.state.setAFrameProperty('position', propertyValue, aframeObject);
 | 
	
		
			
				|  |  | +                            // if (propertyValue.hasOwnProperty('x')) {
 | 
	
		
			
				|  |  | +                            //     aframeObject.setAttribute('position', propertyValue)
 | 
	
		
			
				|  |  | +                            // } else
 | 
	
		
			
				|  |  | +                            //     if (Array.isArray(propertyValue)) {
 | 
	
		
			
				|  |  | +                            //         aframeObject.setAttribute('position', { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] })
 | 
	
		
			
				|  |  | +                            //     } else if (typeof propertyValue === 'string') {
 | 
	
		
			
				|  |  | +                            //         aframeObject.setAttribute('position', AFRAME.utils.coordinates.parse(propertyValue))
 | 
	
		
			
				|  |  | +                            //     }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case "rotation":
 | 
	
		
			
				|  |  | -                            aframeObject.setAttribute('rotation', { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] });
 | 
	
		
			
				|  |  | +                        this.state.setAFrameProperty('rotation', propertyValue, aframeObject);
 | 
	
		
			
				|  |  | +                            // if (Array.isArray(propertyValue)) {
 | 
	
		
			
				|  |  | +                            //     aframeObject.setAttribute('rotation', { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] });
 | 
	
		
			
				|  |  | +                            // } else {
 | 
	
		
			
				|  |  | +                            //     aframeObject.setAttribute('rotation', AFRAME.utils.coordinates.parse(propertyValue));
 | 
	
		
			
				|  |  | +                            // }
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case "scale":
 | 
	
		
			
				|  |  | -                            aframeObject.setAttribute('scale', { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] });
 | 
	
		
			
				|  |  | +                        this.state.setAFrameProperty('scale', propertyValue, aframeObject);
 | 
	
		
			
				|  |  | +                            // if (Array.isArray(propertyValue)) {
 | 
	
		
			
				|  |  | +                            //     aframeObject.setAttribute('scale', { x: propertyValue[0], y: propertyValue[1], z: propertyValue[2] });
 | 
	
		
			
				|  |  | +                            // } else {
 | 
	
		
			
				|  |  | +                            //     aframeObject.setAttribute('scale', AFRAME.utils.coordinates.parse(propertyValue));
 | 
	
		
			
				|  |  | +                            // }
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          case "color":
 | 
	
	
		
			
				|  | @@ -283,7 +315,7 @@ var self;
 | 
	
		
			
				|  |  |                              node.events.clickable = propertyValue;
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                            case "visible":
 | 
	
		
			
				|  |  | +                        case "visible":
 | 
	
		
			
				|  |  |                              aframeObject.setAttribute('visible', propertyValue);
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -577,20 +609,20 @@ var self;
 | 
	
		
			
				|  |  |                          case "position":
 | 
	
		
			
				|  |  |                              var pos = aframeObject.getAttribute('position');
 | 
	
		
			
				|  |  |                              if (pos !== undefined) {
 | 
	
		
			
				|  |  | -                                value = [pos.x, pos.y, pos.z];
 | 
	
		
			
				|  |  | +                                value = AFRAME.utils.coordinates.stringify(pos);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |                          case "scale":
 | 
	
		
			
				|  |  |                              var scale = aframeObject.getAttribute('scale');
 | 
	
		
			
				|  |  |                              if (scale !== undefined) {
 | 
	
		
			
				|  |  | -                                value = [scale.x, scale.y, scale.z];
 | 
	
		
			
				|  |  | +                                value = AFRAME.utils.coordinates.stringify(scale);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          case "rotation":
 | 
	
		
			
				|  |  |                              var rot = aframeObject.getAttribute('rotation');
 | 
	
		
			
				|  |  |                              if (rot !== undefined) {
 | 
	
		
			
				|  |  | -                                value = [rot.x, rot.y, rot.z];
 | 
	
		
			
				|  |  | +                                value = AFRAME.utils.coordinates.stringify(rot);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -844,7 +876,7 @@ var self;
 | 
	
		
			
				|  |  |              aframeObj = document.createElement('a-animation');
 | 
	
		
			
				|  |  |          } else if (self.state.isAFrameClass(protos, "http://vwf.example.com/aframe/aentity.vwf")) {
 | 
	
		
			
				|  |  |              aframeObj = document.createElement('a-entity');
 | 
	
		
			
				|  |  | -        } 
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          aframeObj.setAttribute('id', node.ID);
 | 
	
		
			
				|  |  |          return aframeObj;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -904,7 +936,7 @@ var self;
 | 
	
		
			
				|  |  |          return found;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -   
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -980,6 +1012,8 @@ var self;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | + 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 |