auto-git:

[change] src/geometry/box-brush-mesh.ts
 [change] src/geometry/box-face-uvs.ts
This commit is contained in:
2026-04-05 02:25:28 +02:00
parent 0b54fa14c9
commit 03465d1d84
2 changed files with 8 additions and 19 deletions

View File

@@ -62,22 +62,6 @@ function cloneVec3(vector: Vec3): Vec3 {
return { x: vector.x, y: vector.y, z: vector.z };
}
function subtractVec3(left: Vec3, right: Vec3): Vec3 {
return {
x: left.x - right.x,
y: left.y - right.y,
z: left.z - right.z
};
}
function crossVec3(left: Vec3, right: Vec3): Vec3 {
return {
x: left.y * right.z - left.z * right.y,
y: left.z * right.x - left.x * right.z,
z: left.x * right.y - left.y * right.x
};
}
function dotVec3(left: Vec3, right: Vec3): number {
return left.x * right.x + left.y * right.y + left.z * right.z;
}

View File

@@ -4,7 +4,12 @@ import type { Vec2, Vec3 } from "../core/vector";
import { BOX_FACE_IDS, createDefaultFaceUvState, type BoxBrush, type BoxFaceId, type FaceUvState } from "../document/brushes";
import { getBoxBrushHalfSize } from "./box-brush";
export function getBoxBrushFaceSize(brush: BoxBrush, faceId: BoxFaceId): Vec2 {
interface BoxBrushUvProjectionSource {
size: Vec3;
faces: Record<BoxFaceId, { uv: FaceUvState }>;
}
export function getBoxBrushFaceSize(brush: BoxBrushUvProjectionSource, faceId: BoxFaceId): Vec2 {
switch (faceId) {
case "posX":
case "negX":
@@ -39,7 +44,7 @@ export function createFitToFaceBoxBrushFaceUvState(brush: BoxBrush, faceId: BoxF
};
}
export function projectBoxFaceVertexToUv(vertexPosition: Vec3, brush: BoxBrush, faceId: BoxFaceId): Vec2 {
export function projectBoxFaceVertexToUv(vertexPosition: Vec3, brush: BoxBrushUvProjectionSource, faceId: BoxFaceId): Vec2 {
const halfSize = getBoxBrushHalfSize(brush);
switch (faceId) {
@@ -113,7 +118,7 @@ export function transformProjectedFaceUv(baseUv: Vec2, faceSize: Vec2, uvState:
};
}
export function applyBoxBrushFaceUvsToGeometry(geometry: BoxGeometry, brush: BoxBrush): void {
export function applyBoxBrushFaceUvsToGeometry(geometry: BoxGeometry, brush: BoxBrushUvProjectionSource): void {
const positionAttribute = geometry.getAttribute("position");
const uvAttribute = geometry.getAttribute("uv");
const indexAttribute = geometry.getIndex();