Add cone and torus brush creation functions
This commit is contained in:
@@ -1107,9 +1107,14 @@ export function createWedgeBrush(
|
|||||||
overrides.geometry === undefined
|
overrides.geometry === undefined
|
||||||
? createDefaultWedgeBrushGeometry(fallbackSize)
|
? createDefaultWedgeBrushGeometry(fallbackSize)
|
||||||
: cloneBrushGeometry(overrides.geometry);
|
: cloneBrushGeometry(overrides.geometry);
|
||||||
|
const baseOverrides = {
|
||||||
|
...overrides,
|
||||||
|
rotationDegrees:
|
||||||
|
overrides.rotationDegrees ?? DEFAULT_WEDGE_BRUSH_ROTATION_DEGREES
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...createBrushBase(overrides, geometry),
|
...createBrushBase(baseOverrides, geometry),
|
||||||
kind: "wedge",
|
kind: "wedge",
|
||||||
geometry,
|
geometry,
|
||||||
faces:
|
faces:
|
||||||
@@ -1143,7 +1148,9 @@ export function createRadialPrismBrush(
|
|||||||
>
|
>
|
||||||
> = {}
|
> = {}
|
||||||
): RadialPrismBrush {
|
): RadialPrismBrush {
|
||||||
const sideCount = normalizeRadialPrismSideCount(overrides.sideCount ?? 12);
|
const sideCount = normalizeRadialPrismSideCount(
|
||||||
|
overrides.sideCount ?? DEFAULT_RADIAL_PRISM_SIDE_COUNT
|
||||||
|
);
|
||||||
const fallbackSize = cloneVec3(overrides.size ?? DEFAULT_BOX_BRUSH_SIZE);
|
const fallbackSize = cloneVec3(overrides.size ?? DEFAULT_BOX_BRUSH_SIZE);
|
||||||
const geometry =
|
const geometry =
|
||||||
overrides.geometry === undefined
|
overrides.geometry === undefined
|
||||||
@@ -1166,6 +1173,105 @@ export function createRadialPrismBrush(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createConeBrush(
|
||||||
|
overrides: Partial<
|
||||||
|
Pick<
|
||||||
|
ConeBrush,
|
||||||
|
| "id"
|
||||||
|
| "name"
|
||||||
|
| "visible"
|
||||||
|
| "enabled"
|
||||||
|
| "center"
|
||||||
|
| "rotationDegrees"
|
||||||
|
| "size"
|
||||||
|
| "sideCount"
|
||||||
|
| "geometry"
|
||||||
|
| "faces"
|
||||||
|
| "volume"
|
||||||
|
| "layerId"
|
||||||
|
| "groupId"
|
||||||
|
>
|
||||||
|
> = {}
|
||||||
|
): ConeBrush {
|
||||||
|
const sideCount = normalizeConeSideCount(
|
||||||
|
overrides.sideCount ?? DEFAULT_CONE_SIDE_COUNT
|
||||||
|
);
|
||||||
|
const fallbackSize = cloneVec3(overrides.size ?? DEFAULT_BOX_BRUSH_SIZE);
|
||||||
|
const geometry =
|
||||||
|
overrides.geometry === undefined
|
||||||
|
? createDefaultConeBrushGeometry(fallbackSize, sideCount)
|
||||||
|
: cloneBrushGeometry(overrides.geometry);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...createBrushBase(overrides, geometry),
|
||||||
|
kind: "cone",
|
||||||
|
sideCount,
|
||||||
|
geometry,
|
||||||
|
faces:
|
||||||
|
overrides.faces === undefined
|
||||||
|
? createDefaultConeBrushFaces(sideCount)
|
||||||
|
: cloneBrushFaces(overrides.faces),
|
||||||
|
volume:
|
||||||
|
overrides.volume === undefined
|
||||||
|
? createDefaultBoxBrushVolumeSettings()
|
||||||
|
: cloneBoxBrushVolumeSettings(overrides.volume)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createTorusBrush(
|
||||||
|
overrides: Partial<
|
||||||
|
Pick<
|
||||||
|
TorusBrush,
|
||||||
|
| "id"
|
||||||
|
| "name"
|
||||||
|
| "visible"
|
||||||
|
| "enabled"
|
||||||
|
| "center"
|
||||||
|
| "rotationDegrees"
|
||||||
|
| "size"
|
||||||
|
| "majorSegmentCount"
|
||||||
|
| "tubeSegmentCount"
|
||||||
|
| "geometry"
|
||||||
|
| "faces"
|
||||||
|
| "volume"
|
||||||
|
| "layerId"
|
||||||
|
| "groupId"
|
||||||
|
>
|
||||||
|
> = {}
|
||||||
|
): TorusBrush {
|
||||||
|
const majorSegmentCount = normalizeTorusMajorSegmentCount(
|
||||||
|
overrides.majorSegmentCount ?? DEFAULT_TORUS_MAJOR_SEGMENT_COUNT
|
||||||
|
);
|
||||||
|
const tubeSegmentCount = normalizeTorusTubeSegmentCount(
|
||||||
|
overrides.tubeSegmentCount ?? DEFAULT_TORUS_TUBE_SEGMENT_COUNT
|
||||||
|
);
|
||||||
|
const fallbackSize = cloneVec3(overrides.size ?? DEFAULT_TORUS_BRUSH_SIZE);
|
||||||
|
const geometry =
|
||||||
|
overrides.geometry === undefined
|
||||||
|
? createDefaultTorusBrushGeometry(
|
||||||
|
fallbackSize,
|
||||||
|
majorSegmentCount,
|
||||||
|
tubeSegmentCount
|
||||||
|
)
|
||||||
|
: cloneBrushGeometry(overrides.geometry);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...createBrushBase(overrides, geometry),
|
||||||
|
kind: "torus",
|
||||||
|
majorSegmentCount,
|
||||||
|
tubeSegmentCount,
|
||||||
|
geometry,
|
||||||
|
faces:
|
||||||
|
overrides.faces === undefined
|
||||||
|
? createDefaultTorusBrushFaces(majorSegmentCount, tubeSegmentCount)
|
||||||
|
: cloneBrushFaces(overrides.faces),
|
||||||
|
volume:
|
||||||
|
overrides.volume === undefined
|
||||||
|
? createDefaultBoxBrushVolumeSettings()
|
||||||
|
: cloneBoxBrushVolumeSettings(overrides.volume)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function cloneBoxBrush(brush: BoxBrush): BoxBrush {
|
export function cloneBoxBrush(brush: BoxBrush): BoxBrush {
|
||||||
return createBoxBrush(brush);
|
return createBoxBrush(brush);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user