UNPKG

@polygonjs/polygonjs

Version:

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

57 lines (54 loc) 1.4 kB
import {Object3D} from 'three'; import {ObjectNamedFunction6, ObjectNamedFunction1} from './_Base'; import {NeighbourIndex} from '../../core/geometry/modules/quad/graph/QuadGraphCommon'; import {getWFCSolver, getWFCBuilder} from '../../core/wfc/WFCRegister'; import {Poly} from '../Poly'; export class setWFCSoftConstraint extends ObjectNamedFunction6<[number, number, string, number, number, number]> { static override type() { return 'setWFCSoftConstraint'; } func( object: Object3D, floorId: number, quadId: number, tileId: string, rotation: NeighbourIndex, quadSeed: number, configSeed: number ) { const solver = getWFCSolver(object); if (!solver) { Poly.warn('setWFCSoftConstraint: no solver found'); return; } return solver.addSoftContraint({ object, floorId, quadId, tileId, rotation, // stepsCount: -1, quadSeed, configSeed, }); } } export class WFCBuild extends ObjectNamedFunction1<[Object3D]> { static override type() { return 'WFCBuild'; } func(builderObject: Object3D, solverObject: Object3D) { const builder = getWFCBuilder(builderObject); const solver = getWFCSolver(solverObject); if (!(builder && solver)) { if (!solver) { Poly.warn('WFCBuild: no solver found'); } else { Poly.warn('WFCBuild: no builder found'); } return; } return builder.update(builderObject, solverObject); } }