summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/editor/LightControl.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui/editor/LightControl.js')
-rw-r--r--public/assets/javascripts/ui/editor/LightControl.js92
1 files changed, 75 insertions, 17 deletions
diff --git a/public/assets/javascripts/ui/editor/LightControl.js b/public/assets/javascripts/ui/editor/LightControl.js
index 1bd660e..84f2e58 100644
--- a/public/assets/javascripts/ui/editor/LightControl.js
+++ b/public/assets/javascripts/ui/editor/LightControl.js
@@ -6,6 +6,8 @@ var LightControl = View.extend({
"mousedown": "stopPropagation",
"click #wall-color": "editWallColor",
"click #outline-color": "editOutlineColor",
+ "click #floor-color": "editFloorColor",
+ "click #ceiling-color": "editCeilingColor",
"click label": "clickLabel",
"input #shadow-control": "updateShadow",
"input #brightness-control": "updateBrightness",
@@ -17,15 +19,32 @@ var LightControl = View.extend({
this.colorPicker = new LabColorPicker(this, 180, 180)
this.$el.prepend( this.colorPicker.canvas )
+ this.$swatches = this.$(".swatch")
+ this.$labels = this.$(".swatch + label")
this.$wallSwatch = this.$("#wall-color")
this.$outlineSwatch = this.$("#outline-color")
+ this.$floorSwatch = this.$("#floor-color")
+ this.$ceilingSwatch = this.$("#ceiling-color")
this.$brightnessControl = this.$("#brightness-control")
-
- this.setMode("wall")
-
- this.setWallColor([255,255,255], false)
- this.setOutlineColor([0,0,0])
},
+
+ load: function(data){
+ this.setWallColor(data.wall, false)
+ this.setOutlineColor(data.outline)
+ this.setFloorColor(data.floor)
+ this.setCeilingColor(data.ceiling)
+ this.setMode("wall")
+ },
+
+ loadDefaults: function(){
+ var colors = {
+ wall: app.defaults.wallColor.slice(),
+ outline: app.defaults.outlineColor.slice(),
+ floor: app.defaults.floorColor.slice(),
+ ceiling: app.defaults.ceilingColor.slice(),
+ }
+ this.load(colors)
+ },
toggle: function(state){
this.$el.toggleClass("active", state);
@@ -48,27 +67,39 @@ var LightControl = View.extend({
case "outline":
this.setOutlineColor(rgb)
break
+ case "floor":
+ this.setFloorColor(rgb)
+ break
+ case "ceiling":
+ this.setCeilingColor(rgb)
+ break
}
},
- wallColor: [255,255,255],
- outlineColor: [0,0,0],
-
setMode: function (mode) {
var color, brightness
this.mode = mode
+ this.$swatches.removeClass("selected")
+ this.$labels.removeClass("selected")
switch (mode) {
case "wall":
this.$wallSwatch.addClass("selected")
- this.$outlineSwatch.removeClass("selected")
color = this.wallColor
break
case "outline":
this.$outlineSwatch.addClass("selected")
- this.$wallSwatch.removeClass("selected")
color = this.outlineColor
break
+ case "floor":
+ this.$floorSwatch.addClass("selected")
+ color = this.floorColor
+ break
+ case "ceiling":
+ this.$ceilingSwatch.addClass("selected")
+ color = this.ceilingColor
+ break
}
+ this.$(".swatch.selected").next("label").addClass("selected")
this.labColor = this.colorPicker.load(color)
this.$brightnessControl.val( this.labColor[0] )
},
@@ -83,23 +114,51 @@ var LightControl = View.extend({
this.setMode("outline")
},
- setWallColor: function(rgb, repaint){
+ editFloorColor: function(){
+ this.setMode("floor")
+ },
+
+ editCeilingColor: function(){
+ this.setMode("ceiling")
+ },
+
+ setWallColor: function(rgb, repaint){
repaint = typeof repaint != "undefined" ? repaint : true
var rgbColor = rgb_string(rgb)
- var rgbaColor = rgba_string(rgb, 0.95)
- this.wallColor = rgb
+ var rgbaColor = rgba_string(rgb, app.defaults.wallOpacity)
+ Walls.colors.wall = this.wallColor = rgb
this.$wallSwatch.css("background-color", rgbColor)
- Rooms.walls.forEach(function(wall){
+ Walls.forEach(function(wall){
wall.outline(rgbaColor, null)
})
},
+ setFloorColor: function(rgb, repaint){
+ repaint = typeof repaint != "undefined" ? repaint : true
+ var rgbColor = rgb_string(rgb)
+ Walls.colors.floor = this.floorColor = rgb
+ this.$floorSwatch.css("background-color", rgbColor)
+ Rooms.forEach(function(room){
+ room.setFloorColor(rgbColor)
+ })
+ },
+
+ setCeilingColor: function(rgb, repaint){
+ repaint = typeof repaint != "undefined" ? repaint : true
+ var rgbColor = rgb_string(rgb)
+ Walls.colors.ceiling = this.ceilingColor = rgb
+ this.$ceilingSwatch.css("background-color", rgbColor)
+ Rooms.forEach(function(room){
+ room.setCeilingColor(rgbColor)
+ })
+ },
+
setOutlineColor: function(rgb){
repaint = typeof repaint != "undefined" ? repaint : true
var rgbColor = rgb_string(rgb)
- this.outlineColor = rgb
+ Walls.colors.outline = this.outlineColor = rgb
this.$outlineSwatch.css("background-color", rgbColor)
- Rooms.walls.forEach(function(wall){
+ Walls.forEach(function(wall){
wall.outline(null, rgbColor)
})
},
@@ -170,7 +229,6 @@ var LabColorPicker = function (parent, w, h) {
var y = mix( norm(Lab[2], b_range[0], b_range[1]), 0, hh )
// move the cursor
this.setLab(Lab)
- console.log(rgba)
return Lab
}
this.paint = function() {