Update preview group creation to handle wireframe display mode
This commit is contained in:
@@ -2987,18 +2987,21 @@ export class ViewportHost {
|
|||||||
fallbackGroup.visible = false;
|
fallbackGroup.visible = false;
|
||||||
return fallbackGroup;
|
return fallbackGroup;
|
||||||
}
|
}
|
||||||
case "entity":
|
case "entity": {
|
||||||
|
let previewGroup: Group;
|
||||||
|
|
||||||
switch (toolPreview.target.entityKind) {
|
switch (toolPreview.target.entityKind) {
|
||||||
case "pointLight":
|
case "pointLight":
|
||||||
return this.createPointLightGizmoRenderObjects(
|
previewGroup = this.createPointLightGizmoRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_POINT_LIGHT_DISTANCE,
|
DEFAULT_POINT_LIGHT_DISTANCE,
|
||||||
PLACEMENT_PREVIEW_COLOR_HEX,
|
PLACEMENT_PREVIEW_COLOR_HEX,
|
||||||
false
|
false
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
case "spotLight":
|
case "spotLight":
|
||||||
return this.createSpotLightGizmoRenderObjects(
|
previewGroup = this.createSpotLightGizmoRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_SPOT_LIGHT_DIRECTION,
|
DEFAULT_SPOT_LIGHT_DIRECTION,
|
||||||
@@ -3007,8 +3010,9 @@ export class ViewportHost {
|
|||||||
PLACEMENT_PREVIEW_COLOR_HEX,
|
PLACEMENT_PREVIEW_COLOR_HEX,
|
||||||
false
|
false
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
case "playerStart":
|
case "playerStart":
|
||||||
return this.createPlayerStartRenderObjects(
|
previewGroup = this.createPlayerStartRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_PLAYER_START_YAW_DEGREES,
|
DEFAULT_PLAYER_START_YAW_DEGREES,
|
||||||
@@ -3021,8 +3025,9 @@ export class ViewportHost {
|
|||||||
},
|
},
|
||||||
false
|
false
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
case "soundEmitter":
|
case "soundEmitter":
|
||||||
return this.createSoundEmitterRenderObjects(
|
previewGroup = this.createSoundEmitterRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_SOUND_EMITTER_REF_DISTANCE,
|
DEFAULT_SOUND_EMITTER_REF_DISTANCE,
|
||||||
@@ -3030,30 +3035,40 @@ export class ViewportHost {
|
|||||||
false,
|
false,
|
||||||
BOX_CREATE_PREVIEW_FILL
|
BOX_CREATE_PREVIEW_FILL
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
case "triggerVolume":
|
case "triggerVolume":
|
||||||
return this.createTriggerVolumeRenderObjects(
|
previewGroup = this.createTriggerVolumeRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_TRIGGER_VOLUME_SIZE,
|
DEFAULT_TRIGGER_VOLUME_SIZE,
|
||||||
false,
|
false,
|
||||||
BOX_CREATE_PREVIEW_FILL
|
BOX_CREATE_PREVIEW_FILL
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
case "teleportTarget":
|
case "teleportTarget":
|
||||||
return this.createTeleportTargetRenderObjects(
|
previewGroup = this.createTeleportTargetRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_TELEPORT_TARGET_YAW_DEGREES,
|
DEFAULT_TELEPORT_TARGET_YAW_DEGREES,
|
||||||
false,
|
false,
|
||||||
BOX_CREATE_PREVIEW_FILL
|
BOX_CREATE_PREVIEW_FILL
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
case "interactable":
|
case "interactable":
|
||||||
return this.createInteractableRenderObjects(
|
previewGroup = this.createInteractableRenderObjects(
|
||||||
"creation-preview",
|
"creation-preview",
|
||||||
previewPosition,
|
previewPosition,
|
||||||
DEFAULT_INTERACTABLE_RADIUS,
|
DEFAULT_INTERACTABLE_RADIUS,
|
||||||
false,
|
false,
|
||||||
BOX_CREATE_PREVIEW_FILL
|
BOX_CREATE_PREVIEW_FILL
|
||||||
).group;
|
).group;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (this.displayMode === "wireframe") {
|
||||||
|
this.applyWireframePresentation(previewGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
return previewGroup;
|
||||||
}
|
}
|
||||||
case "model-instance": {
|
case "model-instance": {
|
||||||
const asset = this.projectAssets[toolPreview.target.assetId];
|
const asset = this.projectAssets[toolPreview.target.assetId];
|
||||||
@@ -3072,7 +3087,14 @@ export class ViewportHost {
|
|||||||
scale: DEFAULT_MODEL_INSTANCE_SCALE
|
scale: DEFAULT_MODEL_INSTANCE_SCALE
|
||||||
});
|
});
|
||||||
|
|
||||||
return createModelInstanceRenderGroup(dummyModelInstance, asset, loadedAsset, false, BOX_CREATE_PREVIEW_FILL);
|
return createModelInstanceRenderGroup(
|
||||||
|
dummyModelInstance,
|
||||||
|
asset,
|
||||||
|
loadedAsset,
|
||||||
|
false,
|
||||||
|
BOX_CREATE_PREVIEW_FILL,
|
||||||
|
this.displayMode === "wireframe" ? "wireframe" : "normal"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ describe("EditorStore", () => {
|
|||||||
writerStore.setViewportLayoutMode("quad");
|
writerStore.setViewportLayoutMode("quad");
|
||||||
writerStore.setActiveViewportPanel("bottomRight");
|
writerStore.setActiveViewportPanel("bottomRight");
|
||||||
writerStore.setViewportPanelViewMode("topLeft", "top");
|
writerStore.setViewportPanelViewMode("topLeft", "top");
|
||||||
writerStore.setViewportPanelDisplayMode("topLeft", "authoring");
|
writerStore.setViewportPanelDisplayMode("topLeft", "wireframe");
|
||||||
writerStore.setViewportPanelCameraState("topLeft", {
|
writerStore.setViewportPanelCameraState("topLeft", {
|
||||||
target: {
|
target: {
|
||||||
x: 6,
|
x: 6,
|
||||||
@@ -107,7 +107,7 @@ describe("EditorStore", () => {
|
|||||||
expect(readerStore.getState().activeViewportPanelId).toBe("bottomRight");
|
expect(readerStore.getState().activeViewportPanelId).toBe("bottomRight");
|
||||||
expect(readerStore.getState().viewportPanels.topLeft).toMatchObject({
|
expect(readerStore.getState().viewportPanels.topLeft).toMatchObject({
|
||||||
viewMode: "top",
|
viewMode: "top",
|
||||||
displayMode: "authoring",
|
displayMode: "wireframe",
|
||||||
cameraState: {
|
cameraState: {
|
||||||
target: {
|
target: {
|
||||||
x: 6,
|
x: 6,
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ describe("local draft storage", () => {
|
|||||||
|
|
||||||
viewportLayoutState.layoutMode = "quad";
|
viewportLayoutState.layoutMode = "quad";
|
||||||
viewportLayoutState.activePanelId = "bottomRight";
|
viewportLayoutState.activePanelId = "bottomRight";
|
||||||
|
viewportLayoutState.panels.topLeft.displayMode = "wireframe";
|
||||||
viewportLayoutState.panels.topLeft.cameraState.target = {
|
viewportLayoutState.panels.topLeft.cameraState.target = {
|
||||||
x: 8,
|
x: 8,
|
||||||
y: 3,
|
y: 3,
|
||||||
@@ -151,6 +152,7 @@ describe("local draft storage", () => {
|
|||||||
activePanelId: "bottomRight",
|
activePanelId: "bottomRight",
|
||||||
panels: {
|
panels: {
|
||||||
topLeft: {
|
topLeft: {
|
||||||
|
displayMode: "wireframe",
|
||||||
cameraState: {
|
cameraState: {
|
||||||
target: {
|
target: {
|
||||||
x: 8,
|
x: 8,
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ describe("viewport layout", () => {
|
|||||||
expect(getViewportLayoutModeLabel("single")).toBe("Single View");
|
expect(getViewportLayoutModeLabel("single")).toBe("Single View");
|
||||||
expect(getViewportLayoutModeLabel("quad")).toBe("4-Panel");
|
expect(getViewportLayoutModeLabel("quad")).toBe("4-Panel");
|
||||||
expect(getViewportDisplayModeLabel("authoring")).toBe("Authoring");
|
expect(getViewportDisplayModeLabel("authoring")).toBe("Authoring");
|
||||||
|
expect(getViewportDisplayModeLabel("wireframe")).toBe("Wireframe");
|
||||||
expect(getViewportPanelLabel("topRight")).toBe("Top Right");
|
expect(getViewportPanelLabel("topRight")).toBe("Top Right");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user