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.vwf
- properties:
- ## 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
- }
- }
|