feat(editor): terrain-aligned objects, batch convert, WCP import+load

New features:
- Align to Slope: rotates objects to match terrain surface normal at
  their position (trees on hillsides lean naturally). Works with
  multi-select. Available in object panel and right-click context menu
- Batch Convert Assets: File menu option to recursively convert all
  M2→WOM and WMO→WOB files in a data directory to open format
- Import & Load: one-click WCP unpack + auto-open the imported zone
- sampleTerrainNormal() for slope detection via height differencing
- Zone load error toasts for missing/corrupt files
This commit is contained in:
Kelsi 2026-05-05 14:22:21 -07:00
parent acb519a243
commit 115fe8436f
5 changed files with 136 additions and 0 deletions

View file

@ -30,6 +30,9 @@ public:
// Raycast against terrain, returns true if hit
bool raycastTerrain(const rendering::Ray& ray, glm::vec3& hitPos) const;
// Sample terrain normal at a world XY position (for object alignment)
glm::vec3 sampleTerrainNormal(const glm::vec3& worldPos) const;
// Apply brush at current position (call per-frame while painting)
void applyBrush(float deltaTime);