# https://aframe.io/docs/0.5.0/core/entity.html
--- 
extends: http://vwf.example.com/aframe/node.vwf
type: "a-entity"
implements:
- http://vwf.example.com/animation/animation.vwf
- http://vwf.example.com/animation/animationNode.vwf
properties:
  position:
    set: |
      var position = this.translationFromValue( value ); // parse incoming value
      if(!position || !this.position){
        this.position = goog.vec.Vec3.create();
      } else if ( ! goog.vec.Vec3.equals( this.position || goog.vec.Vec3.create(), position ) ) {
        this.position = position;
        this.positionChanged( position);
      }  
    get: |
      return this.position || goog.vec.Vec3.create();
  rotation:
    set: |
      var rotation = this.translationFromValue( value ); // parse incoming value
      if(!rotation || !this.rotation){
        this.rotation = goog.vec.Vec3.create();
      } else if ( ! goog.vec.Vec3.equals( this.rotation || goog.vec.Vec3.create(), rotation ) ) {
        this.rotation = rotation;
        this.rotationChanged( rotation);
      }  
    get: |
      return this.rotation || goog.vec.Vec3.create();
  scale:
    set: |
      var scale = this.translationFromValue( value ); // parse incoming value
      if(!scale || !this.scale){
        this.scale = goog.vec.Vec3.create();
      } else if ( ! goog.vec.Vec3.equals( this.scale || goog.vec.Vec3.create(), scale ) ) {
        this.scale = scale;
        this.scaleChanged( scale);
      }  
    get: |
      return this.scale || goog.vec.Vec3.create();
  clickable:
  displayName:
  visible:
  edit:
  osc:
  ownedBy:
  class:
  stepping:
  stepTime:
  globalBeat:
  meta:
events:
  positionChanged:
  rotationChanged:
  scaleChanged:
  sendOSC:
  intersectEvent:
  clearIntersectEvent:
  hitstartEvent:
  hitendEvent:
  clickEvent:
methods:
  getRandomColor:
  intersectEventMethod:
  clearIntersectEventMethod:
  hitstartEventMethod:
  hitendEventMethod:
  clickEventMethod:
  sendOSC:
    parameters:
      - msg
  setGizmoMode:
    parameters:
      - mode
  showCloseGizmo:
  lookAt:
    parameters:
      - nodeID
  worldRotation:
  worldPosition:
  translationFromValue:
    parameters:
      - propertyValue
  getChildByName:
    parameters:
      - name
  setOwner:
    parameters:
      - propertyValue
  updateMethod:
    parameters:
      - methodName
      - methodBody
      - params
  callMethod:
    parameters:
      - methodName
      - params
  onGlobalBeat:
    parameters:
      - obj
  changeVisual:
  resetVisual:  
  step:
  do:
  randomize:
  nodeDef:
scripts:
  - source: "http://vwf.example.com/aframe/aentity.js"