Skip to content

Commit 7b58f00

Browse files
fix: recttool local bounds error (#327)
1 parent 8fc84c6 commit 7b58f00

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

packages/gizmo/src/Rect.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ import {
1414
Ray,
1515
Renderer,
1616
SkinnedMeshRenderer,
17+
SpriteMask,
18+
SpriteRenderer,
1719
SubMesh,
20+
TextRenderer,
1821
Transform,
1922
Vector2,
2023
Vector3
@@ -1635,6 +1638,23 @@ export class RectControl extends GizmoComponent {
16351638
} else {
16361639
return false;
16371640
}
1641+
} else if (renderer instanceof SpriteRenderer || renderer instanceof SpriteMask) {
1642+
const { min: tempMin, max: tempMax } = out;
1643+
const { width, height } = renderer;
1644+
const sprite = renderer.sprite;
1645+
let pivotX = sprite?.pivot.x || 0.5;
1646+
let pivotY = sprite?.pivot.y || 0.5;
1647+
tempMin.set(-width * pivotX, -height * pivotY, 0);
1648+
tempMax.set(width * (1 - pivotX), height * (1 - pivotY), 0);
1649+
return true;
1650+
} else if (renderer instanceof TextRenderer) {
1651+
const { min: tempMin, max: tempMax } = out;
1652+
const { width, height } = renderer;
1653+
const pivotX = 0.5;
1654+
const pivotY = 0.5;
1655+
tempMin.set(-width * pivotX, -height * pivotY, 0);
1656+
tempMax.set(width * (1 - pivotX), height * (1 - pivotY), 0);
1657+
return true;
16381658
} else if (renderer instanceof ParticleRenderer) {
16391659
return false;
16401660
}

0 commit comments

Comments
 (0)