Add function to create runtime geometry brush

This commit is contained in:
2026-04-15 08:00:30 +02:00
parent 71d914fb49
commit b9ba1b05bd

View File

@@ -161,6 +161,48 @@ interface CachedMaterialTexture {
textureSet: StarterMaterialTextureSet;
}
function createRuntimeGeometryBrush(brush: RuntimeBoxBrushInstance): Brush {
switch (brush.kind) {
case "box":
return createBoxBrush({
id: brush.id,
visible: brush.visible,
center: brush.center,
rotationDegrees: brush.rotationDegrees,
size: brush.size,
geometry: brush.geometry as Parameters<typeof createBoxBrush>[0]["geometry"],
faces: brush.faces as Parameters<typeof createBoxBrush>[0]["faces"],
volume: brush.volume
});
case "wedge":
return createWedgeBrush({
id: brush.id,
visible: brush.visible,
center: brush.center,
rotationDegrees: brush.rotationDegrees,
size: brush.size,
geometry:
brush.geometry as Parameters<typeof createWedgeBrush>[0]["geometry"],
faces: brush.faces as Parameters<typeof createWedgeBrush>[0]["faces"],
volume: brush.volume
});
case "radialPrism":
return createRadialPrismBrush({
id: brush.id,
visible: brush.visible,
center: brush.center,
rotationDegrees: brush.rotationDegrees,
size: brush.size,
sideCount: brush.sideCount,
geometry:
brush.geometry as Parameters<typeof createRadialPrismBrush>[0]["geometry"],
faces:
brush.faces as Parameters<typeof createRadialPrismBrush>[0]["faces"],
volume: brush.volume
});
}
}
function isEditableEventTarget(target: EventTarget | null): boolean {
if (!(target instanceof HTMLElement)) {
return false;