feat(tabletop): add tilt and zStart/zEnd stacking options
Replace the per-part lift with a local Y-axis tilt that fans the stack, and add zStart/zEnd to ramp the stack's height across the curve so it arches in 3D. Update the poker deck and docs accordingly.
This commit is contained in:
@@ -17,6 +17,9 @@ const stacking = z.object({
|
||||
limit: z.number().optional(),
|
||||
align: z.enum(['start', 'end', 'center']).optional(),
|
||||
steps: z.number().optional(),
|
||||
tilt: z.number().optional(),
|
||||
zStart: z.number().optional(),
|
||||
zEnd: z.number().optional(),
|
||||
});
|
||||
|
||||
const route = z.object({
|
||||
|
||||
@@ -107,6 +107,20 @@ export interface Stacking {
|
||||
align?: 'start' | 'end' | 'center';
|
||||
/** Maximum parts per curve length unit; defaults to `1`. */
|
||||
steps?: number;
|
||||
/**
|
||||
* Rotation in radians per shown part about the card's local Y (long) axis.
|
||||
* Each part tilts `tilt` more than the previous, fanning the stack so its
|
||||
* edges stay visible. Works with or without a `curve`.
|
||||
*/
|
||||
tilt?: number;
|
||||
/**
|
||||
* Height (surface-normal) in mm at the start of the `curve`. The stack
|
||||
* ramps linearly to `zEnd` across its span, lifting it in 3D. Requires a
|
||||
* `curve`.
|
||||
*/
|
||||
zStart?: number;
|
||||
/** Height (surface-normal) in mm at the end of the `curve`. */
|
||||
zEnd?: number;
|
||||
}
|
||||
|
||||
/** How a surface is mounted. `kind` selects the mount type. */
|
||||
|
||||
Reference in New Issue
Block a user