diff options
| -rw-r--r-- | public/assets/javascripts/ui/blueprint/BlueprintScaler.js | 29 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/lib/AnimatedView.js | 31 | ||||
| -rw-r--r-- | views/blueprint.ejs | 33 | ||||
| -rw-r--r-- | views/builder.ejs | 16 | ||||
| -rw-r--r-- | views/controls/blueprint/editor.ejs | 43 | ||||
| -rw-r--r-- | views/modal.ejs | 1 | ||||
| -rw-r--r-- | views/partials/scripts.ejs | 1 |
7 files changed, 93 insertions, 61 deletions
diff --git a/public/assets/javascripts/ui/blueprint/BlueprintScaler.js b/public/assets/javascripts/ui/blueprint/BlueprintScaler.js index c393cfb..741f4fb 100644 --- a/public/assets/javascripts/ui/blueprint/BlueprintScaler.js +++ b/public/assets/javascripts/ui/blueprint/BlueprintScaler.js @@ -1,5 +1,5 @@ -var BlueprintScaler = ModalFormView.extend({ +var BlueprintScaler = ModalFormView.extend(AnimatedView.prototype).extend({ el: ".blueprintScaler", action: "/api/media/scale", @@ -20,7 +20,7 @@ var BlueprintScaler = ModalFormView.extend({ this.$units = this.$("[name=blueprint-units]") this.$save = this.$("#saveBlueprint") - this.map = map = new Map ({ + this.map = new Map ({ type: "ortho", el: this.$blueprintMap.get(0), width: window.innerWidth, @@ -30,14 +30,12 @@ var BlueprintScaler = ModalFormView.extend({ zoom_max: 1, }) this.lineTool = new LineTool - map.ui.add_tool("line", this.lineTool) - map.ui.set_tool("line") + this.map.ui.add_tool("line", this.lineTool) + this.map.ui.set_tool("line") scene = scene || { camera: { x: 0, y: 0, z: 0 } } this.floorplan = new MX.Image () - - this.animating = false }, showBlueprintUpload: function(){ @@ -50,27 +48,16 @@ var BlueprintScaler = ModalFormView.extend({ if (!! media.units) { this.parent.useFloorplan(media) this.hide() + this.stopAnimating() return } this.floorplan.load({ media: media, keepImage: true }) - if (! this.animating) { - this.animating = true - this.animate() - } + this.startAnimating() }, - animate: function(t){ - requestAnimationFrame(this.animate.bind(this)) - - if (! this.animating) return - - var dt = t - this.last_t - this.last_t = t - - if (! t) return - + animate: function(t, dt){ this.map.update(t) this.map.draw.ctx.save() @@ -147,7 +134,7 @@ var BlueprintScaler = ModalFormView.extend({ }, success: function(){ - this.animating = false + this.stopAnimating() this.parent.useFloorplan(this.media) this.hide() }, diff --git a/public/assets/javascripts/ui/lib/AnimatedView.js b/public/assets/javascripts/ui/lib/AnimatedView.js new file mode 100644 index 0000000..3c50b0a --- /dev/null +++ b/public/assets/javascripts/ui/lib/AnimatedView.js @@ -0,0 +1,31 @@ +var AnimatedView = View.extend({ + + _animating: false, + last_t: 0, + + startAnimating: function(){ + if (this._animating) return + this._animating = true + this._animate() + }, + + stopAnimating: function(){ + this._animating = false + }, + + _animate: function(t){ + if (! this._animating) return + + requestAnimationFrame(this._animate.bind(this)) + + var dt = t - this.last_t + this.last_t = t + + if (! t) return + + this.animate(t, dt) + }, + + animate: function(t, dt){}, + +})
\ No newline at end of file diff --git a/views/blueprint.ejs b/views/blueprint.ejs new file mode 100644 index 0000000..371d66f --- /dev/null +++ b/views/blueprint.ejs @@ -0,0 +1,33 @@ +<!doctype html> +<html> +<head> + <title>VValls</title> + [[ include partials/meta ]] +</head> +<body class="editing loading"> + + <div id="scene"></div> + + <div class="rapper"> + [[ include partials/header ]] + + <div id="builderView"> + [[ include controls/builder/info ]] + [[ include controls/builder/toolbar ]] + [[ include controls/builder/settings ]] + [[ include controls/blueprint/editor ]] + </div> + + <div id="hud"> + <div id="map" style="display: block"> + </div> + </div> + </div> + + [[ include partials/confirm-modal ]] + [[ include projects/layouts-modal ]] + [[ include partials/sign-in ]] + +</body> +[[ include partials/scripts ]] +</html> diff --git a/views/builder.ejs b/views/builder.ejs index 0ba4238..6a31e22 100644 --- a/views/builder.ejs +++ b/views/builder.ejs @@ -17,22 +17,6 @@ [[ include controls/builder/settings ]] </div> - <!-- - <div id="minimap" class="vvbox"> - <span class="el"></span> - </div> - - <select id="palette"> - <option>colors</option> - <option>redblue</option> - <option>gray</option> - <option selected>bone</option> - <option>alpha</option> - <option>white</option> - <option>black</option> - </select> - --> - <div id="hud"> <div id="map" style="display: block"> </div> diff --git a/views/controls/blueprint/editor.ejs b/views/controls/blueprint/editor.ejs index 77c958a..e18f501 100644 --- a/views/controls/blueprint/editor.ejs +++ b/views/controls/blueprint/editor.ejs @@ -67,7 +67,7 @@ body { </div> </div> -<div class="mediaDrawer fixed animate active blueprintEditor"> +<div class="mediaDrawer fixed animate active blueprintScaler"> <div class="box"> <div class="blueprintUpload"> @@ -90,30 +90,27 @@ body { </div> </div> - <div class="blueprintScaler"> - <div class="blueprintInfo vvbox"> - Please tell us the scale of your blueprint. - Click two corners of a wall, and then enter how long the wall is. - <br><br> - You can also <span class="uploadNewBlueprint">upload another blueprint</span>. - <br><br> + <div class="blueprintInfo vvbox"> + Please tell us the scale of your blueprint. + Click two corners of a wall, and then enter how long the wall is. + <br><br> + You can also <span class="uploadNewBlueprint">upload another blueprint</span>. + <br><br> - <form> - <div class="setting number"> - <label for="blueprint-dimensions">length</label> - <input type="text" class="units" name="blueprint-dimensions" id="blueprint-dimensions"> - <select id="blueprint-units" name="blueprint-units"> - <option value="ft">feet</option> - <option value="m">meters</option> - </select> - </div> - <button id="saveBlueprint">Save</button> - </form> - </div> + <form> + <div class="setting number"> + <label for="blueprint-dimensions">length</label> + <input type="text" class="units" name="blueprint-dimensions" id="blueprint-dimensions"> + <select id="blueprint-units" name="blueprint-units"> + <option value="ft">feet</option> + <option value="m">meters</option> + </select> + </div> + <button id="saveBlueprint">Save</button> + </form> + </div> - <div id="blueprintMap"> - </div> - + <div id="blueprintMap"> </div> </div> diff --git a/views/modal.ejs b/views/modal.ejs index 775ba88..dfc5573 100644 --- a/views/modal.ejs +++ b/views/modal.ejs @@ -10,7 +10,6 @@ <div style="height: 70%; clear: both;" id="content"></div> - [[ include controls/blueprint/editor ]] [[ include partials/confirm-modal ]] [[ include partials/sign-in ]] [[ include projects/layouts-modal ]] diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index a0222b5..e0024a4 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -102,6 +102,7 @@ <script type="text/javascript" src="/assets/javascripts/ui/lib/ModalView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/FormView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/UploadView.js"></script> +<script type="text/javascript" src="/assets/javascripts/ui/lib/AnimatedView.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/AlertModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/ConfirmModal.js"></script> <script type="text/javascript" src="/assets/javascripts/ui/lib/ErrorModal.js"></script> |
