import VectorType from "../enum/VectorType.js"; import Furniture from "../Geometry/Furniture.js"; import { dataService } from "./DataService.js"; // import { Furnitures } from "../enum/UIEvents"; export class FurnitureService { constructor() { this.$app = null; this.furnitures = null; } fetchFurnitures() { if (this.furnitures) { return; } this.furnitures = {}; for (let key in Furnitures) { // 测试代码 if (key != Furnitures.TV) { continue; } this.$app.store .getAppImage(`images/cad/furnitures/${Furnitures[key]}.svg`) .then((img) => { this.furnitures[Furnitures[key]] = img; console.log(this.furnitures); }) .catch((err) => { console.error(err); }); } } // 新建component createFurniture(position, geoType, vectorId) { let furniture = null; switch (geoType) { case VectorType.TV: furniture = new Furniture(position, vectorId, VectorType.TV); break; case VectorType.CombinationSofa: furniture = new Furniture( position, vectorId, VectorType.CombinationSofa ); break; case VectorType.SingleSofa: furniture = new Furniture(position, vectorId, VectorType.SingleSofa); break; case VectorType.TeaTable: furniture = new Furniture(position, vectorId, VectorType.TeaTable); break; case VectorType.Carpet: furniture = new Furniture(position, vectorId, VectorType.Carpet); break; case VectorType.Plant: furniture = new Furniture(position, vectorId, VectorType.Plant); break; case VectorType.DiningTable: furniture = new Furniture(position, vectorId, VectorType.DiningTable); break; case VectorType.DoubleBed: furniture = new Furniture(position, vectorId, VectorType.DoubleBed); break; case VectorType.SingleBed: furniture = new Furniture(position, vectorId, VectorType.SingleBed); break; case VectorType.Wardrobe: furniture = new Furniture(position, vectorId, VectorType.Wardrobe); break; case VectorType.Dresser: furniture = new Furniture(position, vectorId, VectorType.Dresser); break; case VectorType.BedsideCupboard: furniture = new Furniture( position, vectorId, VectorType.BedsideCupboard ); break; case VectorType.Pillow: furniture = new Furniture(position, vectorId, VectorType.Pillow); break; case VectorType.GasStove: furniture = new Furniture(position, vectorId, VectorType.GasStove); break; case VectorType.Cupboard: furniture = new Furniture(position, vectorId, VectorType.Cupboard); break; case VectorType.Bathtub: furniture = new Furniture(position, vectorId, VectorType.Bathtub); break; case VectorType.Closestool: furniture = new Furniture(position, vectorId, VectorType.Closestool); break; case VectorType.Washstand: furniture = new Furniture(position, vectorId, VectorType.Washstand); break; case VectorType.Desk: furniture = new Furniture(position, vectorId, VectorType.Desk); break; case VectorType.BalconyChair: furniture = new Furniture(position, vectorId, VectorType.BalconyChair); break; case VectorType.Elevator: furniture = new Furniture(position, vectorId, VectorType.Elevator); break; } dataService.addFurniture(furniture); return furniture; } isFurniture(geoType) { switch (geoType) { case VectorType.TV: return true; case VectorType.CombinationSofa: return true; case VectorType.SingleSofa: return true; case VectorType.TeaTable: return true; case VectorType.Carpet: return true; case VectorType.Plant: return true; case VectorType.DiningTable: return true; case VectorType.DoubleBed: return true; case VectorType.SingleBed: return true; case VectorType.Wardrobe: return true; case VectorType.Dresser: return true; case VectorType.BedsideCupboard: return true; case VectorType.Pillow: return true; case VectorType.GasStove: return true; case VectorType.Cupboard: return true; case VectorType.Bathtub: return true; case VectorType.Closestool: return true; case VectorType.Washstand: return true; case VectorType.Desk: return true; case VectorType.BalconyChair: return true; case VectorType.Elevator: return true; } return false; } setFurnitureInfo(furnitureInfo) { let furniture = dataService.getFurniture(furnitureInfo.vectorId); furniture.vectorId = furnitureInfo.vectorId; furniture.angle = furnitureInfo.angle; furniture.center = JSON.parse(JSON.stringify(furnitureInfo.center)); } getFurniture(name) { return this.furnitures[name]; } } const furnitureService = new FurnitureService(); export { furnitureService };