MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Morphology.hpp File Reference
+ Include dependency graph for Morphology.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 

Concepts

concept  MayaFlux::Kinesis::PositionCarrying
 Satisfied by any type exposing a position field convertible to glm::vec3.
 

Functions

AABB3D MayaFlux::Kinesis::aabb (std::span< const glm::vec3 > pts) noexcept
 Axis-aligned bounding box of a plain position span.
 
template<PositionCarrying T>
AABB3D MayaFlux::Kinesis::aabb (std::span< T > pts) noexcept
 Axis-aligned bounding box of a PositionCarrying span.
 
glm::vec3 MayaFlux::Kinesis::centroid (std::span< const glm::vec3 > pts) noexcept
 Arithmetic centroid of a plain position span.
 
glm::vec3 MayaFlux::Kinesis::centroid (std::span< const std::byte > bytes, size_t stride, size_t offset=0) noexcept
 Arithmetic centroid of the positions in interleaved vertex bytes.
 
template<PositionCarrying T>
glm::vec3 MayaFlux::Kinesis::centroid (std::span< T > pts) noexcept
 Arithmetic centroid (uniform weight) of a PositionCarrying span.
 
template<typename T , std::invocable< const T & > PosFn, std::invocable< const T & > WeightFn>
requires std::convertible_to<std::invoke_result_t<PosFn, const T&>, glm::vec3> && std::convertible_to<std::invoke_result_t<WeightFn, const T&>, float>
glm::vec3 MayaFlux::Kinesis::centroid (std::span< T > pts, PosFn pos, WeightFn weight) noexcept
 Fully explicit weighted centroid for arbitrary point types.
 
template<PositionCarrying T, std::invocable< const T & > WeightFn>
requires std::convertible_to<std::invoke_result_t<WeightFn, const T&>, float>
glm::vec3 MayaFlux::Kinesis::centroid (std::span< T > pts, WeightFn weight) noexcept
 Scalar-weighted centroid of a PositionCarrying span.
 
std::optional< glm::vec3 > MayaFlux::Kinesis::position_at (std::span< const std::byte > bytes, size_t stride, size_t offset, size_t index) noexcept
 Position of one record in interleaved vertex bytes.
 
glm::vec3 MayaFlux::Kinesis::surface_centroid (std::span< const std::byte > bytes, size_t stride, size_t offset, std::span< const uint32_t > indices) noexcept
 Area-weighted centroid of the triangles of an indexed mesh.