-
Amanda Ghassaei authoredAmanda Ghassaei authored
CompositeEditorLattice.js 3.59 KiB
/**
* Created by aghassaei on 6/10/15.
*/
define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'threeModel', 'latticeBase', 'materials'],
function(_, Backbone, appState, globals, plist, THREE, three, LatticeBase, materials){
function makeRandomColor(){
return '#' + Math.floor(Math.random()*16777215).toString(16);
}
var compositeNum = 1;
var CompositeEditorLattice = LatticeBase.extend({
defaults: _.extend(LatticeBase.prototype.defaults, {
name: "",
color: null,
}),
__initialize: function(options, callback){
if (!options.id || options.id == "") this.set("id", "super" + this.cid);
if (!options.color || options.color == "") this.set("color", makeRandomColor(), {silent:true});
if (callback) callback(this);
},
//3d ui
addHighlightableCell: function(cell){
three.addCompositeCell(cell);
},
removeHighlightableCell: function(cell){
three.removeCompositeCell(cell);
},
getHighlightableCells: function(){
return three.getCompositeCells();
},
//composite events
_changeRandomColor: function(){
this.set("color", makeRandomColor());
},
makeNewCompositeMaterial: function(dimensions){
if (this.get("numCells") == 0) {
console.warn("no cells in this composite");
return;
}
var id = this.get("id");
materials.setMaterial(id, this.toJSONForSave(dimensions));
},
toJSONForSave: function(dimensions){
var name = this.get("name");
if (name == "") name = "Composite Material " + compositeNum++;
if (dimensions) var _dimensions = dimensions.clone();
var cellsMin = this.get("cellsMin");