UNPKG

@polygonjs/polygonjs

Version:

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

40 lines (39 loc) 1.35 kB
"use strict"; import { isObject3D } from "../geometry/ObjectContent"; import { QuadPrimitive } from "../geometry/modules/quad/QuadPrimitive"; import { CoreWFCTileAttribute, CoreWFCRuleAttribute, WFCQuadAttribute } from "./WFCAttributes"; export function filterTileObjects(objects) { return objects.filter((object) => CoreWFCTileAttribute.getIsTile(object)).filter(isObject3D); } export function filterRuleObjects(objects) { return objects.filter((object) => CoreWFCRuleAttribute.getIsConnection(object)); } export function isQuadNodeSolveAllowed(quadObject, index) { const hasSolveAllowedAttribute = QuadPrimitive.hasAttribute(quadObject, WFCQuadAttribute.SOLVE_ALLOWED); if (!hasSolveAllowedAttribute) { return true; } const solveAllowed = QuadPrimitive.attribValue( quadObject, index, WFCQuadAttribute.SOLVE_ALLOWED ); if (solveAllowed == null) { return true; } return solveAllowed; } export function quadPrimitiveFloorIndex(quadObject, index) { const floorIndex = QuadPrimitive.attribValue(quadObject, index, WFCQuadAttribute.FLOOR_INDEX); if (floorIndex == null) { return 0; } return floorIndex; } export function quadId(quadObject, index) { const quadId2 = QuadPrimitive.attribValue(quadObject, index, WFCQuadAttribute.QUAD_ID); if (quadId2 == null) { return -1; } return quadId2; }