@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
140 lines (139 loc) • 5.89 kB
JavaScript
;
import {
setObjectBoolean,
getObjectBoolean,
getObjectString,
setObjectString,
setObjectNumber,
getObjectNumber
} from "../geometry/AttributeUtils";
import { WFC_ALL_HORIZONTAL_SIDES } from "./WFCCommon";
import { TypeAssert } from "../../engine/poly/Assert";
export var WFCQuadAttribute = /* @__PURE__ */ ((WFCQuadAttribute2) => {
WFCQuadAttribute2["QUAD_ID"] = "quadId";
WFCQuadAttribute2["FLOOR_INDEX"] = "floorIndex";
WFCQuadAttribute2["TILE_ID"] = "tileId";
WFCQuadAttribute2["SOLVE_ALLOWED"] = "solveAllowed";
WFCQuadAttribute2["SOLVED_TILE_CONFIGS"] = "solvedTileConfigs";
return WFCQuadAttribute2;
})(WFCQuadAttribute || {});
export var WFCTileAttribute = /* @__PURE__ */ ((WFCTileAttribute2) => {
WFCTileAttribute2["TILE_ID"] = "WFCTileAttribute_tileId";
WFCTileAttribute2["ROTATION_Y_ALLOWED"] = "WFCTileAttribute_rotationYAllowed";
WFCTileAttribute2["WEIGHT"] = "WFCTileAttribute_weight";
WFCTileAttribute2["IS_ERROR_TILE"] = "WFCTileAttribute_isErrorTile";
WFCTileAttribute2["IS_UNRESOLVED_TILE"] = "WFCTileAttribute_isUnresolvedTile";
WFCTileAttribute2["SIDE_NAME_S"] = "WFCTileAttribute_sideNameS";
WFCTileAttribute2["SIDE_NAME_N"] = "WFCTileAttribute_sideNameN";
WFCTileAttribute2["SIDE_NAME_W"] = "WFCTileAttribute_sideNameW";
WFCTileAttribute2["SIDE_NAME_E"] = "WFCTileAttribute_sideNameE";
WFCTileAttribute2["SIDE_NAME_H"] = "WFCTileAttribute_sideNameAllHorizontalSides";
WFCTileAttribute2["SIDE_NAME_B"] = "WFCTileAttribute_sideNameB";
WFCTileAttribute2["SIDE_NAME_T"] = "WFCTileAttribute_sideNameT";
return WFCTileAttribute2;
})(WFCTileAttribute || {});
export var WFCConnectionAttribute = /* @__PURE__ */ ((WFCConnectionAttribute2) => {
WFCConnectionAttribute2["ID0"] = "WFCTileAttribute_tileId0";
WFCConnectionAttribute2["ID1"] = "WFCTileAttribute_tileId1";
WFCConnectionAttribute2["SIDE0"] = "WFCTileAttribute_tileSide0";
WFCConnectionAttribute2["SIDE1"] = "WFCTileAttribute_tileSide1";
return WFCConnectionAttribute2;
})(WFCConnectionAttribute || {});
function _sideNameAttribute(side) {
switch (side) {
case "n":
return "WFCTileAttribute_sideNameN" /* SIDE_NAME_N */;
case "s":
return "WFCTileAttribute_sideNameS" /* SIDE_NAME_S */;
case "w":
return "WFCTileAttribute_sideNameW" /* SIDE_NAME_W */;
case "e":
return "WFCTileAttribute_sideNameE" /* SIDE_NAME_E */;
case WFC_ALL_HORIZONTAL_SIDES:
return "WFCTileAttribute_sideNameAllHorizontalSides" /* SIDE_NAME_H */;
case "b":
return "WFCTileAttribute_sideNameB" /* SIDE_NAME_B */;
case "t":
return "WFCTileAttribute_sideNameT" /* SIDE_NAME_T */;
}
TypeAssert.unreachable(side);
}
export class CoreWFCTileAttribute {
// static setIsTile(object: ObjectContent<CoreObjectType>, value: boolean) {
// setObjectBoolean(object, WFCTileAttribute.IS_TILE, value);
// }
static getIsTile(object) {
return this.getTileId(object) != null;
}
static setTileId(object, value) {
setObjectString(object, "WFCTileAttribute_tileId" /* TILE_ID */, value);
}
static getTileId(object) {
return getObjectString(object, "WFCTileAttribute_tileId" /* TILE_ID */);
}
static setRotationYAllowed(object, value) {
setObjectBoolean(object, "WFCTileAttribute_rotationYAllowed" /* ROTATION_Y_ALLOWED */, value);
}
static getRotationYAllowed(object) {
return getObjectBoolean(object, "WFCTileAttribute_rotationYAllowed" /* ROTATION_Y_ALLOWED */, false);
}
static setWeight(object, value) {
setObjectNumber(object, "WFCTileAttribute_weight" /* WEIGHT */, value);
}
static getWeight(object) {
return getObjectNumber(object, "WFCTileAttribute_weight" /* WEIGHT */, 1);
}
static setIsErrorTile(object, value) {
setObjectBoolean(object, "WFCTileAttribute_isErrorTile" /* IS_ERROR_TILE */, value);
}
static getIsErrorTile(object) {
return getObjectBoolean(object, "WFCTileAttribute_isErrorTile" /* IS_ERROR_TILE */, false);
}
static setIsUnresolvedTile(object, value) {
setObjectBoolean(object, "WFCTileAttribute_isUnresolvedTile" /* IS_UNRESOLVED_TILE */, value);
}
static getIsUnresolvedTile(object) {
return getObjectBoolean(object, "WFCTileAttribute_isUnresolvedTile" /* IS_UNRESOLVED_TILE */, false);
}
// static setEntropy(object: ObjectContent<CoreObjectType>, value: number) {
// setObjectNumber(object, WFCTileAttribute.ENTROPY, value);
// }
static getSideName(object, side) {
return getObjectString(object, _sideNameAttribute(side));
}
static setSideName(object, side, value) {
setObjectString(object, _sideNameAttribute(side), value);
}
}
export class CoreWFCRuleAttribute {
// static setIsConnection(object: ObjectContent<CoreObjectType>, value: boolean) {
// setObjectBoolean(object, WFCConnectionAttribute.IS_CONNECTION, value);
// }
static getIsConnection(object) {
return this.getId0(object) && this.getId1(object) && this.getSide0(object) && this.getSide1(object);
}
static setId0(object, value) {
setObjectString(object, "WFCTileAttribute_tileId0" /* ID0 */, value);
}
static getId0(object) {
return getObjectString(object, "WFCTileAttribute_tileId0" /* ID0 */);
}
static setId1(object, value) {
setObjectString(object, "WFCTileAttribute_tileId1" /* ID1 */, value);
}
static getId1(object) {
return getObjectString(object, "WFCTileAttribute_tileId1" /* ID1 */);
}
static setSide0(object, value) {
setObjectString(object, "WFCTileAttribute_tileSide0" /* SIDE0 */, value);
}
static getSide0(object) {
return getObjectString(object, "WFCTileAttribute_tileSide0" /* SIDE0 */);
}
static setSide1(object, value) {
setObjectString(object, "WFCTileAttribute_tileSide1" /* SIDE1 */, value);
}
static getSide1(object) {
return getObjectString(object, "WFCTileAttribute_tileSide1" /* SIDE1 */);
}
}