Camera¶
Purpose¶
Owns camera-related editor workflows, shared camera settings models, and camera utility helpers used throughout Snap Studio Pro.
This territory is responsible for storing camera-facing configuration data, lightweight camera preference persistence, and reusable camera framing/orientation helpers without owning preview orchestration or rendering implementation.
Owns¶
- Camera settings models
- Camera orientation models
- Camera-related editor preferences
- Camera fitting utilities
- Shared camera workflow helpers
- Shared camera projection/orientation IMGUI controls (CameraUIUtils)
- Camera-facing configuration persistence
Does NOT Own¶
- Preview camera orchestration
- Rendering implementation
- Render pipeline ownership
- Export workflow orchestration
- Panel UI layout ownership
- Preview scene lifecycle ownership
Allowed Dependencies¶
Camera may depend on:
- Models
- Enums
- Infrastructure preference services
- Unity camera/math APIs
Camera should avoid depending on:
- rendering implementation systems
- preview orchestration systems
- panel orchestration systems
- export workflow systems
Notes¶
This folder intentionally acts as a shared camera-domain territory rather than a rendering or preview territory.
Camera owns: - reusable camera-facing configuration - camera helper logic - camera preference state - camera fitting helpers
Preview owns: - live preview coordination
Rendering owns: - actual rendering implementation
This distinction helps prevent rendering logic, preview orchestration, and reusable camera-domain logic from collapsing into the same systems.
Future Candidates¶
- Continue separating reusable camera helpers from preview orchestration.
- Avoid allowing rendering implementation into Features.Camera.
- Maintain lightweight and reusable camera-domain utilities.