chore: flatten repository to completely erase 255MB history
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { create } from 'zustand';
|
||||
|
||||
export type MappingMode = 'imported' | 'planar' | 'box' | 'cylindrical' | 'triplanar';
|
||||
|
||||
export interface UVTransforms {
|
||||
scale: [number, number];
|
||||
repeat: [number, number];
|
||||
offset: [number, number];
|
||||
rotation: number;
|
||||
}
|
||||
|
||||
export interface TriplanarTransforms {
|
||||
scale: number;
|
||||
blendSharpness: number;
|
||||
rotation: [number, number, number];
|
||||
worldSpace: boolean;
|
||||
}
|
||||
|
||||
interface ConfiguratorState {
|
||||
mappingMode: MappingMode;
|
||||
uvTransforms: UVTransforms;
|
||||
triplanarTransforms: TriplanarTransforms;
|
||||
projectionAxis: 'x' | 'y' | 'z';
|
||||
|
||||
// Actions
|
||||
setMappingMode: (mode: MappingMode) => void;
|
||||
setUVTransforms: (transforms: Partial<UVTransforms>) => void;
|
||||
setTriplanarTransforms: (transforms: Partial<TriplanarTransforms>) => void;
|
||||
setProjectionAxis: (axis: 'x' | 'y' | 'z') => void;
|
||||
}
|
||||
|
||||
export const useConfiguratorStore = create<ConfiguratorState>((set) => ({
|
||||
mappingMode: 'imported',
|
||||
projectionAxis: 'z',
|
||||
uvTransforms: {
|
||||
scale: [1, 1],
|
||||
repeat: [1, 1],
|
||||
offset: [0, 0],
|
||||
rotation: 0,
|
||||
},
|
||||
triplanarTransforms: {
|
||||
scale: 1,
|
||||
blendSharpness: 5.0,
|
||||
rotation: [0, 0, 0],
|
||||
worldSpace: false,
|
||||
},
|
||||
|
||||
setMappingMode: (mode) => set({ mappingMode: mode }),
|
||||
setUVTransforms: (transforms) =>
|
||||
set((state) => ({ uvTransforms: { ...state.uvTransforms, ...transforms } })),
|
||||
setTriplanarTransforms: (transforms) =>
|
||||
set((state) => ({ triplanarTransforms: { ...state.triplanarTransforms, ...transforms } })),
|
||||
setProjectionAxis: (axis) => set({ projectionAxis: axis }),
|
||||
}));
|
||||
Reference in New Issue
Block a user