topical media & game development

talk show tell print

mobile-query-three-js-tquery.convert.js / js



  tQuery.convert        = {};
  
  
Convert the value into a THREE.Color object
returns: {THREE.Color} the resulting color

  
  tQuery.convert.toThreeColor        = function(/* arguments */){
          // honor the plugins with 'preConvert' event
          var result        = tQuery.convert.toThreeColor.dispatchEvent('preConvert', arguments);
          if( result !== undefined )        return result;
  
          // default convertions
          if( arguments.length === 1 && typeof(arguments[0]) === 'number'){
                  return new THREE.Color(arguments[0]);
          }else if( arguments.length === 1 && arguments[0] instanceof THREE.Color ){
                  return arguments[0];
          }else if( arguments.length === 3 && typeof(arguments[0]) === 'number'
                                          && typeof(arguments[1]) === 'number' 
                                          && typeof(arguments[2]) === 'number' ){
                  return new THREE.Color().setRGB(arguments[0], arguments[1], arguments[2]);
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  // make tQuery.convert.toThreeColor eventable
  tQuery.MicroeventMixin(tQuery.convert.toThreeColor);
  
  
Convert the arguments into a THREE.Vector3
returns: {THREE.Vector3} the resulting THREE.Vector3

  
  tQuery.convert.toVector3        = function(/* arguments */){
          // handle parameters
          if( arguments[0] instanceof THREE.Vector3 && arguments.length === 1 ){
                  return arguments[0]
          }else if( typeof arguments[0] === "number" && arguments.length === 3 ){
                  return new THREE.Vector3(arguments[0], arguments[1], arguments[2]);
          }else{
                  console.assert(false, "invalid parameter for Vector3");
          }
  };
  
  tQuery.convert.toNumber        = function(value){
          if( arguments.length === 1 && typeof(value) === 'number'){
                  return value;
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  
  tQuery.convert.toNumberZeroToOne        = function(value){
          if( arguments.length === 1 && typeof(value) === 'number'){
                  value        = Math.min(value, 1.0);
                  value        = Math.max(value, 0);
                  return value;
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  
  tQuery.convert.toInteger        = function(value){
          if( arguments.length === 1 && typeof(value) === 'number'){
                  value        = Math.floor(value);
                  return value;
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  
  tQuery.convert.identity        = function(value){
          return value;
  };
  
  tQuery.convert.toBoolean        = function(value){
          if( arguments.length === 1 && typeof(value) === 'boolean'){
                  return value;
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  
  tQuery.convert.toString        = function(value){
          if( arguments.length === 1 && typeof(value) === 'string'){
                  return value;
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  
  tQuery.convert.toTextureCube        = function(/* arguments */){
          // honor the plugins with 'preConvert' event
          var result        = this.dispatchEvent('preConvert', arguments);
          if( result !== undefined )        return result;
  
          return tQuery.convert.toTexture.apply(tQuery.convert.toTexture, arguments);
  };
  // make tQuery.convert.toTextureCube eventable
  tQuery.MicroeventMixin(tQuery.convert.toTextureCube);
  
  tQuery.convert.toTexture        = function(value){
          // honor the plugins with 'preConvert' event
          var result        = this.dispatchEvent('preConvert', arguments);
          if( result !== undefined )        return result;
          
          // default convertions
          if( arguments.length === 1 && value instanceof THREE.Texture ){
                  return value;
          }else if( arguments.length === 1 && value instanceof THREE.WebGLRenderTarget ){
                  return value;
          }else if( arguments.length === 1 && typeof(value) === 'string' ){
                  return THREE.ImageUtils.loadTexture(value);
          }else if( arguments.length === 1 && (value instanceof Image
                                                  || value instanceof HTMLVideoElement
                                                  || value instanceof HTMLCanvasElement) ){
                  var texture                = new THREE.Texture( value );
                  texture.needsUpdate        = true;
                  return texture;
          }else{
                  console.assert(false, "invalid parameter");
          }
          return undefined;        // never reached - just to workaround linter complaint
  };
  // make tQuery.convert.toTexture eventable
  tQuery.MicroeventMixin(tQuery.convert.toTexture);
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.