|
MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
|
Type-erased accessor for converting DataVariant to Eigen types. More...
#include <EigenAccess.hpp>
Collaboration diagram for MayaFlux::Kakshya::EigenAccess:Public Member Functions | |
| EigenAccess (const Kakshya::DataVariant &variant) | |
| Eigen::VectorXd | to_vector () const |
| Convert DataVariant to Eigen column vector. | |
| Eigen::MatrixXd | to_matrix () const |
| Convert DataVariant to Eigen matrix. | |
| Eigen::VectorXd | to_magnitude_vector () const |
| Convert complex data to magnitude vector. | |
| Eigen::VectorXcd | to_complex_vector () const |
| Convert complex data to Eigen complex vector. | |
| Eigen::VectorXd | to_phase_vector () const |
| Convert complex data to phase vector (angle in radians) | |
| size_t | element_count () const noexcept |
| Get number of elements (columns in matrix representation) | |
| size_t | component_count () const |
| Get number of components per element (rows in matrix representation) | |
| std::pair< size_t, size_t > | matrix_dimensions () const |
| Get matrix dimensions as (rows, cols) | |
| bool | validate_dimensions () const |
| Validate that data dimensions fit within Eigen limits. | |
| bool | is_complex () const |
| Check if data contains complex numbers. | |
| bool | is_structured () const |
| Check if data contains GLM types. | |
| std::string | type_name () const |
| Get underlying data type name. | |
| template<typename EigenType > | |
| auto | view () const -> std::optional< Eigen::Map< const EigenType > > |
| Get zero-copy Eigen::Map view of data. | |
| template<typename Scalar = double> | |
| auto | view_as_matrix (Eigen::Index rows) const -> std::optional< Eigen::Map< const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > > |
| Get zero-copy matrix view with explicit row count. | |
| template<typename GlmVecType > requires GlmType<GlmVecType> | |
| auto | view_as_glm () const -> std::optional< std::span< const GlmVecType > > |
| Get zero-copy span view of GLM vector data. | |
Private Member Functions | |
| template<typename T > | |
| Eigen::VectorXd | scalar_to_vector (const std::vector< T > &vec) const |
| template<typename T > | |
| Eigen::MatrixXd | scalar_to_matrix (const std::vector< T > &vec) const |
| template<typename T > | |
| Eigen::MatrixXd | complex_to_matrix (const std::vector< std::complex< T > > &vec) const |
| template<typename T > | |
| Eigen::MatrixXd | glm_to_matrix (const std::vector< T > &vec) const |
Private Attributes | |
| const Kakshya::DataVariant & | m_variant |
Type-erased accessor for converting DataVariant to Eigen types.
Provides semantic, easy-to-follow conversion from NDData to Eigen. Companion to EigenInsertion for write operations.
Design principle: All numeric types convert cleanly to Eigen's double representation. Complex types become 2-row matrices (real, imaginary).
Definition at line 22 of file EigenAccess.hpp.