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";
|
kind: "cylinder-brush";
|
||||||
sideCount: number;
|
sideCount: number;
|
||||||
}
|
}
|
||||||
|
| {
|
||||||
|
kind: "cone-brush";
|
||||||
|
sideCount: number;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
kind: "torus-brush";
|
||||||
|
majorSegmentCount: number;
|
||||||
|
tubeSegmentCount: number;
|
||||||
|
}
|
||||||
| {
|
| {
|
||||||
kind: "entity";
|
kind: "entity";
|
||||||
entityKind: EntityKind;
|
entityKind: EntityKind;
|
||||||
@@ -84,6 +93,17 @@ export function cloneViewportToolPreview(toolPreview: ViewportToolPreview): View
|
|||||||
kind: "cylinder-brush",
|
kind: "cylinder-brush",
|
||||||
sideCount: toolPreview.target.sideCount
|
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"
|
kind: "box-brush"
|
||||||
},
|
},
|
||||||
@@ -134,6 +154,23 @@ export function areViewportToolPreviewsEqual(left: ViewportToolPreview, right: V
|
|||||||
return false;
|
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) {
|
if (left.center === null || right.center === null) {
|
||||||
return left.center === right.center;
|
return left.center === right.center;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user