UNPKG

@viji-dev/core

Version:

Universal execution engine for Viji Creative scenes

302 lines (275 loc) 11.2 kB
/** * @fileoverview Viji Artist API - JavaScript IntelliSense Support * Auto-generated from TypeScript definitions - DO NOT EDIT MANUALLY */ /** * Configuration for slider parameters * @typedef {Object} SliderConfig * @property {number} [min] - min property * @property {number} [max] - max property * @property {number} [step] - step property * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property */ /** * Configuration for color parameters * @typedef {Object} ColorConfig * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property */ /** * Configuration for toggle parameters * @typedef {Object} ToggleConfig * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property */ /** * Configuration for select parameters * @typedef {Object} SelectConfig * @property {string[] | number[]} options - options property * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property */ /** * Configuration for text parameters * @typedef {Object} TextConfig * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property * @property {number} [maxLength] - maxLength property */ /** * Configuration for number parameters * @typedef {Object} NumberConfig * @property {number} [min] - min property * @property {number} [max] - max property * @property {number} [step] - step property * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property */ /** * Configuration for image parameters * @typedef {Object} ImageConfig * @property {string} label - label property * @property {string} [description] - description property * @property {string} [group] - group property * @property {ParameterCategory} [category] - category property */ /** * Parameter object for slider parameters * @typedef {Object} SliderParameter * @property {number} value - value property * @property {number} min - min property * @property {number} max - max property * @property {number} step - step property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Parameter object for color parameters * @typedef {Object} ColorParameter * @property {string} value - value property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Parameter object for toggle parameters * @typedef {Object} ToggleParameter * @property {boolean} value - value property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Parameter object for select parameters * @typedef {Object} SelectParameter * @property {string | number} value - value property * @property {string[] | number[]} options - options property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Parameter object for text parameters * @typedef {Object} TextParameter * @property {string} value - value property * @property {number} [maxLength] - maxLength property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Parameter object for number parameters * @typedef {Object} NumberParameter * @property {number} value - value property * @property {number} min - min property * @property {number} max - max property * @property {number} step - step property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Parameter object for image parameters * @typedef {Object} ImageParameter * @property {ImageBitmap | OffscreenCanvas |null} value - value property * @property {string} label - label property * @property {string} [description] - description property * @property {string} group - group property * @property {ParameterCategory} category - category property */ /** * Audio analysis API - provides real-time audio data and frequency analysis * @typedef {Object} AudioAPI * @property {boolean} isConnected - isConnected property * @property {{} volume - volume property * @property {number} rms - rms property * @property {number} peak - peak property */ /** * Video frame API - provides access to video stream and computer vision data * @typedef {Object} VideoAPI * @property {boolean} isConnected - isConnected property * @property {OffscreenCanvas |null} currentFrame - currentFrame property * @property {number} frameWidth - frameWidth property * @property {number} frameHeight - frameHeight property * @property {number} frameRate - frameRate property * @property {() => ImageData |null} getFrameData - getFrameData property * @property {FaceData[]} faces - faces property * @property {HandData[]} hands - hands property * @property {PoseData |null} pose - pose property * @property {SegmentationData |null} segmentation - segmentation property * @property {{} cv - cv property */ /** * Mouse interaction API * @typedef {Object} MouseAPI * @property {number} x - x property * @property {number} y - y property * @property {boolean} isInCanvas - isInCanvas property * @property {boolean} isPressed - isPressed property * @property {boolean} leftButton - leftButton property * @property {boolean} rightButton - rightButton property * @property {boolean} middleButton - middleButton property * @property {{} velocity - velocity property * @property {number} x - x property * @property {number} y - y property */ /** * Keyboard interaction API * @typedef {Object} KeyboardAPI * @property {Set<string>} activeKeys - activeKeys property * @property {Set<string>} pressedThisFrame - pressedThisFrame property * @property {Set<string>} releasedThisFrame - releasedThisFrame property * @property {string} lastKeyPressed - lastKeyPressed property * @property {string} lastKeyReleased - lastKeyReleased property * @property {boolean} shift - shift property * @property {boolean} ctrl - ctrl property * @property {boolean} alt - alt property * @property {boolean} meta - meta property */ /** * Touch interaction API * @typedef {Object} TouchAPI * @property {TouchPoint[]} points - points property * @property {number} count - count property * @property {TouchPoint[]} started - started property * @property {TouchPoint[]} moved - moved property * @property {TouchPoint[]} ended - ended property * @property {TouchPoint |null} primary - primary property * @property {TouchGestureAPI} gestures - gestures property */ /** * Main Viji Artist API - provides access to canvas, timing, audio, video, and interactions * @typedef {Object} VijiAPI * @property {OffscreenCanvas} canvas - canvas property * @property {OffscreenCanvasRenderingContext2D} [ctx] - ctx property * @property {WebGL2RenderingContext} [gl] - gl property * @property {number} width - width property * @property {number} height - height property * @property {number} pixelRatio - pixelRatio property * @property {number} time - time property * @property {number} deltaTime - deltaTime property * @property {number} frameCount - frameCount property * @property {number} fps - fps property * @property {AudioAPI} audio - audio property * @property {VideoAPI} video - video property * @property {MouseAPI} mouse - mouse property * @property {KeyboardAPI} keyboard - keyboard property * @property {TouchAPI} touches - touches property * @property {(defaultValue: number, config: SliderConfig) => SliderParameter} slider - slider property * @property {(defaultValue: string, config: ColorConfig) => ColorParameter} color - color property * @property {(defaultValue: boolean, config: ToggleConfig) => ToggleParameter} toggle - toggle property * @property {(defaultValue: string | number, config: SelectConfig) => SelectParameter} select - select property * @property {(defaultValue: string, config: TextConfig) => TextParameter} text - text property * @property {(defaultValue: number, config: NumberConfig) => NumberParameter} number - number property * @property {(defaultValue: null, config: ImageConfig) => ImageParameter} image - image property */ /** * FaceData interface * @typedef {Object} FaceData * @property {number} id - id property * @property {{} bounds - bounds property * @property {number} x - x property * @property {number} y - y property * @property {number} width - width property * @property {number} height - height property */ /** * HandData interface * @typedef {Object} HandData * @property {number} id - id property * @property {'left' | 'right'} handedness - handedness property * @property {number} confidence - confidence property * @property {{} bounds - bounds property * @property {number} x - x property * @property {number} y - y property * @property {number} width - width property * @property {number} height - height property */ /** * PoseData interface * @typedef {Object} PoseData * @property {number} confidence - confidence property * @property {{} landmarks - landmarks property * @property {number} x - x property * @property {number} y - y property * @property {number} z - z property * @property {number} visibility - visibility property */ /** * SegmentationData interface * @typedef {Object} SegmentationData * @property {Uint8Array} mask - mask property * @property {number} width - width property * @property {number} height - height property */ /** * Global viji object available in artist code * @type {VijiAPI} */ declare const viji; /** * Artist render function - called every frame * @param {VijiAPI} viji - The viji API object with all capabilities */ declare function render(viji): void;