42 lines
870 B
JavaScript
42 lines
870 B
JavaScript
'use client';
|
|
|
|
import { useZAxes } from "../hooks/useZAxis.js";
|
|
import { useXAxes, useYAxes } from "../hooks/useAxis.js";
|
|
/**
|
|
* Helper to select an axis definition according to its direction and id.
|
|
*/
|
|
export function useAxis({
|
|
axisDirection,
|
|
axisId
|
|
}) {
|
|
const {
|
|
xAxis,
|
|
xAxisIds
|
|
} = useXAxes();
|
|
const {
|
|
yAxis,
|
|
yAxisIds
|
|
} = useYAxes();
|
|
const {
|
|
zAxis,
|
|
zAxisIds
|
|
} = useZAxes();
|
|
switch (axisDirection) {
|
|
case 'x':
|
|
{
|
|
const id = typeof axisId === 'string' ? axisId : xAxisIds[axisId ?? 0];
|
|
return xAxis[id];
|
|
}
|
|
case 'y':
|
|
{
|
|
const id = typeof axisId === 'string' ? axisId : yAxisIds[axisId ?? 0];
|
|
return yAxis[id];
|
|
}
|
|
case 'z':
|
|
default:
|
|
{
|
|
const id = typeof axisId === 'string' ? axisId : zAxisIds[axisId ?? 0];
|
|
return zAxis[id];
|
|
}
|
|
}
|
|
} |