Add method to apply local light render object transform
This commit is contained in:
@@ -1512,6 +1512,24 @@ export class ViewportHost {
|
||||
break;
|
||||
}
|
||||
}
|
||||
applyLocalLightRenderObjectTransform(entity) {
|
||||
const renderObjects = this.localLightRenderObjects.get(entity.id);
|
||||
if (renderObjects === undefined) {
|
||||
return;
|
||||
}
|
||||
switch (entity.kind) {
|
||||
case "pointLight":
|
||||
renderObjects.group.position.set(entity.position.x, entity.position.y, entity.position.z);
|
||||
renderObjects.group.rotation.set(0, 0, 0);
|
||||
renderObjects.group.quaternion.identity();
|
||||
break;
|
||||
case "spotLight":
|
||||
this.applySpotLightGroupTransform(renderObjects.group, entity.position, entity.direction);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
applyModelInstanceRenderObjectTransform(modelInstance) {
|
||||
const renderGroup = this.modelRenderObjects.get(modelInstance.id);
|
||||
if (renderGroup === undefined) {
|
||||
@@ -1531,6 +1549,7 @@ export class ViewportHost {
|
||||
}
|
||||
for (const entity of getEntityInstances(this.currentDocument.entities)) {
|
||||
this.applyEntityRenderObjectTransform(entity);
|
||||
this.applyLocalLightRenderObjectTransform(entity);
|
||||
}
|
||||
for (const modelInstance of getModelInstances(this.currentDocument.modelInstances)) {
|
||||
this.applyModelInstanceRenderObjectTransform(modelInstance);
|
||||
@@ -1584,6 +1603,10 @@ export class ViewportHost {
|
||||
...currentEntity,
|
||||
position: this.currentTransformSession.preview.position
|
||||
});
|
||||
this.applyLocalLightRenderObjectTransform({
|
||||
...currentEntity,
|
||||
position: this.currentTransformSession.preview.position
|
||||
});
|
||||
break;
|
||||
case "spotLight":
|
||||
this.applyEntityRenderObjectTransform({
|
||||
@@ -1593,6 +1616,13 @@ export class ViewportHost {
|
||||
? this.currentTransformSession.preview.rotation.direction
|
||||
: currentEntity.direction
|
||||
});
|
||||
this.applyLocalLightRenderObjectTransform({
|
||||
...currentEntity,
|
||||
position: this.currentTransformSession.preview.position,
|
||||
direction: this.currentTransformSession.preview.rotation.kind === "direction"
|
||||
? this.currentTransformSession.preview.rotation.direction
|
||||
: currentEntity.direction
|
||||
});
|
||||
break;
|
||||
case "playerStart":
|
||||
case "teleportTarget":
|
||||
@@ -1603,6 +1633,13 @@ export class ViewportHost {
|
||||
? this.currentTransformSession.preview.rotation.yawDegrees
|
||||
: currentEntity.yawDegrees
|
||||
});
|
||||
this.applyLocalLightRenderObjectTransform({
|
||||
...currentEntity,
|
||||
position: this.currentTransformSession.preview.position,
|
||||
yawDegrees: this.currentTransformSession.preview.rotation.kind === "yaw"
|
||||
? this.currentTransformSession.preview.rotation.yawDegrees
|
||||
: currentEntity.yawDegrees
|
||||
});
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user