From 84332ab81c1b445195f1d9be8bbeae0725c8e758 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Tue, 6 Mar 2012 10:58:25 -0800 Subject: Squashed commit of preload-fix into Master - Requiring all the previously pre-loaded files - RDGE, Codemirror and gl-matrix are not included via a script tag. Signed-off-by: Valerio Virgillito <valerio@motorola.com> --- js/models/materials-model.js | 225 +++++++++++++++++++++++++++++++++++++++++++ js/models/properties-3d.js | 24 ++--- 2 files changed, 237 insertions(+), 12 deletions(-) create mode 100755 js/models/materials-model.js (limited to 'js/models') diff --git a/js/models/materials-model.js b/js/models/materials-model.js new file mode 100755 index 00000000..d8fb4016 --- /dev/null +++ b/js/models/materials-model.js @@ -0,0 +1,225 @@ +/* <copyright> +This file contains proprietary software owned by Motorola Mobility, Inc.<br/> +No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> +(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +</copyright> */ +/////////////////////////////////////////////////////////////////////// +// MaterialsLibrary module -- Contains an array of GLMaterials. +/////////////////////////////////////////////////////////////////////// +var Montage = require("montage/core/core").Montage, + Component = require("montage/ui/component").Component, + AppModel = require("js/models/app-model").AppModel; + +var MaterialParser = require("js/lib/rdge/materials/material-parser").MaterialParser; +var FlatMaterial = require("js/lib/rdge/materials/flat-material").FlatMaterial; +var LinearGradientMaterial = require("js/lib/rdge/materials/linear-gradient-material").LinearGradientMaterial; +var RadialGradientMaterial = require("js/lib/rdge/materials/radial-gradient-material").RadialGradientMaterial; +var BumpMetalMaterial = require("js/lib/rdge/materials/bump-metal-material").BumpMetalMaterial; +var UberMaterial = require("js/lib/rdge/materials/uber-material").UberMaterial; +var RadialBlurMaterial = require("js/lib/rdge/materials/radial-blur-material").RadialBlurMaterial; +var PlasmaMaterial = require("js/lib/rdge/materials/plasma-material").PlasmaMaterial; +var PulseMaterial = require("js/lib/rdge/materials/pulse-material").PulseMaterial; +var TunnelMaterial = require("js/lib/rdge/materials/tunnel-material").TunnelMaterial; +var ReliefTunnelMaterial = require("js/lib/rdge/materials/relief-tunnel-material").ReliefTunnelMaterial; +var SquareTunnelMaterial = require("js/lib/rdge/materials/square-tunnel-material").SquareTunnelMaterial; +var FlyMaterial = require("js/lib/rdge/materials/fly-material").FlyMaterial; +var WaterMaterial = require("js/lib/rdge/materials/water-material").WaterMaterial; +var ZInvertMaterial = require("js/lib/rdge/materials/z-invert-material").ZInvertMaterial; +var DeformMaterial = require("js/lib/rdge/materials/deform-material").DeformMaterial; +var StarMaterial = require("js/lib/rdge/materials/star-material").StarMaterial; +var TwistMaterial = require("js/lib/rdge/materials/twist-material").TwistMaterial; +var JuliaMaterial = require("js/lib/rdge/materials/julia-material").JuliaMaterial; +var KeleidoscopeMaterial = require("js/lib/rdge/materials/keleidoscope-material").KeleidoscopeMaterial; +var MandelMaterial = require("js/lib/rdge/materials/mandel-material").MandelMaterial; + + +exports.MaterialsModel = Montage.create(Component, { + + hasTemplate: { + value: false + }, + + deserializedFromTemplate: { + value: function() { + // Load all the materials + this.addMaterial(new FlatMaterial()); + this.addMaterial(new LinearGradientMaterial()); + this.addMaterial(new RadialGradientMaterial()); + this.addMaterial(new BumpMetalMaterial()); + this.addMaterial(new UberMaterial()); + this.addMaterial(new RadialBlurMaterial()); + this.addMaterial(new PlasmaMaterial()); + this.addMaterial(new PulseMaterial()); + this.addMaterial(new TunnelMaterial()); + this.addMaterial(new ReliefTunnelMaterial()); + this.addMaterial(new SquareTunnelMaterial()); + this.addMaterial(new FlyMaterial()); + this.addMaterial(new WaterMaterial()); + this.addMaterial(new ZInvertMaterial()); + this.addMaterial(new DeformMaterial()); + this.addMaterial(new StarMaterial()); + this.addMaterial(new TwistMaterial()); + this.addMaterial(new JuliaMaterial()); + this.addMaterial(new KeleidoscopeMaterial()); + this.addMaterial(new MandelMaterial()); + } + }, + + _materials : { + value: AppModel.materials + }, + + materials : { + get: function() { + return this._materials; + } + }, + + addMaterial: { + value: function (material) { + this._materials.push(material); + } + }, + + addMaterialAt: { + value: function (material, index) { + this._materials.splice(index, 0, material); + } + }, + + removeMaterialAt: { + value: function (index) { + return this._materials.splice(index, 1); + } + }, + + removeMaterial: { + value: function (materialName) { + var index = this.getIndexOfMaterial(materialName); + if(index !== -1) { + return this.removeMaterialAt(index); + } + } + }, + + getMaterialAt: { + value: function (index) { + return this._materials[index]; + } + }, + + getMaterial: { + value: function (materialName) { + var index = this.getIndexOfMaterial(materialName); + if(index !== -1) { + return this._materials[index]; + } + } + }, + + getIndexOfMaterial: { + value: function (materialName) { + var len = this._materials.length; + for(var i=0; i<len; i++) { + var material = this._materials[i]; + if(material.getName() === materialName) { + return i; + } + } + + return -1; + } + }, + + clearAllMaterials: { + value: function() { + this._materials = []; + } + }, + + exportFlatMaterial: { + value: function() { + return new FlatMaterial(); + } + }, + + exportMaterials: { + value: function() { + + var exportStr = "MaterialLibrary: \n"; + + var nMats = this._materials.length; + + for (var i=0; i<nMats; i++) { + var material = this._materials[i]; + exportStr += material.export(); + } + + exportStr += "endMatLib\n"; + return exportStr; + } + }, + + importMaterials: { + value: function( importStr ) { + // we replace allmaterials, so remove anything + // that is currently there. + this.clearAllMaterials(); + + var pu = new MaterialParser( importStr ); + + var type = pu.nextValue( "material: ", "\n", false ); + + while (type) { + + var mat = null; + + switch (type) + { + case "flat": mat = new FlatMaterial(); break; + case "linearGradient": mat = new LinearGradientMaterial(); break; + case "radialGradient": mat = new RadialGradientMaterial(); break; + case "bumpMetal": mat = new BumpMetalMaterial(); break; + case "uber": mat = new UberMaterial(); break; + + case "taper": mat = new TaperMaterial(); break; + case "twistVert": mat = new TwistVertMaterial(); break; + case "radialBlur": mat = new RadialBlurMaterial(); break; + case "plasma": mat = new PlasmaMaterial(); break; + case "pulse": mat = new PulseMaterial(); break; + case "tunnel": mat = new TunnelMaterial(); break; + case "reliefTunnel": mat = new ReliefTunnelMaterial(); break; + case "squareTunnel": mat = new SquareTunnelMaterial(); break; + case "fly": mat = new FlyMaterial(); break; + case "water": mat = new WaterMaterial(); break; + case "zinvert": mat = new ZInvertMaterial(); break; + case "deform": mat = new DeformMaterial(); break; + case "star": mat = new StarMaterial(); break; + case "twist": mat = new TwistMaterial(); break; + case "julia": mat = new JuliaMaterial(); break; + case "keleidoscope": mat = new KeleidoscopeMaterial(); break; + case "mandel": mat = new MandelMaterial(); break; + + + default: + throw new Error( "Unrecognized material type: " + type ); + pu.advancePastToken( "endMaterial\n" ); + break; + } + + if (mat) { + importStr = mat.import( importStr ); + pu._strBuffer = importStr; + this.addMaterial( mat ); + } + + type = pu.nextValue( "material: ", "\n", false ); + } + + return pu._strBuffer; + } + } + +}); + + diff --git a/js/models/properties-3d.js b/js/models/properties-3d.js index cf4a045f..0f82dc48 100755 --- a/js/models/properties-3d.js +++ b/js/models/properties-3d.js @@ -9,9 +9,9 @@ var Montage = require("montage/core/core").Montage, exports.Properties3D = Montage.create(Component, { - // m_upVector : {value : Vector.create( [0,1,0] ), enumerable: true}, - // m_targetPos : {value : Vector.create( [0,0,0] ), enumerable: true}, - // m_objStartPos : {value : Vector.create( [0,0,0] ), enumerable: true}, + // m_upVector : {value : [0,1,0], enumerable: true}, + // m_targetPos : {value : [0,0,0], enumerable: true}, + // m_objStartPos : {value : [0,0,0], enumerable: true}, m_azimuth : {value : 0.0, enumerable: true}, m_altitude : {value : 0.0, enumerable: true}, @@ -50,12 +50,12 @@ exports.Properties3D = Montage.create(Component, { this.m_transformCtr = null; this.perspectiveDist = 1400; -// this.m_upVector = Vector.create( [0,1,0] ); -// this.m_viewDir = Vector.create( [0,0,1] ); -// this.m_endUpVector = Vector.create( [0,1,0] ); +// this.m_upVector = [0,1,0]; +// this.m_viewDir = [0,0,1]; +// this.m_endUpVector = [0,1,0]; -// this.m_targetPos = Vector.create( [0,0,0] ); -// this.m_objStartPos = Vector.create( [0,0,0] ); +// this.m_targetPos = [0,0,0]; +// this.m_objStartPos = [0,0,0]; // var mat = this.application.ninja.stage.stageDeps.viewUtils.getMatrixFromElement(elt).slice(0); // var elt3DInfo = MathUtils.decomposeMatrix2(mat); @@ -79,8 +79,8 @@ exports.Properties3D = Montage.create(Component, { ResetRotationValues : { value : function() { -// this.m_upVector = Vector.create( [0,1,0] ); -// this.m_viewDir = Vector.create( [0,0,1] ); +// this.m_upVector = [0,1,0]; +// this.m_viewDir = [0,0,1]; this.m_azimuth = 0.0; this.m_altitude = 0.0; @@ -89,13 +89,13 @@ exports.Properties3D = Montage.create(Component, { this.m_endAltitude = 0.0; this.m_transformCtr = null; -// this.m_targetPos = Vector.create( [0,0,0] ); +// this.m_targetPos = [0,0,0]; } }, ResetTranslationValues : { value : function() { -// this.m_objStartPos = Vector.create( [0,0,0] ); +// this.m_objStartPos = [0,0,0]; this.perspectiveDist = 1400; } } -- cgit v1.2.3