@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
40 lines (39 loc) • 1.35 kB
JavaScript
;
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;
}