@colijnit/homedecorator 259.1.5 → 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.
Files changed (124) hide show
  1. package/_variables.scss +1 -0
  2. package/app/core/components/arrow-helper/arrow-helper.d.ts +20 -0
  3. package/app/core/enum/icon.enum.d.ts +1 -0
  4. package/app/core/interface/map-change.interface.d.ts +5 -0
  5. package/app/core/interface/material-dialog-data.interface.d.ts +5 -0
  6. package/app/core/interface/material-diff.interface.d.ts +6 -0
  7. package/app/core/service/item-serialization.service.d.ts +10 -0
  8. package/app/core/utils/clone-utils.d.ts +1 -1
  9. package/app/core/utils/material-diff.utils.d.ts +13 -0
  10. package/app/core/utils/material.utils.d.ts +4 -0
  11. package/app/core/utils/object.utils.d.ts +18 -1
  12. package/app/development/components/selected-child-material-color.component.d.ts +10 -0
  13. package/app/development/components/selected-child-material-color.component.scss +3 -0
  14. package/app/development/components/selected-child-material-texture.component.d.ts +15 -3
  15. package/app/development/components/selected-child-material-texture.component.scss +18 -1
  16. package/app/development/components/selected-child-material-textures.component.d.ts +11 -0
  17. package/app/development/components/selected-child-material-textures.component.scss +5 -0
  18. package/app/development/components/selected-child-material.component.d.ts +2 -2
  19. package/app/development/development.module.d.ts +13 -10
  20. package/app/plugins/core3d/core/utils.d.ts +0 -3
  21. package/app/plugins/core3d/hud/measurements.d.ts +19 -19
  22. package/app/plugins/core3d/hud/on-wall-measurements.d.ts +2 -2
  23. package/app/plugins/core3d/items/base-item.d.ts +14 -1
  24. package/app/plugins/core3d/items/item.d.ts +12 -1
  25. package/app/plugins/core3d/items/metadata.d.ts +4 -0
  26. package/app/plugins/core3d/items/wall-objects.d.ts +1 -0
  27. package/app/plugins/core3d/service/floor.service.d.ts +1 -1
  28. package/app/plugins/core3d/service/item.service.d.ts +1 -1
  29. package/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.d.ts +4 -0
  30. package/app/plugins/room-planner/components/floorplanner/const/defaults.d.ts +19 -0
  31. package/app/plugins/room-planner/components/selected-object-scale/selected-object-scale.component.d.ts +27 -0
  32. package/app/plugins/room-planner/components/selected-object-scale/selected-object-scale.component.scss +7 -0
  33. package/app/plugins/room-planner/room-planner/room-planner.component.d.ts +7 -0
  34. package/app/plugins/room-planner/room-planner.module.d.ts +40 -39
  35. package/app/shared/color-picker-dialog/color-picker-dialog.component.d.ts +15 -0
  36. package/app/shared/color-picker-dialog/color-picker-dialog.component.scss +19 -0
  37. package/app/shared/color-picker-dialog/color-picker-dialog.module.d.ts +9 -0
  38. package/app/shared/material-dialog/material-dialog.component.d.ts +21 -0
  39. package/app/shared/material-dialog/material-dialog.component.scss +8 -0
  40. package/app/shared/material-dialog/material-dialog.module.d.ts +19 -0
  41. package/app/{plugins/room-planner/components → shared}/rgb-color-picker/rgb-color-picker.component.d.ts +2 -2
  42. package/app/shared/rgb-color-picker/rgb-color-picker.module.d.ts +8 -0
  43. package/assets/icons/scale.svg +1 -0
  44. package/bundles/colijnit-homedecorator.umd.js +6296 -5200
  45. package/bundles/colijnit-homedecorator.umd.js.map +1 -1
  46. package/esm2015/app/app.version.js +3 -3
  47. package/esm2015/app/core/components/arrow-helper/arrow-helper.js +86 -0
  48. package/esm2015/app/core/enum/icon.enum.js +2 -1
  49. package/esm2015/app/core/interface/map-change.interface.js +2 -0
  50. package/esm2015/app/core/interface/material-dialog-data.interface.js +2 -0
  51. package/esm2015/app/core/interface/material-diff.interface.js +2 -0
  52. package/esm2015/app/core/model/icon.js +2 -1
  53. package/esm2015/app/core/service/item-serialization.service.js +19 -2
  54. package/esm2015/app/core/service/presets.service.js +1 -1
  55. package/esm2015/app/core/service/utils.service.js +7 -7
  56. package/esm2015/app/core/utils/clone-utils.js +6 -4
  57. package/esm2015/app/core/utils/material-diff.utils.js +194 -0
  58. package/esm2015/app/core/utils/material.utils.js +41 -2
  59. package/esm2015/app/core/utils/object.utils.js +166 -2
  60. package/esm2015/app/core/utils/variation-utils.js +4 -1
  61. package/esm2015/app/development/components/selected-child-material-color.component.js +50 -0
  62. package/esm2015/app/development/components/selected-child-material-texture.component.js +316 -260
  63. package/esm2015/app/development/components/selected-child-material-textures.component.js +59 -0
  64. package/esm2015/app/development/components/selected-child-material.component.js +633 -641
  65. package/esm2015/app/development/development.module.js +18 -4
  66. package/esm2015/app/plugins/core3d/core/utils.js +1 -45
  67. package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/door-or-window-box-measurement.js +4 -4
  68. package/esm2015/app/plugins/core3d/hud/furniture-measurements.js +2 -2
  69. package/esm2015/app/plugins/core3d/hud/measurements.js +30 -37
  70. package/esm2015/app/plugins/core3d/hud/on-wall-measurements.js +7 -6
  71. package/esm2015/app/plugins/core3d/hud/utils.js +1 -2
  72. package/esm2015/app/plugins/core3d/items/base-item.js +49 -4
  73. package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -1
  74. package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -1
  75. package/esm2015/app/plugins/core3d/items/custom-objects.js +3 -2
  76. package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -1
  77. package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -1
  78. package/esm2015/app/plugins/core3d/items/floor-plane-item.js +2 -3
  79. package/esm2015/app/plugins/core3d/items/in-wall-floor-item.js +2 -1
  80. package/esm2015/app/plugins/core3d/items/item.js +88 -48
  81. package/esm2015/app/plugins/core3d/items/metadata.js +1 -1
  82. package/esm2015/app/plugins/core3d/items/wall-objects.js +27 -16
  83. package/esm2015/app/plugins/core3d/service/ar.service.js +11 -8
  84. package/esm2015/app/plugins/core3d/service/error-glow.service.js +3 -3
  85. package/esm2015/app/plugins/core3d/service/floor.service.js +6 -5
  86. package/esm2015/app/plugins/core3d/service/item.service.js +4 -2
  87. package/esm2015/app/plugins/core3d/service/scene.service.js +3 -3
  88. package/esm2015/app/plugins/furniture-manager/furniture-manager/furniture-manager.component.js +7 -1
  89. package/esm2015/app/plugins/lite-selector/lite-selector/service/customizer.service.js +3 -3
  90. package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +3 -3
  91. package/esm2015/app/plugins/room-planner/components/color-picker/color-picker.component.js +1 -1
  92. package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +3 -1
  93. package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +11 -4
  94. package/esm2015/app/plugins/room-planner/components/floorplanner/const/defaults.js +22 -1
  95. package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +4 -1
  96. package/esm2015/app/plugins/room-planner/components/selected-object-scale/selected-object-scale.component.js +137 -0
  97. package/esm2015/app/plugins/room-planner/components/texture-picker/texture-picker.component.js +1 -1
  98. package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +89 -8
  99. package/esm2015/app/plugins/room-planner/room-planner.module.js +15 -11
  100. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture-base.service.js +5 -6
  101. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +3 -1
  102. package/esm2015/app/plugins/threedselector/threedselector/service/load-furniture-base.service.js +8 -4
  103. package/esm2015/app/plugins/threedselector/threedselector/service/third-party-model.service.js +2 -1
  104. package/esm2015/app/plugins/threedselector/threedselector/service/variation.service.js +4 -4
  105. package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +18 -3
  106. package/esm2015/app/plugins/threedselector/threedselector/utils/asset.utils.js +15 -15
  107. package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +1 -3
  108. package/esm2015/app/shared/category-library/category-library.component.js +1 -1
  109. package/esm2015/app/shared/color-picker-dialog/color-picker-dialog.component.js +69 -0
  110. package/esm2015/app/shared/color-picker-dialog/color-picker-dialog.module.js +30 -0
  111. package/esm2015/app/shared/material-dialog/material-dialog.component.js +144 -0
  112. package/esm2015/app/shared/material-dialog/material-dialog.module.js +67 -0
  113. package/esm2015/app/shared/rgb-color-picker/rgb-color-picker.component.js +54 -0
  114. package/esm2015/app/shared/rgb-color-picker/rgb-color-picker.module.js +26 -0
  115. package/fesm2015/colijnit-homedecorator.js +6936 -5673
  116. package/fesm2015/colijnit-homedecorator.js.map +1 -1
  117. package/package.json +2 -2
  118. package/styles.scss +26 -0
  119. package/app/plugins/threedselector/threedselector/utils/image.utils.d.ts +0 -6
  120. package/colijnit-homedecorator-259.1.4.tgz +0 -0
  121. package/colijnit-homedecorator-259.1.5.tgz +0 -0
  122. package/esm2015/app/plugins/room-planner/components/rgb-color-picker/rgb-color-picker.component.js +0 -37
  123. package/esm2015/app/plugins/threedselector/threedselector/utils/image.utils.js +0 -33
  124. /package/app/{plugins/room-planner/components → shared}/rgb-color-picker/rgb-color-picker.component.scss +0 -0
