@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
202 lines (198 loc) • 9.16 kB
text/typescript
import {AssemblerName, ControllerAssemblerPair} from './_BaseRegister';
import {GlAssemblerController} from '../../../nodes/gl/code/Controller';
import {JsAssemblerController} from '../../../nodes/js/code/Controller';
import {ShaderAssemblerBasic} from '../../../nodes/gl/code/assemblers/materials/Basic';
import {ShaderAssemblerCloth} from '../../../nodes/gl/code/assemblers/cloth/ClothAssembler';
import {ShaderAssemblerLambert} from '../../../nodes/gl/code/assemblers/materials/Lambert';
import {ShaderAssemblerLine} from '../../../nodes/gl/code/assemblers/materials/Line';
import {ShaderAssemblerParticles} from '../../../nodes/gl/code/assemblers/particles/Particles';
import {ShaderAssemblerPhong} from '../../../nodes/gl/code/assemblers/materials/Phong';
import {ShaderAssemblerPhysical} from '../../../nodes/gl/code/assemblers/materials/Physical';
import {ShaderAssemblerPoints} from '../../../nodes/gl/code/assemblers/materials/Points';
import {ShaderAssemblerPost} from '../../../nodes/gl/code/assemblers/post/Post';
import {ShaderAssemblerRayMarching} from '../../../nodes/gl/code/assemblers/materials/RayMarching';
import {ShaderAssemblerStandard} from '../../../nodes/gl/code/assemblers/materials/Standard';
import {ShaderAssemblerTexture} from '../../../nodes/gl/code/assemblers/textures/Texture';
import {ShaderAssemblerTexture2DArray} from '../../../nodes/gl/code/assemblers/textures/Texture2DArray';
import {ShaderAssemblerToon} from '../../../nodes/gl/code/assemblers/materials/Toon';
import {ShaderAssemblerVolume} from '../../../nodes/gl/code/assemblers/materials/Volume';
import {ShaderAssemblerCustomMeshDepthForRender} from '../../../nodes/gl/code/assemblers/materials/custom/mesh/CustomMeshDepth';
import {ShaderAssemblerCustomMeshDistanceForRender} from '../../../nodes/gl/code/assemblers/materials/custom/mesh/CustomMeshDistance';
//
import {JsAssemblerActor} from '../../../nodes/js/code/assemblers/actor/ActorAssembler';
import {JsAssemblerEntityBuilder} from '../../../nodes/js/code/assemblers/entityBuilder/EntityBuilderAssembler';
import {JsAssemblerInstanceBuilder} from '../../../nodes/js/code/assemblers/instanceBuilder/InstanceBuilderAssembler';
import {JsAssemblerObjectBuilder} from '../../../nodes/js/code/assemblers/objectBuilder/ObjectBuilderAssembler';
import {JsAssemblerPointBuilder} from '../../../nodes/js/code/assemblers/pointBuilder/PointBuilderAssembler';
import {JsAssemblerSDF} from '../../../nodes/js/code/assemblers/sdf/SDF';
import {JsAssemblerSoftBody} from '../../../nodes/js/code/assemblers/softBody/SoftBodyAssembler';
export interface AssemblersMap extends PolyDictionary<ControllerAssemblerPair> {
[]: {
controller: GlAssemblerController<ShaderAssemblerBasic>;
assembler: typeof ShaderAssemblerBasic;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerCloth>;
assembler: typeof ShaderAssemblerCloth;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerLambert>;
assembler: typeof ShaderAssemblerLambert;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerPhong>;
assembler: typeof ShaderAssemblerPhong;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerStandard>;
assembler: typeof ShaderAssemblerStandard;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerPhysical>;
assembler: typeof ShaderAssemblerPhysical;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerToon>;
assembler: typeof ShaderAssemblerToon;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerCustomMeshDepthForRender>;
assembler: typeof ShaderAssemblerCustomMeshDepthForRender;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerCustomMeshDistanceForRender>;
assembler: typeof ShaderAssemblerCustomMeshDistanceForRender;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerParticles>;
assembler: typeof ShaderAssemblerParticles;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerPoints>;
assembler: typeof ShaderAssemblerPoints;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerLine>;
assembler: typeof ShaderAssemblerLine;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerPost>;
assembler: typeof ShaderAssemblerPost;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerRayMarching>;
assembler: typeof ShaderAssemblerRayMarching;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerTexture>;
assembler: typeof ShaderAssemblerTexture;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerTexture2DArray>;
assembler: typeof ShaderAssemblerTexture2DArray;
};
[]: {
controller: GlAssemblerController<ShaderAssemblerVolume>;
assembler: typeof ShaderAssemblerVolume;
};
//
[]: {
controller: JsAssemblerController<JsAssemblerActor>;
assembler: typeof JsAssemblerActor;
};
[]: {
controller: JsAssemblerController<JsAssemblerEntityBuilder>;
assembler: typeof JsAssemblerEntityBuilder;
};
[]: {
controller: JsAssemblerController<JsAssemblerInstanceBuilder>;
assembler: typeof JsAssemblerInstanceBuilder;
};
[]: {
controller: JsAssemblerController<JsAssemblerObjectBuilder>;
assembler: typeof JsAssemblerObjectBuilder;
};
[]: {
controller: JsAssemblerController<JsAssemblerPointBuilder>;
assembler: typeof JsAssemblerPointBuilder;
};
[]: {
controller: JsAssemblerController<JsAssemblerSDF>;
assembler: typeof JsAssemblerSDF;
};
[]: {
controller: JsAssemblerController<JsAssemblerSoftBody>;
assembler: typeof JsAssemblerSoftBody;
};
}
import {PolyEngine} from '../../../Poly';
import {PolyDictionary} from '../../../../types/GlobalTypes';
export class AllAssemblersRegister {
static run(poly: PolyEngine) {
poly.assemblersRegister.register(AssemblerName.GL_MESH_BASIC, GlAssemblerController, ShaderAssemblerBasic);
poly.assemblersRegister.register(AssemblerName.GL_CLOTH, GlAssemblerController, ShaderAssemblerCloth);
poly.assemblersRegister.register(AssemblerName.GL_MESH_LAMBERT, GlAssemblerController, ShaderAssemblerLambert);
poly.assemblersRegister.register(AssemblerName.GL_MESH_PHONG, GlAssemblerController, ShaderAssemblerPhong);
poly.assemblersRegister.register(AssemblerName.GL_MESH_TOON, GlAssemblerController, ShaderAssemblerToon);
poly.assemblersRegister.register(
AssemblerName.GL_MESH_STANDARD,
GlAssemblerController,
ShaderAssemblerStandard
);
poly.assemblersRegister.register(
AssemblerName.GL_MESH_PHYSICAL,
GlAssemblerController,
ShaderAssemblerPhysical
);
poly.assemblersRegister.register(
AssemblerName.GL_MESH_DEPTH,
GlAssemblerController,
ShaderAssemblerCustomMeshDepthForRender
);
poly.assemblersRegister.register(
AssemblerName.GL_MESH_DISTANCE,
GlAssemblerController,
ShaderAssemblerCustomMeshDistanceForRender
);
poly.assemblersRegister.register(AssemblerName.GL_PARTICLES, GlAssemblerController, ShaderAssemblerParticles);
poly.assemblersRegister.register(AssemblerName.GL_POINTS, GlAssemblerController, ShaderAssemblerPoints);
poly.assemblersRegister.register(AssemblerName.GL_LINE, GlAssemblerController, ShaderAssemblerLine);
poly.assemblersRegister.register(AssemblerName.GL_POST, GlAssemblerController, ShaderAssemblerPost);
poly.assemblersRegister.register(
AssemblerName.GL_RAYMARCHING,
GlAssemblerController,
ShaderAssemblerRayMarching
);
poly.assemblersRegister.register(AssemblerName.GL_TEXTURE, GlAssemblerController, ShaderAssemblerTexture);
poly.assemblersRegister.register(
AssemblerName.GL_TEXTURE_2D_ARRAY,
GlAssemblerController,
ShaderAssemblerTexture2DArray
);
poly.assemblersRegister.register(AssemblerName.GL_VOLUME, GlAssemblerController, ShaderAssemblerVolume);
//
poly.assemblersRegister.register(AssemblerName.JS_ACTOR, JsAssemblerController, JsAssemblerActor);
poly.assemblersRegister.register(
AssemblerName.JS_ENTITY_BUILDER,
JsAssemblerController,
JsAssemblerEntityBuilder
);
poly.assemblersRegister.register(
AssemblerName.JS_INSTANCE_BUILDER,
JsAssemblerController,
JsAssemblerInstanceBuilder
);
poly.assemblersRegister.register(
AssemblerName.JS_OBJECT_BUILDER,
JsAssemblerController,
JsAssemblerObjectBuilder
);
poly.assemblersRegister.register(
AssemblerName.JS_POINT_BUILDER,
JsAssemblerController,
JsAssemblerPointBuilder
);
poly.assemblersRegister.register(AssemblerName.JS_SDF, JsAssemblerController, JsAssemblerSDF);
poly.assemblersRegister.register(AssemblerName.JS_SOFT_BODY, JsAssemblerController, JsAssemblerSoftBody);
}
}