architwin 1.10.6 → 1.10.8

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.
@@ -2,7 +2,7 @@ import { AxiosInstance } from "axios";
2
2
  import { MpSdk, Scene, Vector3, Vector2, Renderer } from "../bundle/sdk";
3
3
  import { tubeLineType } from "./loaders";
4
4
  import { initToolbarUI, themeManager } from "./atwinui";
5
- import { type ITag, type IUser, type ISpace, type IShowcaseObject, type I3DObject, type IMPConfig, type ISweep, type ITagPublic, type NearbyPayload, type NearbyObjects, type IObjectData, TRANSFORM_TYPE, Object3DPosition, ObjectCoordinates, EulerCoordinates, State, FileUpload, ObjectConfig, IAtwinFloor, IAtwinLabel, SPACE_EVENTS, ComponentOptions, SpaceAvatar, IMapConfig, MEETING_SIDEBAR, IO_ROLE, IO_SPACE_EVENTS, IO_MEETING_EVENTS, SCREEN_POSITIONS, ITagCategory, TagMessage, PartitionNode, PartitionPayload } from "./types";
5
+ import { type ITag, type IUser, type ISpace, type IShowcaseObject, type I3DObject, type IMPConfig, type ISweep, type ITagPublic, type NearbyPayload, type NearbyObjects, type IObjectData, TRANSFORM_TYPE, Object3DPosition, ObjectCoordinates, EulerCoordinates, State, FileUpload, ObjectConfig, IAtwinFloor, IAtwinLabel, SPACE_EVENTS, ComponentOptions, SpaceAvatar, IMapConfig, MEETING_SIDEBAR, IO_ROLE, IO_SPACE_EVENTS, IO_MEETING_EVENTS, SCREEN_POSITIONS, ITagCategory, TagMessage, ISdkConnections, PartitionNode, PartitionPayload } from "./types";
6
6
  import * as minimap from './minimap';
7
7
  import '../static/sidebar.css';
8
8
  import '../static/map.css';
@@ -50,6 +50,7 @@ declare let state: State;
50
50
  declare let domMousePosition: Vector3;
51
51
  declare let isFitScreenOccupied: boolean;
52
52
  declare let isCdnMapDataAvailable: boolean;
53
+ declare let _atwinConnections: ISdkConnections;
53
54
  declare let _onMouseClickInstance: any;
54
55
  declare let _modelDetails: MpSdk.Model.ModelDetails;
55
56
  declare const tagColors: string[];
@@ -686,4 +687,4 @@ declare function getPathBetweenSweeps(startSweepId: string, endSweepId: string,
686
687
  }[];
687
688
  }>;
688
689
  declare function moveAlongPath(path: any[], iframeId: any): Promise<void>;
