Bläddra i källkod

upload project

Victor Luiz Domingues 5 år sedan
incheckning
2679d18cce
6 ändrade filer med 212 tillägg och 0 borttagningar
  1. 88 0
      .gitignore
  2. 0 0
      README.md
  3. 72 0
      app/app.js
  4. 23 0
      app/components/line.js
  5. 18 0
      index.html
  6. 11 0
      package-lock.json

+ 88 - 0
.gitignore

@@ -0,0 +1,88 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+
+# next.js build output
+.next
+
+# nuxt.js build output
+.nuxt
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/

+ 0 - 0
README.md


+ 72 - 0
app/app.js

@@ -0,0 +1,72 @@
+var app = (function() {
+  var width = window.innerWidth;
+  var height = window.innerHeight;
+  var layers = [];
+  var _layer = [];
+
+  var stage = new Konva.Stage({
+    container: "container",
+    width: width,
+    height: height
+  });
+
+  var screen = {
+    width: width,
+    height: height
+  };
+
+  function createLayer() {
+    var sequence = 0;
+    if (layers == null || layers.length == 0) {
+      sequence++;
+    } else {
+      sequence = layers.length + 1;
+    }
+    var layer = { sequence: sequence, layer: new Konva.Layer() };
+    layers.push(layer);
+    if (currentLayer() == undefined && _layer.length == 0) {
+      _layer = [];
+      _layer.push(layer);
+    }
+    return layer;
+  }
+
+  function bootstrap() {
+    createLayer();
+    configureDragAndDrop();
+    layer = currentLayer();
+  }
+
+  function currentLayer() {
+    if (_layer[0] == undefined) return undefined;
+    return _layer[0].layer;
+  }
+
+  function configureDragAndDrop() {
+    stage.on("click tap", function(e) {
+      if (e.target === stage) {
+        stage.find("Transformer").destroy();
+        layer.draw();
+        return;
+      }
+
+      stage.find("Transformer").destroy();
+
+      var tr = new Konva.Transformer({
+        anchorStrokeWidth: 2
+      });
+      layer.add(tr);
+      tr.attachTo(e.target);
+      layer.draw();
+    });
+  }
+
+  return {
+    stage: stage,
+    currentLayer: currentLayer,
+    createLayer: createLayer,
+    screen: screen,
+    bootstrap: bootstrap,
+    layers: layers
+  };
+})();

+ 23 - 0
app/components/line.js

@@ -0,0 +1,23 @@
+var line = (function() {
+  // dashed line
+
+  function drawLine() {
+    var ln = new Konva.Line({
+      points: [10, 10, 70, 70],
+      stroke: "grey",
+      strokeWidth: 2,
+      lineJoin: "round",
+      draggable: true,
+      strokeScaleEnabled : false
+    });
+    
+    var layer = app.currentLayer();
+    layer.add(ln);
+    app.stage.add(layer);
+
+    app.stage.draw();
+  }
+  return {
+    drawLine: drawLine
+  };
+})();

+ 18 - 0
index.html

@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>iGeom - Reta</title>
+
+</head>
+<body>
+    <button onclick="line.drawLine()">Desenhar linha</button>
+    <div id="container"></div>
+    <script src="https://unpkg.com/konva@3.3.3/konva.min.js"></script>
+    <script src="app/app.js"></script>
+    <script src="app/components/line.js"></script>
+    <script>app.bootstrap();</script>
+</body>
+</html>

+ 11 - 0
package-lock.json

@@ -0,0 +1,11 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "konva": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/konva/-/konva-3.3.3.tgz",
+      "integrity": "sha512-nDkFa7OVApCAohY30yoKpTMrYbbK8+p+wjYHkU+jrtKL3MhP5yCByNIrkyjca1EeP++K+2e6fslgU8kbeJNBxw=="
+    }
+  }
+}