UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

164 lines (156 loc) 5.19 kB
// nodes import {BaseAnimNodeType} from '../nodes/anim/_Base'; import {BaseAudioNodeType} from '../nodes/audio/_Base'; import {BaseCopNodeType} from '../nodes/cop/_Base'; import {BaseEventNodeType} from '../nodes/event/_Base'; import {BaseGlNodeType} from '../nodes/gl/_Base'; import {BaseJsNodeType} from '../nodes/js/_Base'; import {BaseManagerNodeType} from '../nodes/manager/_Base'; import {BaseMatNodeType} from '../nodes/mat/_Base'; import {BaseObjNodeType} from '../nodes/obj/_Base'; import {BasePostProcessNodeType} from '../nodes/post/_Base'; import {BaseRopNodeType} from '../nodes/rop/_Base'; import {BaseSopNodeType} from '../nodes/sop/_Base'; // registers // import {GeoNodeChildrenMap} from './registers/nodes/Sop'; // import {GlNodeChildrenMap} from './registers/nodes/Gl'; // import {EventNodeChildrenMap} from './registers/nodes/Event'; // import {CopNodeChildrenMap} from './registers/nodes/Cop'; // import {AnimNodeChildrenMap} from './registers/nodes/Anim'; // import {MatNodeChildrenMap} from './registers/nodes/Mat'; // import {ObjNodeChildrenMap} from './registers/nodes/Obj'; // import {PostNodeChildrenMap} from './registers/nodes/Post'; // import {RopNodeChildrenMap} from './registers/nodes/Rop'; // import {AudioNodeChildrenMap} from './registers/nodes/Audio'; import {TypedNode} from '../nodes/_Base'; // import { JsNodeChildrenMap } from './registers/nodes/Js'; export enum NodeContext { ANIM = 'anim', AUDIO = 'audio', // CAD = 'cad', COP = 'cop', // CSG = 'csg', EVENT = 'event', GL = 'gl', JS = 'js', MANAGER = 'manager', MAT = 'mat', OBJ = 'obj', POST = 'post', ROP = 'rop', SOP = 'sop', } export type NodeContextUnion = | NodeContext.ANIM | NodeContext.AUDIO // | NodeContext.CAD | NodeContext.COP // | NodeContext.CSG | NodeContext.EVENT | NodeContext.GL | NodeContext.JS | NodeContext.MANAGER | NodeContext.MAT | NodeContext.OBJ | NodeContext.POST | NodeContext.ROP | NodeContext.SOP; export enum NetworkNodeType { ACTOR = 'actorsNetwork', ANIM = 'animationsNetwork', AUDIO = 'audioNetwork', // CAD = 'cadNetwork', COP = 'copNetwork', CSG = 'csgNetwork', EVENT = 'eventsNetwork', MAT = 'materialsNetwork', POST = 'postProcessNetwork', ROP = 'renderersNetwork', SOLVER = 'solver', SUBNET = 'subnet', DECOMPOSE = 'decompose', } export enum NetworkChildNodeType { INPUT = 'subnetInput', OUTPUT = 'subnetOutput', } export enum CameraNodeType { CUBE = 'cubeCamera', MAPBOX = 'mapboxCamera', ORTHOGRAPHIC = 'orthographicCamera', PERSPECTIVE = 'perspectiveCamera', } export enum CameraSopNodeType { CONTROLS = 'cameraControls', CSS_RENDERER = 'cameraCSSRenderer', FPS = 'cameraFPS', FRAME_MODE = 'cameraFrameMode', POST_PROCESS = 'cameraPostProcess', RENDER_SCENE = 'cameraRenderScene', RENDERER = 'cameraRenderer', VIEWER_CODE = 'cameraViewerCode', VIEW_OFFSET = 'cameraViewOffset', WEBXR_AR = 'cameraWebXRAR', WEBXR_VR = 'cameraWebXRVR', WEBXR_AR_MARKER_TRACKING = 'cameraWebXRARMarkerTracking', } export const CAMERA_TYPES = [CameraNodeType.MAPBOX, CameraNodeType.ORTHOGRAPHIC, CameraNodeType.PERSPECTIVE]; export enum CameraControlsNodeType { // DEVICE_ORIENTATION = 'cameraDeviceOrientationControls', MAP = 'cameraMapControls', ORBIT = 'cameraOrbitControls', PAN_ZOOM = 'cameraPanZoomControls', FIRST_PERSON = 'firstPersonControls', PLAYER = 'playerControls', MOBILE_JOYSTICK = 'mobileJoystickControls', } // export const CAMERA_CONTROLS_NODE_TYPES: Readonly<string[]> = [ // // CameraControlsNodeType.DEVICE_ORIENTATION, // CameraControlsNodeType.MAP, // CameraControlsNodeType.ORBIT, // CameraControlsNodeType.FIRST_PERSON, // CameraControlsNodeType.MOBILE_JOYSTICK, // ]; export enum AudioNodeAnalyserType { FFT = 'FFT', METER = 'meter', WAVEFORM = 'waveform', } export const AUDIO_ANALYSER_NODES: Readonly<string[]> = [ AudioNodeAnalyserType.FFT, AudioNodeAnalyserType.METER, AudioNodeAnalyserType.WAVEFORM, ]; export type NodeTypeMapGeneric = {[key in NodeContext]: TypedNode<key, any>}; export interface BaseNodeByContextMap extends NodeTypeMapGeneric { [NodeContext.ANIM]: BaseAnimNodeType; [NodeContext.AUDIO]: BaseAudioNodeType; [NodeContext.COP]: BaseCopNodeType; [NodeContext.EVENT]: BaseEventNodeType; [NodeContext.GL]: BaseGlNodeType; [NodeContext.JS]: BaseJsNodeType; [NodeContext.MANAGER]: BaseManagerNodeType; [NodeContext.MAT]: BaseMatNodeType; [NodeContext.OBJ]: BaseObjNodeType; [NodeContext.POST]: BasePostProcessNodeType; [NodeContext.SOP]: BaseSopNodeType; [NodeContext.ROP]: BaseRopNodeType; } // export interface ChildrenNodeMapByContextMap { // [NodeContext.ANIM]: AnimNodeChildrenMap; // [NodeContext.AUDIO]: AudioNodeChildrenMap; // [NodeContext.COP]: CopNodeChildrenMap; // [NodeContext.EVENT]: EventNodeChildrenMap; // [NodeContext.GL]: GlNodeChildrenMap; // [NodeContext.JS]: JsNodeChildrenMap; // [NodeContext.MANAGER]: {}; // [NodeContext.MAT]: MatNodeChildrenMap; // [NodeContext.OBJ]: ObjNodeChildrenMap; // [NodeContext.POST]: PostNodeChildrenMap; // [NodeContext.SOP]: GeoNodeChildrenMap; // [NodeContext.ROP]: RopNodeChildrenMap; // } export interface NodeContextAndType { context: NodeContext; type: string; }