689
- export { _atwin, _config, _mpConfig, tags, sweeps, selectedObject, previousObjTransform, currentObjTransform, actionHistory, state, _tags, _tagCategories, _tagMessageRecepients, _space, _spaceId, _api, _pointerCoord, _3DXObjects, _meetingParticipants, _generatedObjectIds, tagColors, domMousePosition, isFitScreenOccupied, isCdnMapDataAvailable, minimap, _modelDetails, _onMouseClickInstance, transformHistory, _partitionNodes, initAtwinApi, getAtwinSdk, connectSpace, disconnectSpace, clearActionHistory, getSweeps, getCurrentSweep, getCurrentSweepPosition, moveToSweep, getNearbySweeps, getAllSweeps, getCurrentCameraPose, getCurrentCameraZoom, getCameraPosition, getCurrentFloor, moveInDirection, cameraLookAt, cameraPan, cameraRotate, cameraSetRotation, getViewMode, setViewMode, captureSpaceScreenshot, captureScreenshotAndCameraDetails, getNearbyObjects, setTransformMode, setSelectedObject, clearSelectedObject, revertTransform, setTransformControls, removeTransformControls, setRenderDistance, addObject, getObject, addObjectToSpace, addMediaScreen, attachMediaScreenContent, updateObject, updateShowcaseObject, deleteObject, deleteShowcaseObject, copyObject, replaceObject, getTargetPosition, setObjectTransformation, setPointerCoordinates, addTextMarkupScreen, setTextMarkupScreenContent, goTo3dx, goToModel, hasTimeElapsed, getSelectedObject, renderAvatar, setSpaceAvatar, get3DXObjects, setLibrary, getLibrary, disposeModel, renderInSpaceMediaScreen, goToPosition, goToParticipant, getNearestSweepFromObject, cancelModelPlacement, renderViewpointMarker, toggleViewpointVisibility, convertDegRotationToEuler, pauseVideo, playVideo, setVideoPlayback, setAnimationState, showMinimap, hideMinimap, getMapConfig, addTag, getTags, gotoTag, renderTag, disposeTag, disposeTags, getMpTags, getMpTag, showTags, attachTagMedia, detachTagMedia, moveTag, editTagLabel, editTagDescription, editTagStem, editTagIcon, editTagColor, saveTag, rotateCameraToObject, setModelVisibility, tagStateSubscriber, setTagIcon, setTagCategories, setUserAssignedCategories, getUserAssignedCategories, setTagMessageRecepients, getTagMessageRecepients, setTagMessages, getTagMessages, setSelectedTagUuid, getSelectedTagUuid, toggleFitToScreen, getFloors, getLabels, renderMeetingSidebar, createMeetingTemplate, joinMeetingTemplate, meet, dispatchSpaceEvent, subscribeSpaceEvent, unsubscribeSpaceEvent, registerCustomSpaceEvent, initSocketIo, socketEmit, getParticipants, followParticipant, unFollowParticipant, enableHUD, disableHUD, getMediaScreenHUDs, canSetHud, saveMediaScreenHud, removeMediaScreenHud, enableFitScreen, disableFitScreen, initToolbarUI, themeManager, convertToEuler, disableSweeps, enableSweep, disableSweep, tubeLineType, _sceneObject, _tubes, drawPath, toggleSpaceNavigation, startDraw, exitDraw, cancelDraw, setPolygonPath, setTubeLinePath, getCurrentTubeLine, renderPolygon, toggleWallVisibility, toggleMeshChildrenVisibility, toggleFloorVisibility, getChildrenOfModel, toggleVerticeRingVisibility, setPolygonFloorOffset, getPolygonFloorOffset, setFloorBaseHeight, clearFloorBaseHeight, enableVerticeControls, deleteEdge, disposePathLine, getFloorBaseHeight, setMeshChildrenMaterialProperty, undoDrawAction, redoDrawAction, addUndoDrawActions, setWallBaseHeight, getWallBaseHeight, clearWallBaseHeight, setSpacePartitionNodes, setCurrentPolygon, getSpaceId, getCurrentPolygon, getPathBetweenSweeps, moveAlongPath, };
690
+ export { _atwin, _config, _mpConfig, tags, sweeps, selectedObject, previousObjTransform, currentObjTransform, actionHistory, state, _tags, _tagCategories, _tagMessageRecepients, _space, _spaceId, _api, _pointerCoord, _3DXObjects, _meetingParticipants, _generatedObjectIds, tagColors, domMousePosition, isFitScreenOccupied, isCdnMapDataAvailable, minimap, _modelDetails, _onMouseClickInstance, transformHistory, _partitionNodes, initAtwinApi, getAtwinSdk, connectSpace, disconnectSpace, clearActionHistory, getSweeps, getCurrentSweep, getCurrentSweepPosition, moveToSweep, getNearbySweeps, getAllSweeps, getCurrentCameraPose, getCurrentCameraZoom, getCameraPosition, getCurrentFloor, moveInDirection, cameraLookAt, cameraPan, cameraRotate, cameraSetRotation, getViewMode, setViewMode, captureSpaceScreenshot, captureScreenshotAndCameraDetails, getNearbyObjects, setTransformMode, setSelectedObject, clearSelectedObject, revertTransform, setTransformControls, removeTransformControls, setRenderDistance, addObject, getObject, addObjectToSpace, addMediaScreen, attachMediaScreenContent, updateObject, updateShowcaseObject, deleteObject, deleteShowcaseObject, copyObject, replaceObject, getTargetPosition, setObjectTransformation, setPointerCoordinates, addTextMarkupScreen, setTextMarkupScreenContent, goTo3dx, goToModel, hasTimeElapsed, getSelectedObject, renderAvatar, setSpaceAvatar, get3DXObjects, setLibrary, getLibrary, disposeModel, renderInSpaceMediaScreen, goToPosition, goToParticipant, getNearestSweepFromObject, cancelModelPlacement, renderViewpointMarker, toggleViewpointVisibility, convertDegRotationToEuler, pauseVideo, playVideo, setVideoPlayback, setAnimationState, showMinimap, hideMinimap, getMapConfig, addTag, getTags, gotoTag, renderTag, disposeTag, disposeTags, getMpTags, getMpTag, showTags, attachTagMedia, detachTagMedia, moveTag, editTagLabel, editTagDescription, editTagStem, editTagIcon, editTagColor, saveTag, rotateCameraToObject, setModelVisibility, tagStateSubscriber, setTagIcon, setTagCategories, setUserAssignedCategories, getUserAssignedCategories, setTagMessageRecepients, getTagMessageRecepients, setTagMessages, getTagMessages, setSelectedTagUuid, getSelectedTagUuid, toggleFitToScreen, getFloors, getLabels, renderMeetingSidebar, createMeetingTemplate, joinMeetingTemplate, meet, dispatchSpaceEvent, subscribeSpaceEvent, unsubscribeSpaceEvent, registerCustomSpaceEvent, initSocketIo, socketEmit, getParticipants, followParticipant, unFollowParticipant, enableHUD, disableHUD, getMediaScreenHUDs, canSetHud, saveMediaScreenHud, removeMediaScreenHud, enableFitScreen, disableFitScreen, initToolbarUI, themeManager, convertToEuler, disableSweeps, enableSweep, disableSweep, tubeLineType, _sceneObject, _tubes, drawPath, toggleSpaceNavigation, startDraw, exitDraw, cancelDraw, setPolygonPath, setTubeLinePath, getCurrentTubeLine, renderPolygon, toggleWallVisibility, toggleMeshChildrenVisibility, toggleFloorVisibility, getChildrenOfModel, toggleVerticeRingVisibility, setPolygonFloorOffset, getPolygonFloorOffset, setFloorBaseHeight, clearFloorBaseHeight, enableVerticeControls, deleteEdge, disposePathLine, getFloorBaseHeight, setMeshChildrenMaterialProperty, undoDrawAction, redoDrawAction, addUndoDrawActions, setWallBaseHeight, getWallBaseHeight, clearWallBaseHeight, setSpacePartitionNodes, setCurrentPolygon, getSpaceId, getCurrentPolygon, getPathBetweenSweeps, moveAlongPath, _atwinConnections };
package/lib/architwin.js CHANGED
@@ -7383,4 +7383,4 @@ tubeLineType, _sceneObject, _tubes, drawPath, toggleSpaceNavigation, startDraw,
7383
7383
  // Space partition
