FurnitureService.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. import VectorType from "../enum/VectorType.js";
  2. import Furniture from "../Geometry/Furniture.js";
  3. import { dataService } from "./DataService.js";
  4. // import { Furnitures } from "../enum/UIEvents";
  5. export class FurnitureService {
  6. constructor() {
  7. this.$app = null;
  8. this.furnitures = null;
  9. }
  10. fetchFurnitures() {
  11. if (this.furnitures) {
  12. return;
  13. }
  14. this.furnitures = {};
  15. for (let key in Furnitures) {
  16. // 测试代码
  17. if (key != Furnitures.TV) {
  18. continue;
  19. }
  20. this.$app.store
  21. .getAppImage(`images/cad/furnitures/${Furnitures[key]}.svg`)
  22. .then((img) => {
  23. this.furnitures[Furnitures[key]] = img;
  24. console.log(this.furnitures);
  25. })
  26. .catch((err) => {
  27. console.error(err);
  28. });
  29. }
  30. }
  31. // 新建component
  32. createFurniture(position, geoType, vectorId) {
  33. let furniture = null;
  34. switch (geoType) {
  35. case VectorType.TV:
  36. furniture = new Furniture(position, vectorId, VectorType.TV);
  37. break;
  38. case VectorType.CombinationSofa:
  39. furniture = new Furniture(
  40. position,
  41. vectorId,
  42. VectorType.CombinationSofa
  43. );
  44. break;
  45. case VectorType.SingleSofa:
  46. furniture = new Furniture(position, vectorId, VectorType.SingleSofa);
  47. break;
  48. case VectorType.TeaTable:
  49. furniture = new Furniture(position, vectorId, VectorType.TeaTable);
  50. break;
  51. case VectorType.Carpet:
  52. furniture = new Furniture(position, vectorId, VectorType.Carpet);
  53. break;
  54. case VectorType.Plant:
  55. furniture = new Furniture(position, vectorId, VectorType.Plant);
  56. break;
  57. case VectorType.DiningTable:
  58. furniture = new Furniture(position, vectorId, VectorType.DiningTable);
  59. break;
  60. case VectorType.DoubleBed:
  61. furniture = new Furniture(position, vectorId, VectorType.DoubleBed);
  62. break;
  63. case VectorType.SingleBed:
  64. furniture = new Furniture(position, vectorId, VectorType.SingleBed);
  65. break;
  66. case VectorType.Wardrobe:
  67. furniture = new Furniture(position, vectorId, VectorType.Wardrobe);
  68. break;
  69. case VectorType.Dresser:
  70. furniture = new Furniture(position, vectorId, VectorType.Dresser);
  71. break;
  72. case VectorType.BedsideCupboard:
  73. furniture = new Furniture(
  74. position,
  75. vectorId,
  76. VectorType.BedsideCupboard
  77. );
  78. break;
  79. case VectorType.Pillow:
  80. furniture = new Furniture(position, vectorId, VectorType.Pillow);
  81. break;
  82. case VectorType.GasStove:
  83. furniture = new Furniture(position, vectorId, VectorType.GasStove);
  84. break;
  85. case VectorType.Cupboard:
  86. furniture = new Furniture(position, vectorId, VectorType.Cupboard);
  87. break;
  88. case VectorType.Bathtub:
  89. furniture = new Furniture(position, vectorId, VectorType.Bathtub);
  90. break;
  91. case VectorType.Closestool:
  92. furniture = new Furniture(position, vectorId, VectorType.Closestool);
  93. break;
  94. case VectorType.Washstand:
  95. furniture = new Furniture(position, vectorId, VectorType.Washstand);
  96. break;
  97. case VectorType.Desk:
  98. furniture = new Furniture(position, vectorId, VectorType.Desk);
  99. break;
  100. case VectorType.BalconyChair:
  101. furniture = new Furniture(position, vectorId, VectorType.BalconyChair);
  102. break;
  103. case VectorType.Elevator:
  104. furniture = new Furniture(position, vectorId, VectorType.Elevator);
  105. break;
  106. }
  107. dataService.addFurniture(furniture);
  108. return furniture;
  109. }
  110. isFurniture(geoType) {
  111. switch (geoType) {
  112. case VectorType.TV:
  113. return true;
  114. case VectorType.CombinationSofa:
  115. return true;
  116. case VectorType.SingleSofa:
  117. return true;
  118. case VectorType.TeaTable:
  119. return true;
  120. case VectorType.Carpet:
  121. return true;
  122. case VectorType.Plant:
  123. return true;
  124. case VectorType.DiningTable:
  125. return true;
  126. case VectorType.DoubleBed:
  127. return true;
  128. case VectorType.SingleBed:
  129. return true;
  130. case VectorType.Wardrobe:
  131. return true;
  132. case VectorType.Dresser:
  133. return true;
  134. case VectorType.BedsideCupboard:
  135. return true;
  136. case VectorType.Pillow:
  137. return true;
  138. case VectorType.GasStove:
  139. return true;
  140. case VectorType.Cupboard:
  141. return true;
  142. case VectorType.Bathtub:
  143. return true;
  144. case VectorType.Closestool:
  145. return true;
  146. case VectorType.Washstand:
  147. return true;
  148. case VectorType.Desk:
  149. return true;
  150. case VectorType.BalconyChair:
  151. return true;
  152. case VectorType.Elevator:
  153. return true;
  154. }
  155. return false;
  156. }
  157. setFurnitureInfo(furnitureInfo) {
  158. let furniture = dataService.getFurniture(furnitureInfo.vectorId);
  159. furniture.vectorId = furnitureInfo.vectorId;
  160. furniture.angle = furnitureInfo.angle;
  161. furniture.center = JSON.parse(JSON.stringify(furnitureInfo.center));
  162. }
  163. getFurniture(name) {
  164. return this.furnitures[name];
  165. }
  166. }
  167. const furnitureService = new FurnitureService();
  168. export { furnitureService };