point.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. var point = (function() {
  2. // dashed line
  3. var tool = {};
  4. var states = ["center"];
  5. var state = undefined;
  6. var points = [0, 0];
  7. var labels = [
  8. "a",
  9. "b",
  10. "c",
  11. "d",
  12. "e",
  13. "f",
  14. "g",
  15. "h",
  16. "i",
  17. "j",
  18. "k",
  19. "l",
  20. "m",
  21. "n",
  22. "o",
  23. "p",
  24. "q",
  25. "r",
  26. "s",
  27. "t",
  28. "u",
  29. "v",
  30. "w",
  31. "x",
  32. "y",
  33. "z"
  34. ];
  35. var usedLabels = [];
  36. function draw() {
  37. if (state == undefined) {
  38. state = states[0];
  39. app.setStatus("Selecione o centro do Ponto");
  40. } else if (state == states[0]) {
  41. var pos = app.pos();
  42. points[0] = pos.x;
  43. points[1] = pos.y;
  44. var p = points.slice();
  45. var po = drawPoint(p[0], p[1], true);
  46. }
  47. }
  48. function bootstrap() {
  49. app.tools.push(tool);
  50. }
  51. function drawPoint(x, y, useLabel) {
  52. var label = labels[usedLabels.length];
  53. usedLabels.push(label);
  54. var layer = app.currentLayer();
  55. var group = new Konva.Group({
  56. draggable: true,
  57. resizeEnabled: false
  58. });
  59. var circle = new Konva.Circle({
  60. x: x,
  61. y: y,
  62. radius: 5,
  63. fill: "#9bc364",
  64. stroke: "#9bc364",
  65. strokeWidth: 1,
  66. strokeScaleEnabled: false,
  67. draggable: false,
  68. resizeEnabled: false,
  69. transformEnabled: false
  70. });
  71. var text = new Konva.Text({
  72. x: x + 10,
  73. y: y - 10,
  74. text: label.toUpperCase(),
  75. fontSize: 12,
  76. fontFamily: "Calibri",
  77. fill: "#434a45",
  78. draggable: false,
  79. resizeEnabled: false,
  80. transformEnabled: false
  81. });
  82. group.add(circle);
  83. if (useLabel != undefined && useLabel) {
  84. group.add(text);
  85. }
  86. layer.add(group);
  87. app.stage.draw();
  88. clearState();
  89. app.clearSelectedTool();
  90. app.setStatus("");
  91. }
  92. function click(id) {
  93. if (state == states[0]) {
  94. app.clearSelectedTool();
  95. clearState();
  96. return;
  97. }
  98. app.setSelectedTool(tool);
  99. state = states[0];
  100. app.setStatus("Selecione o centro da Ponto");
  101. }
  102. function clearState() {
  103. state = undefined;
  104. }
  105. tool = {
  106. id: "point",
  107. title: "Ponto",
  108. icon: "point",
  109. click: click,
  110. draw: draw,
  111. points: points
  112. };
  113. bootstrap();
  114. return {
  115. draw: draw,
  116. click: click
  117. };
  118. })();