Newer
Older
reroad-test / 2020-ryusei / aframe-master / src / extras / primitives / getMeshMixin.js
@ryusei ryusei on 22 Oct 2020 814 bytes パノラマ表示
/**
 * Common mesh defaults, mappings, and transforms.
 */
var components = require('../../core/component').components;
var shaders = require('../../core/shader').shaders;
var utils = require('../../utils/');

var materialMappings = {};
Object.keys(components.material.schema).forEach(addMapping);
Object.keys(shaders.standard.schema).forEach(addMapping);

function addMapping (prop) {
  // To hyphenated.
  var htmlAttrName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
  if (prop === 'fog') { htmlAttrName = 'material-fog'; }
  if (prop === 'visible') { htmlAttrName = 'material-visible'; }
  materialMappings[htmlAttrName] = 'material.' + prop;
}

module.exports = function getMeshMixin () {
  return {
    defaultComponents: {material: {}},
    mappings: utils.extend({}, materialMappings)
  };
};