Update viewport transient state to support cone and torus brushes
This commit is contained in:
@@ -20,6 +20,15 @@ export type CreationTarget =
|
||||
kind: "cylinder-brush";
|
||||
sideCount: number;
|
||||
}
|
||||
| {
|
||||
kind: "cone-brush";
|
||||
sideCount: number;
|
||||
}
|
||||
| {
|
||||
kind: "torus-brush";
|
||||
majorSegmentCount: number;
|
||||
tubeSegmentCount: number;
|
||||
}
|
||||
| {
|
||||
kind: "entity";
|
||||
entityKind: EntityKind;
|
||||
@@ -84,6 +93,17 @@ export function cloneViewportToolPreview(toolPreview: ViewportToolPreview): View
|
||||
kind: "cylinder-brush",
|
||||
sideCount: toolPreview.target.sideCount
|
||||
}
|
||||
: toolPreview.target.kind === "cone-brush"
|
||||
? {
|
||||
kind: "cone-brush",
|
||||
sideCount: toolPreview.target.sideCount
|
||||
}
|
||||
: toolPreview.target.kind === "torus-brush"
|
||||
? {
|
||||
kind: "torus-brush",
|
||||
majorSegmentCount: toolPreview.target.majorSegmentCount,
|
||||
tubeSegmentCount: toolPreview.target.tubeSegmentCount
|
||||
}
|
||||
: {
|
||||
kind: "box-brush"
|
||||
},
|
||||
@@ -134,6 +154,23 @@ export function areViewportToolPreviewsEqual(left: ViewportToolPreview, right: V
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
left.target.kind === "cone-brush" &&
|
||||
right.target.kind === "cone-brush" &&
|
||||
left.target.sideCount !== right.target.sideCount
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
left.target.kind === "torus-brush" &&
|
||||
right.target.kind === "torus-brush" &&
|
||||
(left.target.majorSegmentCount !== right.target.majorSegmentCount ||
|
||||
left.target.tubeSegmentCount !== right.target.tubeSegmentCount)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (left.center === null || right.center === null) {
|
||||
return left.center === right.center;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user