polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
113 lines (106 loc) • 3.33 kB
text/typescript
// nodes
import {BaseSopNodeType} from '../nodes/sop/_Base';
import {BaseAnimNodeType} from '../nodes/anim/_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';
// 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';
export enum NodeContext {
ANIM = 'anim',
COP = 'cop',
EVENT = 'event',
GL = 'gl',
JS = 'js',
MANAGER = 'manager',
MAT = 'mat',
OBJ = 'obj',
POST = 'post',
ROP = 'rop',
SOP = 'sop',
}
export type NodeContextUnion =
| NodeContext.ANIM
| NodeContext.COP
| NodeContext.EVENT
| NodeContext.GL
| NodeContext.JS
| NodeContext.MANAGER
| NodeContext.MAT
| NodeContext.OBJ
| NodeContext.POST
| NodeContext.ROP
| NodeContext.SOP;
export enum NetworkNodeType {
ANIM = 'animations',
COP = 'cop',
EVENT = 'events',
MAT = 'materials',
POST = 'postProcess',
ROP = 'renderers',
}
export enum NetworkChildNodeType {
INPUT = 'subnetInput',
OUTPUT = 'subnetOutput',
}
export enum CameraNodeType {
PERSPECTIVE = 'perspectiveCamera',
ORTHOGRAPHIC = 'orthographicCamera',
}
export enum GlNodeType {
ATTRIBUTE = 'attribute',
}
export enum CameraControlsNodeType {
DEVICE_ORIENTATION = 'cameraDeviceOrientationControls',
MAP = 'cameraMapControls',
ORBIT = 'cameraOrbitControls',
}
export const CAMERA_CONTROLS_NODE_TYPES: Readonly<string[]> = [
CameraControlsNodeType.DEVICE_ORIENTATION,
CameraControlsNodeType.MAP,
CameraControlsNodeType.ORBIT,
];
export interface BaseNodeByContextMap {
[]: BaseAnimNodeType;
[]: BaseCopNodeType;
[]: BaseEventNodeType;
[]: BaseGlNodeType;
[]: BaseJsNodeType;
[]: BaseManagerNodeType;
[]: BaseMatNodeType;
[]: BaseObjNodeType;
[]: BasePostProcessNodeType;
[]: BaseSopNodeType;
[]: BaseRopNodeType;
}
export interface ChildrenNodeMapByContextMap {
[]: AnimNodeChildrenMap;
[]: CopNodeChildrenMap;
[]: EventNodeChildrenMap;
[]: GlNodeChildrenMap;
[]: BaseJsNodeType;
[]: {};
[]: MatNodeChildrenMap;
[]: ObjNodeChildrenMap;
[]: PostNodeChildrenMap;
[]: GeoNodeChildrenMap;
[]: RopNodeChildrenMap;
}
export interface NodeContextAndType {
context: NodeContext;
type: string;
}