MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
PathShape.hpp File Reference
+ Include dependency graph for PathShape.hpp:

Go to the source code of this file.

Classes

struct  MayaFlux::Kinesis::TurningProfile
 A path's heading as a function of arc length, at a fixed sample count. More...
 

Namespaces

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

Functions

template<typename T >
float MayaFlux::Kinesis::dtw_cost (std::span< const T > a, std::span< const T > b, const std::function< float(const T &, const T &)> &distance, size_t band=0)
 Dynamic time warping cost between two sequences.
 
std::vector< glm::vec2 > MayaFlux::Kinesis::normalize_shape (std::span< const glm::vec2 > path)
 Centre a path at the origin and scale it to unit spread.
 
float MayaFlux::Kinesis::profile_distance (const TurningProfile &a, const TurningProfile &b) noexcept
 Root mean square difference between two turning profiles.
 
std::vector< glm::vec2 > MayaFlux::Kinesis::resample_uniform (std::span< const glm::vec2 > path, size_t count)
 Resample a path to a fixed point count at uniform arc length.
 
float MayaFlux::Kinesis::shape_distance (std::span< const glm::vec2 > a, std::span< const glm::vec2 > b, size_t samples=32)
 Root mean square point distance between two paths after resampling and normalization.
 
float MayaFlux::Kinesis::signed_area (std::span< const glm::vec2 > path) noexcept
 Signed area enclosed by treating the path as a closed polygon.
 
float MayaFlux::Kinesis::signed_turning (std::span< const glm::vec2 > path) noexcept
 Turning accumulated along a path, with sign retained.
 
TurningProfile MayaFlux::Kinesis::turning_profile (std::span< const glm::vec2 > path, size_t samples, bool rotation_invariant=true)
 Build a turning profile from a path.
 
float MayaFlux::Kinesis::winding_number (std::span< const glm::vec2 > path) noexcept
 Net revolutions a path turned through.