36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import * as Types from "../../../../types/world/worldTypes";
|
|
|
|
function Layer2DVisibility(
|
|
activeLayer: Types.Number,
|
|
floorPlanGroup: Types.RefGroup,
|
|
floorPlanGroupLine: Types.RefGroup,
|
|
floorPlanGroupPoint: Types.RefGroup,
|
|
currentLayerPoint: Types.RefMeshArray,
|
|
dragPointControls: Types.RefDragControl
|
|
): void {
|
|
|
|
if (floorPlanGroup.current && dragPointControls.current) {
|
|
currentLayerPoint.current = [];
|
|
floorPlanGroupLine.current.children.forEach((line) => {
|
|
const linePoints = line.userData.linePoints;
|
|
|
|
const point1 = floorPlanGroupPoint.current.getObjectByProperty('uuid', linePoints[0][1]) as Types.Mesh;
|
|
const point2 = floorPlanGroupPoint.current.getObjectByProperty('uuid', linePoints[1][1]) as Types.Mesh;
|
|
|
|
if (linePoints[0][2] !== activeLayer && linePoints[1][2] !== activeLayer) {
|
|
point1.visible = false;
|
|
point2.visible = false;
|
|
line.visible = false;
|
|
} else {
|
|
point1.visible = true;
|
|
point2.visible = true;
|
|
line.visible = true;
|
|
currentLayerPoint.current.push(point1, point2);
|
|
}
|
|
});
|
|
dragPointControls.current!.objects = currentLayerPoint.current;
|
|
}
|
|
}
|
|
|
|
export default Layer2DVisibility;
|