package/_variables.scss CHANGED
@@ -1 +1,2 @@
1
+ $hd-color-primary: #171721 !default;
1
2
  $add-to-cart-button-color: #da9803 !default;
@@ -0,0 +1,20 @@
1
+ import { Object3D, Vector3 } from 'three';
2
+ import { ColorRepresentation } from 'three/src/math/Color';
3
+ export declare class ArrowHelper extends Object3D {
4
+ private _dir;
5
+ private _origin;
6
+ private _length;
7
+ private _headLength;
8
+ private _headWidth;
9
+ private _line;
10
+ private _lineGeometry;
11
+ private _lineMaterial;
12
+ private _cone;
13
+ constructor(dir: Vector3, origin: Vector3, length: number, color?: ColorRepresentation, linewidth?: number, dashed?: boolean, dashSize?: number, gapSize?: number, overlay?: boolean, headLength?: number, headWidth?: number);
14
+ setDirection(dir: Vector3): void;
15
+ setPosition(position: Vector3): void;
16
+ setLength(length: number): void;
17
+ setColor(color: ColorRepresentation): void;
18
+ setResolution(width: number, height: number): void;
19
+ dispose(): void;
20
+ }
@@ -85,6 +85,7 @@ export declare enum IconEnum {
85
85
  Qrcode = "qrcode",
86
86
  RetryButton = "retry-button",
87
87
  RotateLight = "rotate_light",
88
+ Scale = "scale",
88
89
  Settings = "settings",
89
90
  SquareCheckRegular = "square_check_regular",
90
91
  SquareChevronDownRegular = "square_chevron_down_regular",
@@ -0,0 +1,5 @@
1
+ import * as THREE from 'three';
2
+ export interface MapChange {
3
+ map: string;
4
+ texture: THREE.Texture;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { Item } from '../../plugins/core3d/items/item';
2
+ export interface MaterialDialogData {
3
+ object: Item;
4
+ sceneService: any;
5
+ }
@@ -0,0 +1,6 @@
1
+ export interface MaterialDiff {
2
+ meshPath: string;
3
+ materialIndex?: number;
4
+ property: string;
5
+ value: any;
6
+ }
@@ -33,6 +33,16 @@ export declare class ItemSerializationService {
33
33
  elevation: any;
34
34
  elevationFixed: any;
35
35
  elevationAdjustable: any;
36
+ canScaleX: any;
37
+ canScaleY: any;
38
+ canScaleZ: any;
39
+ colorable: any;
40
+ materialDiff: any;
41
+ scale: {
42
+ x: number;
43
+ y: number;
44
+ z: number;
45
+ };
36
46
  decos: any;
37
47
  selections: any;
38
48
  externalSettings: any;
@@ -1,5 +1,5 @@
1
1
  import { Mesh, Object3D } from 'three';
2
2
  export declare class CloneUtils {
3
- static CleanCloneObject(obj: any): Object3D | Mesh;
3
+ static CleanCloneObject(obj: any, recursive?: boolean): Object3D | Mesh;
4
4
  private static CloneDefaultProps;
5
5
  }
@@ -0,0 +1,13 @@
1
+ import { MeshPhysicalMaterial, Object3D } from 'three';
2
+ import { MaterialDiff } from '../interface/material-diff.interface';
3
+ export declare const materialPropsForDiff: (keyof MeshPhysicalMaterial)[];
4
+ export declare class MaterialDiffUtils {
5
+ static GetMaterialDiff(firstObject: Object3D, secondObject: Object3D): MaterialDiff[];
6
+ static ApplyMaterialDiff(root: Object3D, materialDiff: MaterialDiff[]): Promise<void>;
7
+ static GetChildPath(root: Object3D, childMesh: string, path?: string): string;
8
+ private static CollectMeshes;
9
+ private static AreValuesEqual;
10
+ private static ConvertMaterialToArray;
11
+ private static SerializeValue;
12
+ private static ApplySerializedValue;
13
+ }
@@ -1,6 +1,7 @@
1
1
  import * as THREE from 'three';
2
2
  import { MeshStandardMaterial, Vector2 } from 'three';
3
3
  import { Texture } from '../model/texture';
4
+ import { Material } from '../../plugins/threedselector/threedselector/model/material';
4
5
  export declare class MaterialUtils {
5
6
  static readonly canvasRatio = 4;
6
7
  static readonly defaultWindow: THREE.MeshPhongMaterial;
@@ -9,9 +10,12 @@ export declare class MaterialUtils {
9
10
  private static imgElement;
10
11
  static imageCache: Map<string, HTMLImageElement>;
11
12
  static textureCache: Map<string, THREE.Texture>;
13
+ static textureCacheById: Map<string, THREE.Texture>;
12
14
  static SetAssetPath(path: string): void;
13
15
  static ClearCaches(): void;
14
16
  static FromUrl(url: string, stretch: boolean, tileSize: number, repeatX?: number, repeatY?: number, dimensions?: THREE.Vector2, tileRotation?: number): Promise<THREE.Texture>;
17
+ static CreateTextureFromBase64(id: string, base64: string, material: Material, defaultFlip?: boolean): Promise<THREE.Texture>;
18
+ static UpdateTextureWithBase64Image(map: THREE.Texture, base64: string): void;
15
19
  static RotatedCanvasTexture(texture: Texture, textureURL: string, dimensions: THREE.Vector2, adjustScale: boolean, repeatX?: number, repeatY?: number): Promise<THREE.Texture>;
16
20
  static CustomTileMapTexture(texture: Texture, dimensions: THREE.Vector2): Promise<THREE.Texture>;
17
21
  static FromImage(texture: Texture): Promise<THREE.Texture>;
@@ -1,10 +1,12 @@
1
- import { BufferGeometry, Color, Group, Material, Object3D, Scene, Vector3 } from 'three';
1
+ import { BufferGeometry, Color, Group, Material, Mesh, Object3D, Scene, Texture, Vector2, Vector3 } from 'three';
2
2
  import { Selection } from '@colijnit/configuratorapi/build/model/selection';
3
3
  import { Item } from '../../plugins/core3d/items/item';
4
4
  import { CustomObject3D } from '../../plugins/core3d/items/custom-objects';
5
5
  export declare class ObjectUtils {
6
+ static materialProps: string[];
6
7
  static CreateArrow(name: string, color: Color | number | string, length: number, direction: Vector3, headLength: number, headWidth: number, doubleArrow?: boolean): Group;
7
8
  static UpdateArrowLength(arrow: Group, length: number, direction: Vector3, headLength: number, headWidth: number, doubleArrow?: boolean): Group;
9
+ static ChildOf(obj: Mesh | Object3D, parentName: string): boolean;
8
10
  static GetParentItem(element: any): Item;
9
11
  static GetParentCustomObject(element: any): CustomObject3D;
10
12
  static GetDefaultMaterial(object: Object3D): Material;
@@ -13,4 +15,19 @@ export declare class ObjectUtils {
13
15
  static GetSelectionFromSelectedObject(object: any): Selection;
14
16
  static UpdateUvs(geo: BufferGeometry): void;
15
17
  static LoadHDRI(path: string, scene: Scene): Promise<void>;
18
+ static ProjectToPlane(points: Vector3[]): Vector2[];
19
+ static CloneMaterial(material: Material | Material[], deepClone?: boolean): Material | Material[];
20
+ static CloneObject3D(source: Object3D): Object3D;
21
+ static DeepCloneObject3D(source: Object3D): Object3D;
22
+ /**
23
+ * ThreeJS does not clone image property, so it stays a reference to the original image.
24
+ * When deepClone, this method creates a new image and copies the original image data to it.
25
+ * @param texture
26
+ * @param deepClone
27
+ * @constructor
28
+ */
29
+ static CloneTexture(texture: Texture, deepClone?: boolean): Texture;
30
+ static DisposeMaterial(material: Material | Material[]): void;
31
+ static DisposeObject(object: Object3D | Mesh): void;
32
+ private static DisposeNode;
16
33
  }
@@ -0,0 +1,10 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Color, MeshPhysicalMaterial } from 'three';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SelectedChildMaterialColorComponent {
5
+ material: MeshPhysicalMaterial;
6
+ colorChange: EventEmitter<Color>;
7
+ handleColorChange(color: any): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectedChildMaterialColorComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectedChildMaterialColorComponent, "selected-child-material-color", never, { "material": "material"; }, { "colorChange": "colorChange"; }, never, never>;
10
+ }
@@ -1,5 +1,5 @@
1
1
  import { ElementRef, EventEmitter } from '@angular/core';
2
- import { Mapping, PixelFormat, Texture, TextureDataType, TextureFilter, Wrapping } from 'three';
2
+ import { Color, Mapping, PixelFormat, Texture, TextureDataType, TextureFilter, Wrapping } from 'three';
3
3
  import { ColorSpace, CubeTextureMapping } from 'three/src/constants';
4
4
  import { HomedecoratorIconCacheService } from '../../core/service/homedecorator-icon-cache.service';
5
5
  import { SceneService } from '../../plugins/core3d/service/scene.service';
@@ -12,8 +12,11 @@ export declare class SelectedChildMaterialTextureComponent {
12
12
  input: ElementRef;
13
13
  set map(value: Texture);
14
14
  get map(): Texture;
15
+ set color(value: Color);
16
+ get color(): Color;
15
17
  title: string;
16
18
  mapChange: EventEmitter<Texture>;
19
+ colorChange: EventEmitter<Color>;
17
20
  mappingList: {
18
21
  id: Mapping | CubeTextureMapping;
19
22
  description: string;
@@ -41,18 +44,27 @@ export declare class SelectedChildMaterialTextureComponent {
41
44
  showContent: boolean;
42
45
  viewImageSrc: string;
43
46
  showZoomImage: boolean;
47
+ showColorPickerPopup: boolean;
48
+ hexColor: number;
49
+ rgbColorString: string;
50
+ newColor: Color;
51
+ rgbNewColorString: string;
44
52
  private _map;
45
53
  private _loadedImage;
54
+ private _color;
46
55
  constructor(iconService: HomedecoratorIconCacheService, _sceneService: SceneService);
47
56
  showLargeImage(): void;
48
57
  hideZoomImage(event: MouseEvent): void;
58
+ showColorPicker(): void;
59
+ hideColorPicker(): void;
60
+ setColor(color: number): void;
49
61
  uploadImage(map: string): void;
50
62
  render(): void;
51
63
  changeFlip(value: boolean): void;
52
64
  handleFileChange(event: any): Promise<void>;
53
- deleteMap(): void;
65
+ deleteMapOrColor(): void;
54
66
  private _reloadImage;
55
67
  private _loadTexture;
56
68
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectedChildMaterialTextureComponent, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectedChildMaterialTextureComponent, "development-selected-child-material-texture", never, { "map": "map"; "title": "title"; }, { "mapChange": "mapChange"; }, never, never>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectedChildMaterialTextureComponent, "development-selected-child-material-texture", never, { "map": "map"; "color": "color"; "title": "title"; }, { "mapChange": "mapChange"; "colorChange": "colorChange"; }, never, never>;
58
70
  }
@@ -28,6 +28,15 @@
28
28
  height: 30px;
29
29
  width: 30px;
30
30
  }
31
+ .color-image {
32
+ cursor: pointer;
33
+ display: flex;
34
+ height: 30px;
35
+ width: 30px;
36
+ border: 1px solid;
37
+ position: relative;
38
+ border-radius: 5px;
39
+ }
31
40
  .no-image, img {
32
41
  cursor: pointer;
33
42
  display: flex;
@@ -35,6 +44,7 @@
35
44
  width: 30px;
36
45
  border: 1px solid;
37
46
  position: relative;
47
+ border-radius: 5px;
38
48
  &:before, &:after {
39
49
  content: "";
40
50
  position: absolute;
@@ -64,7 +74,7 @@
64
74
  grid-template-areas: "label value";
65
75
  grid-template-columns: 175px 1fr;
66
76
  margin-left: 10px;
67
-
77
+ font-size: 12px;
68
78
  .label {
69
79
  grid-area: label;
70
80
  grid-row: auto;
@@ -120,3 +130,10 @@
120
130
  }
121
131
  }
122
132
  }
133
+ .child-material-color-picker {
134
+ position: fixed;
135
+ top: 50%;
136
+ left: 50%;
137
+ transform: translate(-50%, -50%);
138
+ z-index: 1000;
139
+ }
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { MeshPhysicalMaterial, Texture } from 'three';
3
+ import { MapChange } from '../../core/interface/map-change.interface';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SelectedChildMaterialTexturesComponent {
6
+ material: MeshPhysicalMaterial;
7
+ mapChange: EventEmitter<MapChange>;
8
+ handleMapChange(map: string, changed?: Texture): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectedChildMaterialTexturesComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectedChildMaterialTexturesComponent, "selected-child-material-textures", never, { "material": "material"; }, { "mapChange": "mapChange"; }, never, never>;
11
+ }
@@ -0,0 +1,5 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ row-gap: 10px;
5
+ }
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
- import { BlendingDstFactor, BlendingEquation, BlendingSrcFactor, Color, MeshPhysicalMaterial, NormalMapTypes, PixelFormat, Side, Texture } from 'three';
2
+ import { BlendingDstFactor, BlendingEquation, BlendingSrcFactor, Color, MeshPhysicalMaterial, NormalMapTypes, PixelFormat, Side } from 'three';
3
3
  import { Blending, StencilFunc, StencilOp } from 'three/src/constants';
4
4
  import { SceneService } from '../../plugins/core3d/service/scene.service';
5
5
  import { HomedecoratorIconCacheService } from '../../core/service/homedecorator-icon-cache.service';
@@ -63,7 +63,7 @@ export declare class SelectedChildMaterialComponent implements OnInit {
63
63
  ngOnInit(): void;
64
64
  changeColor(colorProp: string, color: any): void;
65
65
  render(): void;
66
- handleMapChange(changed?: Texture): void;
66
+ handleMaterialChange(): void;
67
67
  getColor(color: Color): string;
68
68
  saveMaterial(): Promise<void>;
69
69
  private _toJson;
@@ -3,17 +3,20 @@ import * as i1 from "./components/selected-object.component";
3
3
  import * as i2 from "./components/selected-child.component";
4
4
  import * as i3 from "./components/selected-child-material.component";
5
5
  import * as i4 from "./components/selected-child-material-texture.component";
6
- import * as i5 from "./directive/development.directive";
7
- import * as i6 from "@angular/common";
8
- import * as i7 from "@angular/material/checkbox";
9
- import * as i8 from "@angular/forms";
10
- import * as i9 from "@angular/material/select";
11
- import * as i10 from "@colijnit/corecomponents";
12
- import * as i11 from "../core/core.module";
13
- import * as i12 from "@angular/material/button";
14
- import * as i13 from "@angular/material/tooltip";
6
+ import * as i5 from "./components/selected-child-material-textures.component";
7
+ import * as i6 from "./components/selected-child-material-color.component";
8
+ import * as i7 from "./directive/development.directive";
9
+ import * as i8 from "@angular/common";
10
+ import * as i9 from "@angular/material/checkbox";
11
+ import * as i10 from "@angular/forms";
12
+ import * as i11 from "@angular/material/select";
13
+ import * as i12 from "@colijnit/corecomponents";
14
+ import * as i13 from "../core/core.module";
15
+ import * as i14 from "@angular/material/button";
16
+ import * as i15 from "@angular/material/tooltip";
17
+ import * as i16 from "../shared/color-picker-dialog/color-picker-dialog.module";
15
18
  export declare class DevelopmentModule {
16
19
  static ɵfac: i0.ɵɵFactoryDeclaration<DevelopmentModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<DevelopmentModule, [typeof i1.SelectedObjectComponent, typeof i2.SelectedChildComponent, typeof i3.SelectedChildMaterialComponent, typeof i4.SelectedChildMaterialTextureComponent, typeof i5.DevelopmentDirective], [typeof i6.CommonModule, typeof i7.MatCheckboxModule, typeof i8.FormsModule, typeof i9.MatSelectModule, typeof i10.IconModule, typeof i11.CoreModule, typeof i12.MatButtonModule, typeof i13.MatTooltipModule], [typeof i1.SelectedObjectComponent, typeof i2.SelectedChildComponent, typeof i3.SelectedChildMaterialComponent, typeof i4.SelectedChildMaterialTextureComponent, typeof i5.DevelopmentDirective]>;
20
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DevelopmentModule, [typeof i1.SelectedObjectComponent, typeof i2.SelectedChildComponent, typeof i3.SelectedChildMaterialComponent, typeof i4.SelectedChildMaterialTextureComponent, typeof i5.SelectedChildMaterialTexturesComponent, typeof i6.SelectedChildMaterialColorComponent, typeof i7.DevelopmentDirective], [typeof i8.CommonModule, typeof i9.MatCheckboxModule, typeof i10.FormsModule, typeof i11.MatSelectModule, typeof i12.IconModule, typeof i13.CoreModule, typeof i14.MatButtonModule, typeof i15.MatTooltipModule, typeof i16.ColorPickerDialogModule], [typeof i1.SelectedObjectComponent, typeof i2.SelectedChildComponent, typeof i3.SelectedChildMaterialComponent, typeof i4.SelectedChildMaterialTextureComponent, typeof i5.SelectedChildMaterialTexturesComponent, typeof i6.SelectedChildMaterialColorComponent, typeof i7.DevelopmentDirective]>;
18
21
  static ɵinj: i0.ɵɵInjectorDeclaration<DevelopmentModule>;
19
22
  }
@@ -125,9 +125,6 @@ export declare class Utils {
125
125
  static setPlaneVisibility(plane: Mesh, isVisible: boolean): void;
126
126
  static snapAngle(angle: number, snap?: number): number;
127
127
  static moveAtAxis(position: Vector3, rotation: Euler, axis: 'x' | 'y' | 'z', axisValue: number): Vector3;
128
- private static DisposeNode;
129
- static DisposeMaterial(material: Material | Material[]): void;
130
- static DisposeObject(object: Object3D | Mesh): void;
131
128
  static polygonUnion(p1: Polygon, p2: Polygon): Polygon;
132
129
  static polygonsUnion(polygons: Polygon[]): Polygon[];
133
130
  private static oneToRest;
@@ -1,13 +1,13 @@
1
- import * as THREE from 'three';
2
- import { Mesh } from 'three';
1
+ import { Mesh, Object3D, Quaternion, Vector3 } from 'three';
3
2
  import { Font } from 'three/examples/jsm/loaders/FontLoader';
4
3
  import { SceneUpdate } from '../interface/scene-update.interface';
4
+ import { ArrowHelper } from '../../../core/components/arrow-helper/arrow-helper';
5
5
  export declare abstract class Measurements {
6
6
  protected item: any;
7
- private font;
7
+ private _font;
8
8
  protected rotationY: number;
9
- protected position: THREE.Vector3;
10
- protected measurements: THREE.Object3D[];
9
+ protected position: Vector3;
10
+ protected measurements: Object3D[];
11
11
  private _rayCaster;
12
12
  private _dimUnit;
13
13
  private _distanceStep;
@@ -15,32 +15,32 @@ export declare abstract class Measurements {
15
15
  private _updateCounter;
16
16
  set dimUnit(value: string);
17
17
  set distanceStep(value: number);
18
- constructor(item: any, font: Font);
19
- get objects(): (THREE.Object3D | THREE.Mesh)[];
18
+ constructor(item: any, _font: Font);
19
+ get objects(): (Object3D | Mesh)[];
20
20
  update(force?: boolean): SceneUpdate;
21
21
  forceUpdate(): SceneUpdate;
22
- setTextsDirection(quaternion: THREE.Quaternion): void;
23
- private setMeasurementTextsDirection;
24
- abstract makeMeasurements(): THREE.Object3D[];
22
+ setTextsDirection(quaternion: Quaternion): void;
23
+ abstract makeMeasurements(): Object3D[];
25
24
  protected abstract hasChanged(): boolean;
26
- protected raycastPlanes(planes: Mesh[], origin: THREE.Vector3, direction: THREE.Vector3): {
25
+ protected raycastPlanes(planes: Mesh[], origin: Vector3, direction: Vector3): {
27
26
  distance: number;
28
- point: THREE.Vector3;
27
+ point: Vector3;
29
28
  };
30
29
  protected isWallDoubleSided(): boolean;
31
30
  protected get wallThickness(): number;
32
- protected isWallEdgePlane(mesh: THREE.Mesh): boolean;
31
+ protected isWallEdgePlane(mesh: Mesh): boolean;
33
32
  setVisibility(visible: boolean): void;
34
33
  updateLabelCache(index: number, intersectionDistance: number): void;
35
- protected makeLabeledArrow(origin: THREE.Vector3, rotatedDirection: THREE.Vector3, length: number, labelDistance: {
34
+ protected makeLabeledArrow(origin: Vector3, rotatedDirection: Vector3, length: number, labelDistance: {
36
35
  abs?: number;
37
36
  rel?: {
38
- direction: THREE.Vector3;
37
+ direction: Vector3;
39
38
  value: number;
40
39
  };
41
- }, index: number, placement: string): (THREE.Mesh | THREE.ArrowHelper)[];
40
+ }, index: number, placement: string): (Mesh | ArrowHelper)[];
42
41
  protected nonItemPlane(item: any, plane: any): boolean;
43
- protected rotateDirection(rotateY: number, direction: THREE.Vector3): THREE.Vector3;
44
- protected rotatedBoundingBoxBottomPoint(item: any, point: THREE.Vector3): THREE.Vector3;
45
- protected rotatedBoundingBoxPoint(item: any, point: THREE.Vector3): THREE.Vector3;
42
+ protected rotateDirection(rotateY: number, direction: Vector3): Vector3;
43
+ protected rotatedBoundingBoxBottomPoint(item: any, point: Vector3): Vector3;
44
+ protected rotatedBoundingBoxPoint(item: any, point: Vector3): Vector3;
45
+ private _setMeasurementTextsDirection;
46
46
  }
@@ -1,4 +1,4 @@
1
- import * as THREE from 'three';
1
+ import { Object3D } from 'three';
2
2
  import { Measurements } from './measurements';
3
3
  import { Font } from 'three/examples/jsm/loaders/FontLoader';
4
4
  import { HalfEdge, WallItem } from '../items/wall-objects';
@@ -9,7 +9,7 @@ export declare class OnWallMeasurements extends Measurements {
9
9
  private _roomService;
10
10
  private _itemService;
11
11
  constructor(roomService: RoomService, itemService: ItemService, item: WallItem, font: Font);
12
- makeMeasurements(): THREE.Object3D[];
12
+ makeMeasurements(): Object3D[];
13
13
  private edgeMeasurements;
14
14
  private getZPos;
15
15
  protected hasChanged(): boolean;
@@ -22,6 +22,9 @@ export declare abstract class BaseItem extends Object3D {
22
22
  customMeshTitle: string;
23
23
  canChangeCustomMeshColor: boolean;
24
24
  isCustom: boolean;
25
+ get scaleX(): number;
26
+ get scaleY(): number;
27
+ get scaleZ(): number;
25
28
  scalable: boolean;
26
29
  scalePercentage: number;
27
30
  halfSize: Vector3;
@@ -35,6 +38,10 @@ export declare abstract class BaseItem extends Object3D {
35
38
  canRotateX: boolean;
36
39
  canRotateY: boolean;
37
40
  canRotateZ: boolean;
41
+ canScaleX: boolean;
42
+ canScaleY: boolean;
43
+ canScaleZ: boolean;
44
+ colorable: boolean;
38
45
  default180: boolean;
39
46
  configurable: boolean;
40
47
  tempObject: boolean;
@@ -60,6 +67,10 @@ export declare abstract class BaseItem extends Object3D {
60
67
  removeSelf(): void;
61
68
  /** */
62
69
  setFixed(fixed: boolean): void;
70
+ /**
71
+ * overridden in descendant classes
72
+ */
73
+ buildFinished(): void;
63
74
  /** Subclass can define to take action after a resize. */
64
75
  protected abstract resized(): void;
65
76
  /** */
@@ -94,6 +105,8 @@ export declare abstract class BaseItem extends Object3D {
94
105
  updateHalfsize(): void;
95
106
  getFloorY(): number;
96
107
  heightUpdated(amount?: number): void;
97
- scaleGeometry(x: any, y: any, z: any): void;
108
+ scaleGeometry(x: number, y: number, z: number): void;
109
+ setScaleXYZ(x: number, y: number, z: number, recalculateHalfSize?: boolean): void;
98
110
  protected setYPositionBasedOnElevation(): void;
111
+ protected getHalfSizeWithoutScale(): Vector3;
99
112
  }
@@ -27,10 +27,18 @@ export declare class Item extends BaseItem {
27
27
  selectedHandler: Function;
28
28
  unselectedHandler: Function;
29
29
  showHideOutlineHandler: Function;
30
+ originalLength: number;
31
+ originalHeight: number;
32
+ originalWidth: number;
33
+ /**
34
+ * Used to be able to create a diff on materials when an item is colorable
35
+ */
36
+ originalItem: Item;
30
37
  protected visibleClone: Object3D;
31
38
  protected centerPivot: boolean;
32
39
  protected ignoreInvisible: boolean;
33
40
  protected updatePivotOnCreate: boolean;
41
+ private _shouldSetScale;
34
42
  private _elementConfiguration;
35
43
  private _allwaysConfigureMode;
36
44
  private _configuring;
@@ -49,6 +57,7 @@ export declare class Item extends BaseItem {
49
57
  dispose(): void;
50
58
  private _fakeHandler;
51
59
  private _getIdentifierFromSelection;
60
+ buildFinished(): void;
52
61
  connectorFromElement(selection: Selection): AdjustableElementInterface;
53
62
  updateElementConnector(selection: Selection, connector: string, connectedNodeId: number): void;
54
63
  clearChildren(): void;
@@ -65,6 +74,7 @@ export declare class Item extends BaseItem {
65
74
  endDrag(): void;
66
75
  initObject(itemType: any, id: string, identifier: string, modelUrl: any): void;
67
76
  getHalfSize(): Vector3;
77
+ protected handleRawMetadata(): void;
68
78
  /** on is a bool */
69
79
  protected updateHighlight(): void;
70
80
  /** */
@@ -79,6 +89,7 @@ export declare class Item extends BaseItem {
79
89
  deselectObject(): void;
80
90
  resize(height: number, width: number, depth: number): void;
81
91
  resized(): void;
82
- protected recalcPivot(): void;
83
92
  resetBoundingboxes(): void;
93
+ protected recalcPivot(): void;
94
+ private _setOriginals;
84
95
  }
@@ -63,6 +63,10 @@ export interface Metadata {
63
63
  canRotateX?: boolean;
64
64
  canRotateY?: boolean;
65
65
  canRotateZ?: boolean;
66
+ canScaleX?: boolean;
67
+ canScaleY?: boolean;
68
+ canScaleZ?: boolean;
69
+ colorable?: boolean;
66
70
  default180?: boolean;
67
71
  objectUUID?: string;
68
72
  conversionGTMSend?: boolean;
@@ -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>;
@@ -61,7 +61,7 @@ export declare class FloorService implements OnDestroy {
61
61
  toggleFloorFrame(visible: boolean): void;
62
62
  checkForConfigurableFloor(): boolean;
63
63
  getFloorPlane(): FloorPlaneItem;
64
- setFloorTexture(room: Room, texture: Texture): Promise<void>;
64
+ setFloorTexture(room: Room, texture: Texture, standalone?: boolean): Promise<void>;
65
65
  setFloorColor(room: Room, color: number): Promise<void>;
66
66
  highLightFloor(floorObject: FloorPlaneItem): void;
67
67
  unHighLightFloors(): void;
@@ -20,7 +20,7 @@ export declare class ItemService implements OnDestroy {
20
20
  ngOnDestroy(): void;
21
21
  addItem(obj: any, addToScene?: boolean): void;
22
22
  removeItem(obj: any, addedToGroup?: boolean, emitMessage?: boolean): void;
23
- getObjectPlanes(): any[];
23
+ getObjectPlanes(includeFloors?: boolean): any[];
24
24
  getWallItems(): Item[];
25
25
  getFurniture(): Furniture[];
26
26
  getNonFurniture(): Item[];
@@ -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;
@@ -46,3 +46,22 @@ export declare const snapIndicatorColor: {
46
46
  };
47
47
  export declare const drawModeCursorImageUrl: string;
48
48
  export declare const drawModeCursorHeight: number;
49
+ export declare const defaultArrowHeadLength: number;
50
+ export declare const distancesArrowHeadLength: number;
51
+ export declare const distancesArrowColor: string;
52
+ export declare const distancesTextColor: string;
53
+ export declare const distancesTextBackgroundColor: string;
54
+ export declare const distancesLineWidth: number;
55
+ export declare const distancesLineDashed: boolean;
56
+ export declare const distancesLineDashSize: number;
57
+ export declare const distancesLineDashGapSize: number;
58
+ export declare const distancesTextSize: number;
59
+ export declare const measurementArrowHeadLength: number;
60
+ export declare const measurementArrowColor: string;
61
+ export declare const measurementTextColor: string;
62
+ export declare const measurementTextBackgroundColor: string;
63
+ export declare const measurementLineWidth: number;
64
+ export declare const measurementLineDashed: boolean;
65
+ export declare const measurementLineDashSize: number;
66
+ export declare const measurementLineDashGapSize: number;
67
+ export declare const measurementTextSize: number;
@@ -0,0 +1,27 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Item } from '../../../core3d/items/item';
3
+ import { IconEnum } from '../../../../core/enum/icon.enum';
4
+ import { HomedecoratorIconCacheService } from '../../../../core/service/homedecorator-icon-cache.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SelectedObjectScaleComponent {
7
+ iconService: HomedecoratorIconCacheService;
8
+ readonly icon: typeof IconEnum;
9
+ set object(value: any);
10
+ get object(): any;
11
+ objectChange: EventEmitter<Item>;
12
+ objectLength: number;
13
+ objectWidth: number;
14
+ objectHeight: number;
15
+ private _object;
16
+ private _originalLength;
17
+ private _originalWidth;
18
+ private _originalHeight;
19
+ constructor(iconService: HomedecoratorIconCacheService);
20
+ applyScaleX(newLength: number): void;
21
+ applyScaleY(newHeight: number): void;
22
+ applyScaleZ(newWidth: number): void;
23
+ private _rescaleObject;
24
+ private _setOriginals;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectedObjectScaleComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectedObjectScaleComponent, "rp-selected-object-scale", never, { "object": "object"; }, { "objectChange": "objectChange"; }, never, never>;
27
+ }
@@ -0,0 +1,7 @@
1
+ :host {
2
+ overflow: hidden;
3
+ section {
4
+ overflow-y: auto;
5
+ height: 100%;
6
+ }
7
+ }