| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | # Copyright 2012 United States Government, as represented by the Secretary of Defense, Under# Secretary of Defense (Personnel & Readiness).# # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except# in compliance with the License. You may obtain a copy of the License at# #   http://www.apache.org/licenses/LICENSE-2.0# # Unless required by applicable law or agreed to in writing, software distributed under the License# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express# or implied. See the License for the specific language governing permissions and limitations under# the License.## The component representation of a spin behavior (on click)## ## @name spin-on-click.vwf## @namespace--- extends:  http://vwf.example.com/node3.vwfproperties:  ## Whether the component is spinning  ##   ## @name spin-on-click.vwf#spin-spinning  ## @property  spin-spinning:    set: |      if ( value && ! this["spin-spinning"] ) {  // starting        this["spin-spinning"] = true;  // set the internal value        this.spin();  // run the first step and schedule the next one      } else if ( ! value && this["spin-spinning"] ) { // stopping        this["spin-spinning"] = false;  // set the internal value      }    value: false  ## Spin rate  ##   ## @name spin-on-click.vwf#spin-rate  ## @property  spin-rate: 1  ## Spin axis  ##   ## @name spin-on-click.vwf#spin-axis  ## @property  spin-axis: [ 0, 1, 0 ]methods:    ## Spin function. Updates component rotations and calls future spin  ##   ## @name spin-on-click.vwf#spin  ## @function  ##  ## @returns undefined  spin: |    if ( this["spin-spinning"] ) {  // if enabled      var axis = this["spin-axis"];      this.rotateBy( [ axis[0], axis[1], axis[2], this["spin-rate"], 0 ] );      this.future( 0.05 ).spin();  // schedule the next step    }scripts:- |  this.pointerClick = function( pointerInfo )  {    if ( pointerInfo.button == "left" ) {      this["spin-spinning"] = ! this["spin-spinning"];  // ... toggle the enabled flag    }  }
 |