7384
7384
  setSpacePartitionNodes, setCurrentPolygon,
7385
7385
  // others
7386
- getSpaceId, getCurrentPolygon, getPathBetweenSweeps, moveAlongPath, };
7386
+ getSpaceId, getCurrentPolygon, getPathBetweenSweeps, moveAlongPath, _atwinConnections };
@@ -141,6 +141,12 @@ i18n
141
141
  "CoordinateNote": "The coordinate from your CAD or either BIM tools shall be internally converted to the appropriate coordinate used by the Matterport space.",
142
142
  "CalibrateBasepoint": "Calibrate Basepoint",
143
143
  "AdjustBasepoint": "Adjust Basepoint",
144
+ "Shorcuts": "Shortcuts",
145
+ "AddVertex": "Add Vertex",
146
+ "UndoPlaceVertex": "Undo Place Vertex",
147
+ "RedoPlaceVertex": "Redo Place Vertex",
148
+ "HideShowAll": " Hide/Show All Rooms",
149
+ "Navigate": "Navigate"
144
150
  }
145
151
  },
146
152
  ja: {
@@ -274,6 +280,12 @@ i18n
274
280
  "Radian": "ラジアン",
275
281
  "Degree": "度",
276
282
  "CoordinateNote": "CAD または BIM ツールからの座標は、Matterport スペースで使用される適切な座標に内部的に変換される必要があります。",
283
+ "Shorcuts": "ショートカット",
284
+ "AddVertex": "頂点を追加",
285
+ "UndoPlaceVertex": "頂点の配置を元に戻す",
286
+ "RedoPlaceVertex": "頂点の配置をやり直す",
287
+ "HideShowAll": "すべての部屋を非表示/表示",
288
+ "Navigate": "ナビゲート"
277
289
  }
278
290
  }
279
291
  },
@@ -16,6 +16,7 @@ import { getCurrentEditRoomData } from './roomTreePane';
16
16
  import { toggleModal, setModalAction } from "../modal";
17
17
  import { Notyf } from 'notyf';
