2026-01-21 10:03:29 +09:00

14 lines
411 B
TypeScript

import { z } from 'zod'
const Vector3Schema = z.tuple([z.number(), z.number(), z.number()])
export const CameraSchema = z.object({
position: Vector3Schema,
target: Vector3Schema,
mode: z.enum(['perspective', 'orthographic']).default('perspective'),
fov: z.number().optional(), // For perspective
zoom: z.number().optional(), // For orthographic
})
export type Camera = z.infer<typeof CameraSchema>