import { ScadNumber } from './ScadNumber'; export type ScadVector2 = readonly [T, T] | [T, T]; export type ScadVector3 = readonly [T, T, T] | [T, T, T]; export type ScadVector = ScadVector2 | ScadVector3; export function isScadVector2( val: ScadVector2 | any, isPlain?: (x: any) => x is T ): val is ScadVector2 { if (!val || !Array.isArray(val) || val.length !== 2) { return false; } return !isPlain || val.every(isPlain); } export function isScadVector3( val: ScadVector3 | any, isPlain?: (x: any) => x is T ): val is ScadVector3 { if (!val || !Array.isArray(val) || val.length !== 3) { return false; } return !isPlain || val.every(isPlain); } export function isScadVector( val: ScadVector | any ): val is ScadVector { return isScadVector2(val) || isScadVector3(val); }