- 스프라이트 기반 파티클 이펙트 관리 기능 추가 (SpriteEffectManager) - 렌즈 왜곡 셰이더 로직 개선 및 픽셀 공간 기준 등방성 확대 적용 - 파티클 최적화를 위한 오브젝트 풀링(SpriteParticlePool) 도입 - DistortionArea 타입에 spriteEffects 설정 필드 추가 - ThreeScene에 씬 객체 접근 기능 및 렌더 순서 제어 추가 - useMouseInteraction 훅에서 마우스 상태 조회 기능 추가 - 버전 1.3.0 업데이트 및 관련 타입 정의 반영
87 lines
2.5 KiB
TypeScript
87 lines
2.5 KiB
TypeScript
// 메인 컴포넌트
|
|
export { ImageDistortion } from './components/ImageDistortion';
|
|
export type { ImageDistortionProps } from './components/ImageDistortion';
|
|
|
|
// 에디터 컴포넌트들 (개별적으로 조합 가능)
|
|
export { EditorCanvas } from './editor/components/EditorCanvas';
|
|
export type { EditorCanvasProps } from './editor/components/EditorCanvas';
|
|
export { AreaList } from './editor/components/AreaList';
|
|
export type { AreaListProps } from './editor/components/AreaList';
|
|
export { ParameterPanel } from './editor/components/ParameterPanel';
|
|
export type { ParameterPanelProps } from './editor/components/ParameterPanel';
|
|
|
|
// 에디터 상태 관리 훅
|
|
export { useDistortionEditor } from './editor/hooks/useDistortionEditor';
|
|
|
|
// 에디터 타입 및 스타일
|
|
export type {
|
|
EditorState,
|
|
EditMode,
|
|
EditorCanvasStyle,
|
|
CircleLevelStyle,
|
|
CenterPointStyle,
|
|
PointHandleStyle,
|
|
AreaOutlineStyle,
|
|
} from './editor/types';
|
|
|
|
// 에디터 기본 스타일 상수
|
|
export { DEFAULT_EDITOR_CANVAS_STYLE } from './editor/constants';
|
|
|
|
// 타입 정의
|
|
export type {
|
|
Point,
|
|
EasingFunction,
|
|
BuiltInMotionPreset,
|
|
MotionPreset,
|
|
MotionPresetDefinition,
|
|
DistortionMovement,
|
|
DistortionArea,
|
|
AreaBounds,
|
|
ShaderUniforms,
|
|
ShaderConfig,
|
|
AnimationState,
|
|
AnimationTicker,
|
|
} from './types';
|
|
|
|
// 마우스 인터랙션 타입
|
|
export type {
|
|
SpringPhysicsConfig,
|
|
MouseInteractionConfig,
|
|
MouseState,
|
|
SpringState,
|
|
} from './types/interaction';
|
|
|
|
// 스프라이트 이펙트 타입
|
|
export type {
|
|
SpriteEffectTrigger,
|
|
SpriteBlendMode,
|
|
SpriteEffectConfig,
|
|
SpriteParticleOverLifetime,
|
|
} from './types/spriteEffect';
|
|
|
|
// 유틸리티 함수
|
|
export { applyEasing } from './utils/easing';
|
|
export { SHADER_CONFIG, ANIMATION_CONFIG, DEFAULT_AREA } from './utils/constants';
|
|
export {
|
|
presetToVector,
|
|
isRotationPreset,
|
|
// 프리셋 레지스트리 API
|
|
registerMotionPreset,
|
|
registerMotionPresets,
|
|
unregisterMotionPreset,
|
|
getRegisteredPresets,
|
|
hasPreset,
|
|
resetToBuiltInPresets,
|
|
} from './utils/motionPresets';
|
|
|
|
// 엔진 클래스 (고급 사용자용)
|
|
export { ThreeScene } from './engine/ThreeScene';
|
|
export { ShaderManager } from './engine/ShaderManager';
|
|
export { AnimationLoop } from './engine/AnimationLoop';
|
|
export { SpringPhysics } from './engine/SpringPhysics';
|
|
export { SpriteEffectManager } from './engine/SpriteEffectManager';
|
|
|
|
// 훅
|
|
export { useAnimationFrame } from './hooks/useAnimationFrame';
|
|
export { useMouseVelocity } from './hooks/useMouseVelocity';
|
|
export { useMouseInteraction } from './hooks/useMouseInteraction'; |