cube-parameters
Version:
A sophisticated 3D model viewer built with React, TypeScript, and Three.js, featuring advanced visualization tools, measurement capabilities, and lighting controls.
30 lines (24 loc) • 672 B
text/typescript
import { useState } from 'react';
import type { SunlightSettings, AmbientLightSettings, ShadowQuality } from '../types/model';
export const useLightingState = () => {
const [sunlight, setSunlight] = useState<SunlightSettings>({
intensity: 1,
azimuth: 45,
elevation: 45,
color: '#ffffff',
castShadow: true
});
const [ambientLight, setAmbientLight] = useState<AmbientLightSettings>({
intensity: 0.3,
color: '#ffffff'
});
const [shadowQuality, setShadowQuality] = useState<ShadowQuality>('medium');
return {
sunlight,
setSunlight,
ambientLight,
setAmbientLight,
shadowQuality,
setShadowQuality
};
};