UNPKG

mylingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

31 lines (27 loc) 1.04 kB
import { applyMixins } from "@lincode/utils" import { Mesh, BufferGeometry } from "three" import ObjectManager from "./ObjectManager" import TexturedBasicMixin from "./mixins/TexturedBasicMixin" import TexturedStandardMixin from "./mixins/TexturedStandardMixin" import IPrimitive, { primitiveDefaults, primitiveSchema } from "../../interface/IPrimitive" import { standardMaterial } from "../utils/reusables" abstract class Primitive extends ObjectManager<Mesh> implements IPrimitive { public static defaults = primitiveDefaults public static schema = primitiveSchema protected material = standardMaterial public constructor(geometry: BufferGeometry) { const mesh = new Mesh(geometry, standardMaterial) mesh.castShadow = true mesh.receiveShadow = true super(mesh) } } interface Primitive extends ObjectManager<Mesh>, TexturedBasicMixin, TexturedStandardMixin {} applyMixins(Primitive, [TexturedBasicMixin, TexturedStandardMixin]) export default Primitive