18
18
  import log from 'loglevel';
19
+ import { getShortcutTooltipHTML } from '../static/common';
19
20
  let isDrawing = false;
20
21
  let roomFormMode = "ADD" /* FORM_MODE.ADD */;
21
22
  let isSaving = false;
@@ -33,7 +34,7 @@ let currentHighlightedFace = null;
33
34
  let previousPartitionData = null;
34
35
  let tempCurrentPolygon = undefined;
35
36
  export function renderRoomFormPane() {
36
- console.info("__@ renderRoomFormPane");
37
+ console.info("__@ renderRoomFormPane: ", roomFormMode);
37
38
  const element = document.createElement('div');
38
39
  element.classList.add('at_container');
39
40
  element.classList.add('at_w-12');
@@ -243,7 +244,11 @@ function populatePartitionForm(partition) {
243
244
  */
244
245
  function displayFormTitle() {
245
246
  const title = document.getElementById('at-room-form-title');
246
- title.innerHTML = '';
247
+ title.innerHTML = `
248
+ <span class="mdi mdi-keyboard at_pull_left at_icon_hover">
249
+ ${getShortcutTooltipHTML()}
250
+ </span>
251
+ `;
247
252
  const span = document.createElement('span');
248
253
  span.textContent = roomFormMode === 'ADD'
249
254
  ? i18n.t('AddRoom')
@@ -13,6 +13,7 @@ import i18n from "../i18n";
13
13
  import { getCurrentPolygonData, setPartitionFormMode } from "./roomFormPane";
14
14
  import { SPACE_EVENTS } from "../../../../types";
15
15
  import { _3DXObjects, dispatchSpaceEvent, getChildrenOfModel, goToModel, renderPolygon, setSelectedObject } from "../../../../architwin";
16
+ import { getShortcutTooltipHTML } from "../static/common";
16
17
  let roomDataArray = [];
17
18
  let currentEditRoomData = null;
18
19
  let currentSelectedPartitionId = null;
@@ -31,6 +32,9 @@ export function renderRoomTreePane() {
31
32
  element.setAttribute('data-cy', 'at-room-tree-pane');
32
33
  element.innerHTML = `
33
34
  <div class="at_panel_header">
35
+ <span class="mdi mdi-keyboard at_pull_left at_icon_hover">
36
+ ${getShortcutTooltipHTML()}
37
+ </span>
34
38
  <span>${i18n.t('RoomTree')}</span>
35
39
  </div>
36
40
 
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns the HTML string for the shortcut tooltip.
3
+ */
4
+ export declare function getShortcutTooltipHTML(): string;
@@ -0,0 +1,17 @@
1
+ import i18n from "../i18n";
2
+ /**
3
+ * Returns the HTML string for the shortcut tooltip.
4
+ */
5
+ export function getShortcutTooltipHTML() {
6
+ const tooltipElement = `
7
+ <span class="at_custom_tooltip">
8
+ <span class="at_tooltip_title">${i18n.t('Shorcuts')}</span>
9
+ <span class="shortcut">Alt (⌥) + Click</span> ${i18n.t('AddVertex')}
10
+ <span class="at_ml_4 shortcut" >Ctrl (^) + Z</span> ${i18n.t('UndoPlaceVertex')} <br>
11
+ <span class="shortcut">Ctrl (^) + Shift + Z</span> ${i18n.t('RedoPlaceVertex')}
12
+ <span class="at_ml_4 shortcut">F8</span> ${i18n.t('HideShowAll')} <br>
13
+ <span class="shortcut">Click</span> ${i18n.t('Navigate')}
14
+ </span>
15
+ `;
16
+ return tooltipElement;
17
+ }
@@ -1,5 +1,5 @@
1
1
  import { Pane } from 'tweakpane';
2
- import { dispatchSpaceEvent, renderPolygon, getPolygonFloorOffset, getCurrentFloor, getWallBaseHeight } from "../architwin";
2
+ import { dispatchSpaceEvent, renderPolygon, getPolygonFloorOffset, getCurrentFloor, getWallBaseHeight, getFloorBaseHeight } from "../architwin";
3
3
  import { SPACE_EVENTS } from "../types";
4
4
  import { getPolygonArea } from "../utils";
5
5
  import { PolygonCalculator, WallCalculator } from "../math";
@@ -398,6 +398,13 @@ export class Vertice {
398
398
  //this.pointerIntersection.object === 'intersectedobject.model'
399
399
  if (this.pointerIntersection.object) {
400
400
  let e = Object.assign({}, this.pointerIntersection.position);
401
+ const floorLevel = getFloorBaseHeight();
402
+ if (floorLevel != undefined) {
403
+ e.y = floorLevel;
404
+ }
405
+ else {
406
+ e.y = this.mesh.position.y;
407
+ }
401
408
  this.mesh.position.set(e.x, e.y, e.z);
402
409
  //this.mesh.children[0].position.set(e.x, e.y, e.z)
403
410
  //@ts-expect-error
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "architwin",
3
- "version": "1.10.6",
3
+ "version": "1.10.8",
4
4
  "description": "ArchiTwin Library for Matterport",
5
5
  "main": "./lib/architwin.js",
6
6
  "types": "./lib/architwin.d.ts",
@@ -1505,6 +1505,78 @@
1505
1505
  padding-right: 5px;
1506
1506
  }
1507
1507
 
1508
+ .at_icon_hover {
1509
+ padding-right: 0.5em;
1510
+ padding-left: 0.5em;
1511
+ border-radius: 4px;
1512
+ transition: background-color 0.2s ease-in-out;
1513
+ position: relative;
1514
+ }
1515
+
1516
+ .at_icon_hover:hover {
1517
+ background-color: rgba(128, 128, 128, 0.5);
1518
+ }
1519
+
1520
+ .at_custom_tooltip {
1521
+ position: absolute;
1522
+ top: 120%;
1523
+ left: 50%;
1524
+ transform: translateX(-50%);
1525
+ background-color: rgba(0, 0, 0, 0.9);
1526
+ color: white;
1527
+ padding: 8px 12px;
1528
+ font-size: 12px;
1529
+ border-radius: 6px;
1530
+ text-align: left;
1531
+ opacity: 0;
1532
+ visibility: hidden;
1533
+ transition: opacity 0.2s ease-in-out;
1534
+ width: max-content;
1535
+ max-width: none;
1536
+ z-index: 10;
1537
+ white-space: nowrap;
1538
+ }
1539
+
1540
+ .at_icon_hover:hover .at_custom_tooltip {
1541
+ opacity: 1;
1542
+ visibility: visible;
1543
+ }
1544
+
1545
+ .at_custom_tooltip .shortcut {
1546
+ background-color: rgba(128, 128, 128, 0.3);
1547
+ padding: 2px 6px;
1548
+ border-radius: 4px;
1549
+ font-family: monospace;
1550
+ font-weight: bold;
1551
+ color: white;
1552
+ display: inline-block;
1553
+ margin: 2px 0;
1554
+ }
1555
+
1556
+ /* Tooltip Arrow */
1557
+ .at_custom_tooltip::after {
1558
+ content: "";
1559
+ position: absolute;
1560
+ top: -10px;
1561
+ left: 50%;
1562
+ transform: translateX(-50%);
1563
+ border-width: 5px;
1564
+ border-style: solid;
1565
+ border-color: transparent transparent black transparent;
1566
+ }
1567
+
1568
+ .at_icon_hover:hover .at_custom_tooltip {
1569
+ display: block;
1570
+ }
1571
+
1572
+ .at_tooltip_title {
1573
+ display: block;
1574
+ font-weight: bold;
1575
+ text-align: center;
1576
+ margin-bottom: 3px;
1577
+ font-size: 14px;
1578
+ }
1579
+
1508
1580
  /* BIM */
1509
1581
  .at_mt_static_text_container {
1510
1582
  text-align: center;
@@ -257,10 +257,33 @@ width: 100vw;
257
257
  float: right;
258
258
  }
259
259
 
260
+ .at_pull_left {
261
+ float: left;
262
+ }
260
263
  .at_mx-auto {
261
264
  margin: auto;
262
265
  }
263
266
 
267
+ .at_ml_0 {
268
+ margin-left: 0 !important;
269
+ }
270
+
271
+ .at_ml_1 {
272
+ margin-left: 0.25rem !important;
273
+ }
274
+
275
+ .at_ml_2 {
276
+ margin-left: 0.5rem !important;
277
+ }
278
+
279
+ .at_ml_3 {
280
+ margin-left: 0.75rem !important;
281
+ }
282
+
283
+ .at_ml_4 {
284
+ margin-left: 1rem !important;
285
+ }
286
+
264
287
  .at_gap_1 {
265
288
  gap: 0.25rem;
266
289
  }