26 struct VideoLoadConfig;
27 struct ImageWriteOptions;
28 struct VolumeWriteOptions;
29 struct ModelWriteOptions;
30 struct SpatialCaptureSource;
31 using TextureResolver = std::function<std::shared_ptr<Core::VKImage>(
const std::string&)>;
54namespace Nodes::Network {
65template <
typename ContainerType,
typename... Args>
66 requires std::derived_from<ContainerType, Kakshya::SignalSourceContainer>
69 return std::make_shared<ContainerType>(std::forward<Args>(args)...);
77MAYAFLUX_API std::vector<std::shared_ptr<Buffers::SoundContainerBuffer>>
85MAYAFLUX_API
bool is_audio(
const std::filesystem::path& filepath);
92MAYAFLUX_API
bool is_image(
const std::filesystem::path& filepath);
99MAYAFLUX_API
bool is_composite(
const std::filesystem::path& filepath);
108 const std::shared_ptr<Kakshya::VideoStreamContainer>& container);
116 const std::shared_ptr<Kakshya::SoundFileContainer>& container);
125 const std::shared_ptr<Kakshya::VideoFileContainer>& container);
138MAYAFLUX_API std::shared_ptr<Kakshya::SoundFileContainer>
choose_audio();
151 uint64_t max_frames = 0,
bool truncate =
false);
167MAYAFLUX_API std::pair<std::shared_ptr<Kakshya::VideoFileContainer>, std::shared_ptr<Kakshya::SoundFileContainer>>
186MAYAFLUX_API std::shared_ptr<Kakshya::CameraContainer>
choose_camera(
187 bool choose_mode =
true);
198MAYAFLUX_API std::shared_ptr<Buffers::TextureBuffer>
choose_image(
199 int desired_channels = 4,
200 std::optional<Kakshya::Region> region = std::nullopt);
210MAYAFLUX_API std::shared_ptr<Kakshya::CompositeContainer>
choose_composite();
231MAYAFLUX_API std::vector<std::shared_ptr<Buffers::MeshBuffer>>
choose_mesh();
242MAYAFLUX_API std::shared_ptr<Nodes::Network::MeshNetwork>
252MAYAFLUX_API std::shared_ptr<Buffers::VolumeGridBuffer>
choose_volume();
271 const std::shared_ptr<Kakshya::SoundStreamContainer>& container,
272 const std::string& suggested_name =
"output.wav");
286 const std::shared_ptr<Buffers::TextureBuffer>&
buffer,
287 const std::string& suggested_name =
"output.png");
302 const std::shared_ptr<Buffers::TextureBuffer>&
buffer,
303 const std::string& suggested_name,
317 const std::shared_ptr<Kakshya::CompositeContainer>& container,
318 const std::string& suggested_name =
"output.csv");
333 const std::shared_ptr<Buffers::MeshBuffer>&
buffer,
334 const std::string& suggested_name =
"output.gltf");
345 const std::shared_ptr<Buffers::MeshBuffer>&
buffer,
346 const std::string& suggested_name,
366 const std::shared_ptr<Nodes::Network::MeshNetwork>&
network,
367 const std::string& suggested_name =
"output.gltf");
378 const std::shared_ptr<Nodes::Network::MeshNetwork>&
network,
379 const std::string& suggested_name,
395 const std::shared_ptr<Buffers::VolumeGridBuffer>& volume,
396 const std::string& suggested_name =
"output.vdb");
411 const std::shared_ptr<Buffers::VolumeGridBuffer>& volume,
412 const std::string& suggested_name,
430 std::vector<IO::SpatialCaptureSource> sources,
431 const std::string& suggested_name =
"output.abc");
Core::GlobalNetworkConfig network
std::shared_ptr< NetworkGeometryBuffer > buffer
VKBuffer subclass that owns a MeshData and manages its GPU upload.
AudioBuffer implementation backed by a StreamContainer.
A hybrid buffer managing both a textured quad geometry and its pixel data.
TextureBuffer implementation backed by a VideoStreamContainer.
GPU-resident state for multi-field simulations evaluated over a fixed 3D topology: incompressible flu...
Single-slot live video container for camera device streams.
Owns composite data and a bounded, independently owned window.
Shared field description and byte layout for a CompositeArray.
Dynamic capacity streaming audio container with automatic resizing and circular buffering.
Data-driven interface for managing arbitrary processable signal sources.
File-backed audio container with complete streaming functionality.
Concrete base implementation for streaming audio containers.
File-backed video container — semantic marker over VideoStreamContainer.
Concrete base implementation for streaming video containers.
NodeNetwork subclass whose nodes are named, hierarchically transformable mesh slots.
std::function< std::shared_ptr< Core::VKImage >(const std::string &)> TextureResolver
Callable that maps a raw material texture path to a GPU image.
@ Core
Core engine, backend, subsystems.
@ IO
Networking, file handling, streaming.
std::shared_ptr< Buffers::TextureBuffer > choose_image(int desired_channels, std::optional< Kakshya::Region > region)
Present a native open-file dialog filtered to image formats and load the chosen file via IOManager::l...
bool is_image(const fs::path &filepath)
bool save_volume(const std::shared_ptr< Buffers::VolumeGridBuffer > &volume, const std::string &suggested_name)
Present a native save-file dialog filtered to volume formats and save volume to the chosen path via I...
std::shared_ptr< Buffers::VideoContainerBuffer > get_associated_buffer(const std::shared_ptr< Kakshya::VideoStreamContainer > &container)
The buffer a video or camera container was hooked to.
bool save_image(const std::shared_ptr< Buffers::TextureBuffer > &buffer, const std::string &suggested_name)
Present a native save-file dialog filtered to image formats and save buffer to the chosen path via IO...
std::shared_ptr< Nodes::Network::MeshNetwork > choose_mesh_network(IO::TextureResolver resolver)
Present a native open-file dialog filtered to 3D model formats and load the chosen file as a MeshNetw...
bool save_spatial(std::vector< IO::SpatialCaptureSource > sources, const std::string &suggested_name)
Present a native save-file dialog filtered to Alembic and write every source once via IOManager::save...
bool is_audio(const fs::path &filepath)
bool save_mesh(const std::shared_ptr< Buffers::MeshBuffer > &buffer, const std::string &suggested_name)
Present a native save-file dialog filtered to 3D model formats and save buffer to the chosen path via...
std::vector< std::shared_ptr< Buffers::MeshBuffer > > choose_mesh()
Present a native open-file dialog filtered to 3D model formats and load the chosen file via IOManager...
std::shared_ptr< Kakshya::SoundFileContainer > choose_audio()
Present a native open-file dialog filtered to audio formats and load the chosen file via IOManager::l...
std::shared_ptr< Kakshya::CompositeContainer > choose_composite()
Choose a CSV or TSV file and load it as a CompositeContainer.
auto create_container(Args &&... args) -> std::shared_ptr< ContainerType >
creates a new container of the specified type
std::shared_ptr< Kakshya::CameraContainer > choose_camera(bool choose_mode)
Let the user pick a camera, and optionally a capture mode, then open it via IOManager::open_camera().
std::shared_ptr< Buffers::VolumeGridBuffer > choose_volume()
Present a native open-file dialog filtered to volume formats and load the chosen file via IOManager::...
std::vector< std::shared_ptr< Buffers::SoundContainerBuffer > > get_associated_buffers(const std::shared_ptr< Kakshya::SoundFileContainer > &container)
The per-channel buffers an audio container was hooked to.
bool save_audio(const std::shared_ptr< Kakshya::SoundStreamContainer > &container, const std::string &suggested_name)
Present a native save-file dialog and write container to the chosen path via IOManager::write().
bool save_composite(const std::shared_ptr< Kakshya::CompositeContainer > &container, const std::string &suggested_name)
Choose a CSV or TSV destination and save a CompositeContainer.
std::shared_ptr< IO::IOManager > get_io_manager()
Retrieves the global IOManager instance for file loading and buffer management.
std::vector< std::shared_ptr< Buffers::SoundContainerBuffer > > prepare_audio_buffers(const std::shared_ptr< Kakshya::SoundFileContainer > &container)
Constructs and initializes per-channel SoundContainerBuffers without registering them.
bool is_composite(const fs::path &filepath)
std::shared_ptr< Kakshya::DynamicSoundStream > choose_audio_bounded(uint64_t max_frames, bool truncate)
Present a native open-file dialog filtered to audio formats and load the chosen file via IOManager::l...
IO::VideoLoadResult choose_video(const IO::VideoLoadConfig &config)
Present a native open-file dialog filtered to video formats and load the chosen file via IOManager::l...
Main namespace for the Maya Flux audio engine.
Configuration for image writing.
Configuration for model writing.
Configuration for volume writing.