// steam_audio_proxy_mesh.h #pragma once #include #include #include #include #include #include #include #include #include #include // IPLStaticMesh, IPLStaticMeshSettings, IPLMaterial #include "steam_audio.hpp" #include "steam_audio_material.hpp" using namespace godot; // Proxy generation modes class SteamAudioStaticMesh : public Node3D { GDCLASS(SteamAudioStaticMesh, Node3D) private: int proxy_mode = PROXY_NONE; Ref custom_proxy_mesh; Vector static_meshes; bool needs_update = false; protected: static void _bind_methods(); public: SteamAudioStaticMesh(); ~SteamAudioStaticMesh() override; // Setters & getters void set_proxy_mode(int mode); int get_proxy_mode() const; void set_custom_proxy_mesh(Ref mesh); Ref get_custom_proxy_mesh() const; bool get_needs_update() { return needs_update; } void update_static_mesh(); void build_mesh(IPLScene scene); static Vector _instances; static const Vector& get_all_static_meshes(); // Regenerates Steam Audio proxies Ref get_proxy_mesh(); };