import { Matrix16T } from '../vuer'; /** * Box size as [width, height, depth] */ export type BoxSize = [ width: number, height: number, depth: number ]; /** * The TransformProps, shared among most of the Object3D components. */ export interface TransformProps { /** * @dial transform * @dial-group-grid-cols 3 * @dial-dtype vector3 * @dial-step 0.001 */ position?: [number, number, number]; /** * @dial transform * @dial-dtype vector3 * @dial-step 0.001 */ rotation?: [number, number, number]; /** * @dial transform * @dial-dtype vector3 * @dial-default [1, 1, 1] * @dial-min -1000 * @dial-max 1000 * @dial-step 0.001 */ scale?: [number, number, number]; /** * @dial transform * @dial-dtype quaternion * @dial-step 0.001 */ quaternion?: [number, number, number, number]; /** @dial-ignore */ matrix?: Matrix16T; } /** * Common Object3D rendering properties * @dial rendering */ export interface Object3DProps { /** * Enable shadow casting * @dial rendering * @dial-label-left * @dial-dtype boolean * @dial-default true */ castShadow?: boolean; /** * Enable shadow receiving * @dial rendering * @dial-label-left * @dial-dtype boolean * @dial-default true */ receiveShadow?: boolean; /** * Object visibility * @dial rendering * @dial-label-left * @dial-dtype boolean * @dial-default true */ visible?: boolean; /** * Render order for controlling draw order * @dial rendering * @dial-label-left * @dial-dtype number * @dial-default 0 * @dial-step 1 */ renderOrder?: number; /** * Enable frustum culling * @dial rendering * @dial-label-left * @dial-dtype boolean * @dial-default true */ frustumCulled?: boolean; }