@colijnit/homedecorator 259.1.6 → 259.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/plugins/core3d/items/item.d.ts +1 -0
- package/app/plugins/core3d/items/wall-objects.d.ts +1 -0
- package/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.d.ts +4 -0
- package/bundles/colijnit-homedecorator.umd.js +90 -49
- package/bundles/colijnit-homedecorator.umd.js.map +1 -1
- package/esm2015/app/core/service/presets.service.js +1 -1
- package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/door-or-window-box-measurement.js +4 -4
- package/esm2015/app/plugins/core3d/hud/on-wall-measurements.js +2 -2
- package/esm2015/app/plugins/core3d/items/base-item.js +4 -2
- package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -1
- package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -1
- package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -1
- package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -1
- package/esm2015/app/plugins/core3d/items/in-wall-floor-item.js +2 -1
- package/esm2015/app/plugins/core3d/items/item.js +43 -41
- package/esm2015/app/plugins/core3d/items/wall-objects.js +12 -2
- package/esm2015/app/plugins/core3d/service/item.service.js +3 -1
- package/esm2015/app/plugins/furniture-manager/furniture-manager/furniture-manager.component.js +7 -1
- package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +3 -1
- package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +11 -4
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +4 -1
- package/esm2015/app/plugins/threedselector/threedselector/service/third-party-model.service.js +2 -1
- package/fesm2015/colijnit-homedecorator.js +89 -49
- package/fesm2015/colijnit-homedecorator.js.map +1 -1
- package/package.json +1 -1
|
@@ -74,6 +74,7 @@ export declare class Item extends BaseItem {
|
|
|
74
74
|
endDrag(): void;
|
|
75
75
|
initObject(itemType: any, id: string, identifier: string, modelUrl: any): void;
|
|
76
76
|
getHalfSize(): Vector3;
|
|
77
|
+
protected handleRawMetadata(): void;
|
|
77
78
|
/** on is a bool */
|
|
78
79
|
protected updateHighlight(): void;
|
|
79
80
|
/** */
|
|
@@ -410,6 +410,7 @@ export declare abstract class WallItem extends Item {
|
|
|
410
410
|
updateMaterialVisibility(side?: number): void;
|
|
411
411
|
createTextureMaterial(options?: any): Promise<THREE.MeshPhongMaterial>;
|
|
412
412
|
getTexture(): Texture;
|
|
413
|
+
setScaleXYZ(x: number, y: number, z: number, recalculateHalfSize?: boolean): void;
|
|
413
414
|
protected createMaterial(side?: number, isSame?: boolean): Promise<void>;
|
|
414
415
|
protected setYPositionBasedOnElevation(): void;
|
|
415
416
|
protected addMaterialMap(material: THREE.MeshPhongMaterial, texture: Texture, flip: boolean): Promise<void>;
|
|
@@ -31,6 +31,10 @@ export declare class CustomShapeCreatorComponent implements OnInit {
|
|
|
31
31
|
selectedFace: Face;
|
|
32
32
|
textureOptions: typeof TextureEditorOptions;
|
|
33
33
|
skin: BoxSkin;
|
|
34
|
+
private _oldFloorPosition;
|
|
35
|
+
private _oldFloorElevation;
|
|
36
|
+
private _oldWallPosition;
|
|
37
|
+
private _oldWallElevation;
|
|
34
38
|
constructor(_hudService: HudService, _sceneService: SceneService, _roomService: RoomService, _itemService: ItemService, _sceneEventService: SceneEventService, _messageBusService: MessageBusService);
|
|
35
39
|
ngOnInit(): void;
|
|
36
40
|
setName(name: string): void;
|
|
@@ -2409,7 +2409,9 @@
|
|
|
2409
2409
|
}
|
|
2410
2410
|
};
|
|
2411
2411
|
BaseItem.prototype.setYPositionBasedOnElevation = function () {
|
|
2412
|
-
|
|
2412
|
+
if (this.elevation) {
|
|
2413
|
+
this.position.y = this.elevation;
|
|
2414
|
+
}
|
|
2413
2415
|
};
|
|
2414
2416
|
BaseItem.prototype.getHalfSizeWithoutScale = function () {
|
|
2415
2417
|
if (this.children.length < 1) {
|
|
@@ -2487,46 +2489,9 @@
|
|
|
2487
2489
|
_this.addChild(child);
|
|
2488
2490
|
});
|
|
2489
2491
|
}
|
|
2490
|
-
if (rawMetadata && rawMetadata.scale != null) {
|
|
2491
|
-
if (_this.canScaleX || _this.canScaleY || _this.canScaleZ) {
|
|
2492
|
-
_this._shouldSetScale = true;
|
|
2493
|
-
}
|
|
2494
|
-
else {
|
|
2495
|
-
_this.scaleGeometry(rawMetadata.scale.x, rawMetadata.scale.y, rawMetadata.scale.z);
|
|
2496
|
-
}
|
|
2497
|
-
}
|
|
2498
|
-
if (_this.scalePercentage !== 100) {
|
|
2499
|
-
_this.scale.set(_this.scalePercentage / 100, _this.scalePercentage / 100, _this.scalePercentage / 100);
|
|
2500
|
-
}
|
|
2501
|
-
_this.calculateHalfSize();
|
|
2502
2492
|
if (_this.usePivot) {
|
|
2503
2493
|
_this.updatePivot(_this.updatePivotOnCreate);
|
|
2504
2494
|
}
|
|
2505
|
-
if (rawMetadata) {
|
|
2506
|
-
_this.initObject(rawMetadata.itemType, rawMetadata.itemId, rawMetadata.itemIdentifier, rawMetadata.modelUrl);
|
|
2507
|
-
if (rawMetadata.position) {
|
|
2508
|
-
_this.position.copy(rawMetadata.position);
|
|
2509
|
-
_this.positionSet = true;
|
|
2510
|
-
}
|
|
2511
|
-
else {
|
|
2512
|
-
_this.positionSet = false;
|
|
2513
|
-
}
|
|
2514
|
-
if (rawMetadata.elevation) {
|
|
2515
|
-
_this.elevation = rawMetadata.elevation;
|
|
2516
|
-
_this.setYPositionBasedOnElevation();
|
|
2517
|
-
}
|
|
2518
|
-
else {
|
|
2519
|
-
_this.elevation = 0;
|
|
2520
|
-
}
|
|
2521
|
-
if (rawMetadata.rotation) {
|
|
2522
|
-
if (rawMetadata.rotation instanceof THREE.Euler) {
|
|
2523
|
-
_this.rotation.set(rawMetadata.rotation.x, rawMetadata.rotation.y, rawMetadata.rotation.z);
|
|
2524
|
-
}
|
|
2525
|
-
else {
|
|
2526
|
-
_this.rotation.y = rawMetadata.rotation || 0;
|
|
2527
|
-
}
|
|
2528
|
-
}
|
|
2529
|
-
}
|
|
2530
2495
|
// this.add(new AxesHelper(2));
|
|
2531
2496
|
_this._setOriginals();
|
|
2532
2497
|
return _this;
|
|
@@ -2597,6 +2562,7 @@
|
|
|
2597
2562
|
};
|
|
2598
2563
|
Item.prototype.buildFinished = function () {
|
|
2599
2564
|
_super.prototype.buildFinished.call(this);
|
|
2565
|
+
this.handleRawMetadata();
|
|
2600
2566
|
// If it's possible to change materials then we need to store the original item
|
|
2601
2567
|
// This way when we save the project we can do a diff on the materials and store
|
|
2602
2568
|
// changes instead of the whole material
|
|
@@ -2606,9 +2572,6 @@
|
|
|
2606
2572
|
}
|
|
2607
2573
|
this.originalItem = ObjectUtils.DeepCloneObject3D(this);
|
|
2608
2574
|
}
|
|
2609
|
-
if (this._shouldSetScale) {
|
|
2610
|
-
this.setScaleXYZ(this.rawMetadata.scale.x, this.rawMetadata.scale.y, this.rawMetadata.scale.z);
|
|
2611
|
-
}
|
|
2612
2575
|
};
|
|
2613
2576
|
Item.prototype.connectorFromElement = function (selection) {
|
|
2614
2577
|
var id = this._getIdentifierFromSelection(selection);
|
|
@@ -2741,6 +2704,47 @@
|
|
|
2741
2704
|
Item.prototype.getHalfSize = function () {
|
|
2742
2705
|
return this.halfSize.clone();
|
|
2743
2706
|
};
|
|
2707
|
+
Item.prototype.handleRawMetadata = function () {
|
|
2708
|
+
var rawMetadata = this.rawMetadata;
|
|
2709
|
+
if (rawMetadata) {
|
|
2710
|
+
this.initObject(rawMetadata.itemType, rawMetadata.itemId, rawMetadata.itemIdentifier, rawMetadata.modelUrl);
|
|
2711
|
+
if (rawMetadata.rotation) {
|
|
2712
|
+
if (rawMetadata.rotation instanceof THREE.Euler) {
|
|
2713
|
+
this.rotation.set(rawMetadata.rotation.x, rawMetadata.rotation.y, rawMetadata.rotation.z);
|
|
2714
|
+
}
|
|
2715
|
+
else {
|
|
2716
|
+
this.rotation.y = rawMetadata.rotation || 0;
|
|
2717
|
+
}
|
|
2718
|
+
}
|
|
2719
|
+
if (rawMetadata.position) {
|
|
2720
|
+
this.position.copy(rawMetadata.position);
|
|
2721
|
+
this.positionSet = true;
|
|
2722
|
+
}
|
|
2723
|
+
else {
|
|
2724
|
+
this.positionSet = false;
|
|
2725
|
+
}
|
|
2726
|
+
if (rawMetadata.scale) {
|
|
2727
|
+
if (this.canScaleX || this.canScaleY || this.canScaleZ) {
|
|
2728
|
+
this.setScaleXYZ(this.rawMetadata.scale.x, this.rawMetadata.scale.y, this.rawMetadata.scale.z);
|
|
2729
|
+
// this._shouldSetScale = true;
|
|
2730
|
+
}
|
|
2731
|
+
else {
|
|
2732
|
+
this.scaleGeometry(rawMetadata.scale.x, rawMetadata.scale.y, rawMetadata.scale.z);
|
|
2733
|
+
}
|
|
2734
|
+
}
|
|
2735
|
+
if (this.scalePercentage !== 100) {
|
|
2736
|
+
this.scale.set(this.scalePercentage / 100, this.scalePercentage / 100, this.scalePercentage / 100);
|
|
2737
|
+
}
|
|
2738
|
+
if (rawMetadata.elevation) {
|
|
2739
|
+
this.elevation = rawMetadata.elevation;
|
|
2740
|
+
}
|
|
2741
|
+
else {
|
|
2742
|
+
this.elevation = 0;
|
|
2743
|
+
}
|
|
2744
|
+
}
|
|
2745
|
+
this.calculateHalfSize();
|
|
2746
|
+
this.setYPositionBasedOnElevation();
|
|
2747
|
+
};
|
|
2744
2748
|
/** on is a bool */
|
|
2745
2749
|
Item.prototype.updateHighlight = function () {
|
|
2746
2750
|
if (this.highLightDisabled) {
|
|
@@ -13968,6 +13972,11 @@
|
|
|
13968
13972
|
WallItem.prototype.getTexture = function () {
|
|
13969
13973
|
return this.texture;
|
|
13970
13974
|
};
|
|
13975
|
+
WallItem.prototype.setScaleXYZ = function (x, y, z, recalculateHalfSize) {
|
|
13976
|
+
if (recalculateHalfSize === void 0) { recalculateHalfSize = true; }
|
|
13977
|
+
_super_1.prototype.setScaleXYZ.call(this, x, y, z, recalculateHalfSize);
|
|
13978
|
+
this.reposition();
|
|
13979
|
+
};
|
|
13971
13980
|
WallItem.prototype.createMaterial = function (side, isSame) {
|
|
13972
13981
|
if (side === void 0) { side = THREE__namespace.DoubleSide; }
|
|
13973
13982
|
if (isSame === void 0) { isSame = true; }
|
|
@@ -14026,7 +14035,9 @@
|
|
|
14026
14035
|
});
|
|
14027
14036
|
};
|
|
14028
14037
|
WallItem.prototype.setYPositionBasedOnElevation = function () {
|
|
14029
|
-
|
|
14038
|
+
if (this.boundToFloor) {
|
|
14039
|
+
this.position.y = this.elevation + (this.halfSize ? this.halfSize.y : 0);
|
|
14040
|
+
}
|
|
14030
14041
|
};
|
|
14031
14042
|
WallItem.prototype.addMaterialMap = function (material, texture, flip) {
|
|
14032
14043
|
return __awaiter$1c(this, void 0, void 0, function () {
|
|
@@ -14145,6 +14156,9 @@
|
|
|
14145
14156
|
/** takes the move vec3, and makes sure object stays bounded on plane */
|
|
14146
14157
|
WallItem.prototype._boundMove = function (vec3) {
|
|
14147
14158
|
var edge = this.currentWallEdge;
|
|
14159
|
+
if (!edge) {
|
|
14160
|
+
return;
|
|
14161
|
+
}
|
|
14148
14162
|
vec3.applyMatrix4(edge.interiorTransform);
|
|
14149
14163
|
edge.wall.itemsChanged = true;
|
|
14150
14164
|
if (vec3.x < this._sizeX / 2.0 + this._positionYTolerance) {
|
|
@@ -14475,6 +14489,7 @@
|
|
|
14475
14489
|
var clone = this.createClass();
|
|
14476
14490
|
this.cloneProperties(clone);
|
|
14477
14491
|
clone.name = 'test clone';
|
|
14492
|
+
clone.buildFinished();
|
|
14478
14493
|
return clone;
|
|
14479
14494
|
};
|
|
14480
14495
|
InWallItem.prototype.createMaterial = function (side, isSame) {
|
|
@@ -14849,6 +14864,7 @@
|
|
|
14849
14864
|
}
|
|
14850
14865
|
InWallFloorItem.prototype.createClass = function () {
|
|
14851
14866
|
var clazz = new InWallFloorItem(this.metadata, new THREE.Mesh(new THREE.BoxGeometry(this.halfSize.x * 2, this.halfSize.y * 2, this.halfSize.z * 2)));
|
|
14867
|
+
clazz.buildFinished();
|
|
14852
14868
|
return clazz;
|
|
14853
14869
|
};
|
|
14854
14870
|
return InWallFloorItem;
|
|
@@ -14957,6 +14973,7 @@
|
|
|
14957
14973
|
var metadata = Object.assign({}, this.metadata);
|
|
14958
14974
|
metadata.skin = Object.assign({}, this.skin);
|
|
14959
14975
|
var copy = new CustomShapeFloorItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
14976
|
+
copy.buildFinished();
|
|
14960
14977
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
14961
14978
|
copy.calculateHalfSize();
|
|
14962
14979
|
return copy;
|
|
@@ -15022,6 +15039,7 @@
|
|
|
15022
15039
|
var metadata = Object.assign({}, this.metadata);
|
|
15023
15040
|
metadata.skin = Object.assign({}, this.skin);
|
|
15024
15041
|
var copy = new CustomCylinderFloorItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
15042
|
+
copy.buildFinished();
|
|
15025
15043
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
15026
15044
|
copy.calculateHalfSize();
|
|
15027
15045
|
return copy;
|
|
@@ -15423,6 +15441,7 @@
|
|
|
15423
15441
|
item.opening = Object.assign({}, metadata.opening);
|
|
15424
15442
|
}
|
|
15425
15443
|
item.userData.itemType = metadata.itemType;
|
|
15444
|
+
item.buildFinished();
|
|
15426
15445
|
this.addItem(item);
|
|
15427
15446
|
return item;
|
|
15428
15447
|
};
|
|
@@ -15460,6 +15479,7 @@
|
|
|
15460
15479
|
return [4 /*yield*/, new itemConstructor(metadata, modelData.object)];
|
|
15461
15480
|
case 1:
|
|
15462
15481
|
item = _a.sent();
|
|
15482
|
+
item.buildFinished();
|
|
15463
15483
|
this.addItem(item);
|
|
15464
15484
|
return [2 /*return*/, item];
|
|
15465
15485
|
}
|
|
@@ -20385,6 +20405,9 @@
|
|
|
20385
20405
|
case 1:
|
|
20386
20406
|
_a.sent();
|
|
20387
20407
|
this.walls.forEach(function (wall) { return wall.updateWallItems(); });
|
|
20408
|
+
if (this.walls && this.walls.length > 0 && this._viewModeService.is3dViewActive()) {
|
|
20409
|
+
this._updateEdgeVisibility(this._cameraService.camera.position);
|
|
20410
|
+
}
|
|
20388
20411
|
return [2 /*return*/];
|
|
20389
20412
|
}
|
|
20390
20413
|
});
|
|
@@ -21945,6 +21968,7 @@
|
|
|
21945
21968
|
var metadata = Object.assign({}, this.metadata);
|
|
21946
21969
|
metadata.skin = Object.assign({}, this.skin);
|
|
21947
21970
|
var copy = new CustomShapeWallItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
21971
|
+
copy.buildFinished();
|
|
21948
21972
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
21949
21973
|
copy.calculateHalfSize();
|
|
21950
21974
|
return copy;
|
|
@@ -22004,6 +22028,7 @@
|
|
|
22004
22028
|
var metadata = Object.assign({}, this.metadata);
|
|
22005
22029
|
metadata.skin = Object.assign({}, this.skin);
|
|
22006
22030
|
var copy = new CustomCylinderWallItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
22031
|
+
copy.buildFinished();
|
|
22007
22032
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
22008
22033
|
copy.calculateHalfSize();
|
|
22009
22034
|
return copy;
|
|
@@ -23025,7 +23050,7 @@
|
|
|
23025
23050
|
var height = new BoxMeasurement();
|
|
23026
23051
|
var heightString = MeasurementUtils.makeText(this._height, this.dimUnit, this.distanceStep);
|
|
23027
23052
|
var text = this._dictionaryService.get('LABEL_HEIGHT');
|
|
23028
|
-
height.textMesh = makeTextMesh(heightString, this._font, text);
|
|
23053
|
+
height.textMesh = makeTextMesh(heightString, this._font, 0xFF00FF, 0.08, false, false, text);
|
|
23029
23054
|
height.positions = this.calculateHeightPositions();
|
|
23030
23055
|
return height;
|
|
23031
23056
|
};
|
|
@@ -23042,7 +23067,7 @@
|
|
|
23042
23067
|
var width = new BoxMeasurement();
|
|
23043
23068
|
var widthString = MeasurementUtils.makeText(this._width, this.dimUnit, this.distanceStep);
|
|
23044
23069
|
var text = this._dictionaryService.get('LABEL_WIDTH');
|
|
23045
|
-
width.textMesh = makeTextMesh(widthString, this._font, text);
|
|
23070
|
+
width.textMesh = makeTextMesh(widthString, this._font, 0xFF00FF, 0.08, false, false, text);
|
|
23046
23071
|
width.positions = this.calculateWidthPositions();
|
|
23047
23072
|
return width;
|
|
23048
23073
|
};
|
|
@@ -23059,7 +23084,7 @@
|
|
|
23059
23084
|
var openingDepth = new BoxMeasurement();
|
|
23060
23085
|
var openingDepthString = MeasurementUtils.makeText(this._openingDepth, this.dimUnit, this.distanceStep);
|
|
23061
23086
|
var text = this._dictionaryService.get('LABEL_DEPTH');
|
|
23062
|
-
openingDepth.textMesh = makeTextMesh(openingDepthString, this._font, text);
|
|
23087
|
+
openingDepth.textMesh = makeTextMesh(openingDepthString, this._font, 0xFF00FF, 0.08, false, false, text);
|
|
23063
23088
|
openingDepth.positions = this.calculateOpeningDepthPositions();
|
|
23064
23089
|
return openingDepth;
|
|
23065
23090
|
};
|
|
@@ -23652,7 +23677,7 @@
|
|
|
23652
23677
|
}
|
|
23653
23678
|
};
|
|
23654
23679
|
OnWallMeasurements.prototype.getZPos = function () {
|
|
23655
|
-
return Math.max(this.item.getHalfSize().z, this.wallThickness / 2);
|
|
23680
|
+
return Math.max(this.item.getHalfSize().z, this.wallThickness / 2) + 0.05;
|
|
23656
23681
|
};
|
|
23657
23682
|
OnWallMeasurements.prototype.hasChanged = function () {
|
|
23658
23683
|
return this.rotationY !== this.item.rotation.y ||
|
|
@@ -33546,6 +33571,7 @@
|
|
|
33546
33571
|
}
|
|
33547
33572
|
item.allowRotate = true;
|
|
33548
33573
|
item.highLightDisabled = !this._settingsService.settings.options.useStandaloneHighLight;
|
|
33574
|
+
item.buildFinished();
|
|
33549
33575
|
newCustomFloorObj.furniture = item;
|
|
33550
33576
|
return newCustomFloorObj;
|
|
33551
33577
|
};
|
|
@@ -43501,17 +43527,21 @@
|
|
|
43501
43527
|
this.isFloorType = !this.isFloorType;
|
|
43502
43528
|
var origScale = new THREE.Vector3(1, 1, 1).divide(this.shape.metadata.scale || new THREE.Vector3(1, 1, 1));
|
|
43503
43529
|
if (this.isFloorType) {
|
|
43530
|
+
this._oldWallPosition = this.shape.position.clone();
|
|
43531
|
+
this._oldWallElevation = this.shape.elevation;
|
|
43504
43532
|
var metadata = Object.assign(Object.assign({}, this.shape.metadata), { itemType: ItemType.CustomShape });
|
|
43505
|
-
metadata.position = undefined;
|
|
43533
|
+
metadata.position = this._oldFloorPosition ? this._oldFloorPosition.clone() : undefined;
|
|
43534
|
+
metadata.elevation = this._oldFloorElevation ? this._oldFloorElevation : 0;
|
|
43506
43535
|
metadata.centerPivot = true;
|
|
43507
43536
|
var geometry = this.shape.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z);
|
|
43508
43537
|
var shapeFloor = new CustomShapeFloorItem(metadata, new THREE.Mesh(geometry, this.shape.customMesh.material));
|
|
43538
|
+
shapeFloor.buildFinished();
|
|
43509
43539
|
shapeFloor.scaleGeometry(this.shape.scale.x, this.shape.scale.y, this.shape.scale.z);
|
|
43510
43540
|
shapeFloor.calculateHalfSize();
|
|
43511
43541
|
shapeFloor.skin = this.shape.skin;
|
|
43512
43542
|
var roomCenter = this._roomService.getRoomCenter();
|
|
43513
43543
|
if (roomCenter) {
|
|
43514
|
-
shapeFloor.position.copy(roomCenter);
|
|
43544
|
+
shapeFloor.position.copy(this._oldFloorPosition ? this._oldFloorPosition.clone() : roomCenter);
|
|
43515
43545
|
}
|
|
43516
43546
|
shapeFloor.position.y = shapeFloor.getFloorY();
|
|
43517
43547
|
this._itemService.addItem(shapeFloor);
|
|
@@ -43521,11 +43551,14 @@
|
|
|
43521
43551
|
this._hudService.updateSelectedItemHud();
|
|
43522
43552
|
}
|
|
43523
43553
|
else {
|
|
43554
|
+
this._oldFloorPosition = this.shape.position.clone();
|
|
43555
|
+
this._oldFloorElevation = this.shape.elevation;
|
|
43524
43556
|
var metadata = Object.assign(Object.assign({}, this.shape.metadata), { itemType: ItemType.CustomShapeWall });
|
|
43525
|
-
metadata.position = undefined;
|
|
43557
|
+
metadata.position = this._oldWallPosition ? this._oldWallPosition.clone() : undefined;
|
|
43526
43558
|
metadata.centerPivot = false;
|
|
43527
43559
|
var geometry = this.shape.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z);
|
|
43528
43560
|
var shapeWall = new CustomShapeWallItem(metadata, new THREE.Mesh(geometry, this.shape.customMesh.material));
|
|
43561
|
+
shapeWall.buildFinished();
|
|
43529
43562
|
shapeWall.scaleGeometry(this.shape.scale.x, this.shape.scale.y, this.shape.scale.z);
|
|
43530
43563
|
shapeWall.calculateHalfSize();
|
|
43531
43564
|
shapeWall.skin = this.shape.skin;
|
|
@@ -43798,6 +43831,7 @@
|
|
|
43798
43831
|
var geometry = this.shape.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z);
|
|
43799
43832
|
geometry.rotateX(-Math.PI / 2);
|
|
43800
43833
|
var shapeFloor = new CustomCylinderFloorItem(metadata, new THREE.Mesh(geometry, this.shape.customMesh.material));
|
|
43834
|
+
shapeFloor.buildFinished();
|
|
43801
43835
|
shapeFloor.scaleGeometry(this.shape.scale.x, this.shape.scale.y, this.shape.scale.z);
|
|
43802
43836
|
shapeFloor.calculateHalfSize();
|
|
43803
43837
|
shapeFloor.skin = this.shape.skin;
|
|
@@ -43819,6 +43853,7 @@
|
|
|
43819
43853
|
var position = this.shape.position.clone();
|
|
43820
43854
|
var geometry = this.shape.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z);
|
|
43821
43855
|
var shapeWall = new CustomCylinderWallItem(metadata, new THREE.Mesh(geometry, this.shape.customMesh.material));
|
|
43856
|
+
shapeWall.buildFinished();
|
|
43822
43857
|
shapeWall.scaleGeometry(this.shape.scale.x, this.shape.scale.y, this.shape.scale.z);
|
|
43823
43858
|
shapeWall.customMesh.geometry.rotateX(Math.PI / 2);
|
|
43824
43859
|
shapeWall.calculateHalfSize();
|
|
@@ -45915,6 +45950,7 @@
|
|
|
45915
45950
|
itemSelected: this.itemSelected.bind(this),
|
|
45916
45951
|
itemUnselected: this.itemUnselected.bind(this)
|
|
45917
45952
|
});
|
|
45953
|
+
item.buildFinished();
|
|
45918
45954
|
this._itemService.addItem(item);
|
|
45919
45955
|
return [2 /*return*/, item];
|
|
45920
45956
|
}
|
|
@@ -46027,6 +46063,7 @@
|
|
|
46027
46063
|
};
|
|
46028
46064
|
metadata.scale = model.scale;
|
|
46029
46065
|
item = new FloorItem(metadata, model.object, null, handlers);
|
|
46066
|
+
item.buildFinished();
|
|
46030
46067
|
if (object.itemGroup) {
|
|
46031
46068
|
this._groupService.reattachToItemGroup(item, object.itemGroup, position);
|
|
46032
46069
|
}
|
|
@@ -46072,6 +46109,7 @@
|
|
|
46072
46109
|
return [7 /*endfinally*/];
|
|
46073
46110
|
case 12:
|
|
46074
46111
|
item = new CustomShapeFloorItem(metadata, new THREE.Mesh(geometry, materials), object.texture);
|
|
46112
|
+
item.buildFinished();
|
|
46075
46113
|
if (object.itemGroup) {
|
|
46076
46114
|
this._groupService.reattachToItemGroup(item, object.itemGroup, position);
|
|
46077
46115
|
}
|
|
@@ -46111,6 +46149,7 @@
|
|
|
46111
46149
|
return [7 /*endfinally*/];
|
|
46112
46150
|
case 21:
|
|
46113
46151
|
item = new CustomShapeWallItem(metadata, new THREE.Mesh(geometry, materials), object.texture);
|
|
46152
|
+
item.buildFinished();
|
|
46114
46153
|
closestWallEdge = this._roomService.getClosestWallEdge(position.x, position.z);
|
|
46115
46154
|
item.placeOnEdge(closestWallEdge);
|
|
46116
46155
|
if (object.itemGroup) {
|
|
@@ -46152,6 +46191,7 @@
|
|
|
46152
46191
|
return [7 /*endfinally*/];
|
|
46153
46192
|
case 30:
|
|
46154
46193
|
item = new CustomCylinderFloorItem(metadata, new THREE.Mesh(geometry, materials), object.texture);
|
|
46194
|
+
item.buildFinished();
|
|
46155
46195
|
if (object.itemGroup) {
|
|
46156
46196
|
this._groupService.reattachToItemGroup(item, object.itemGroup, position);
|
|
46157
46197
|
}
|
|
@@ -46192,6 +46232,7 @@
|
|
|
46192
46232
|
return [7 /*endfinally*/];
|
|
46193
46233
|
case 39:
|
|
46194
46234
|
item = new CustomCylinderWallItem(metadata, new THREE.Mesh(geometry, materials), object.texture);
|
|
46235
|
+
item.buildFinished();
|
|
46195
46236
|
closestWallEdge = this._roomService.getClosestWallEdge(position.x, position.z);
|
|
46196
46237
|
item.placeOnEdge(closestWallEdge);
|
|
46197
46238
|
if (object.itemGroup) {
|