from .qpms_cdefs cimport qpms_permittivity_interpolator_t, qpms_epsmu_generator_t, qpms_epsmu_t, qpms_ldparams_t cdef extern from "materials.h": const qpms_ldparams_t *const QPMS_LDPARAMS_AG const qpms_ldparams_t *const QPMS_LDPARAMS_AU const qpms_ldparams_t *const QPMS_LDPARAMS_CU const qpms_ldparams_t *const QPMS_LDPARAMS_AL const qpms_ldparams_t *const QPMS_LDPARAMS_CR const qpms_ldparams_t *const QPMS_LDPARAMS_TI const qpms_ldparams_t *const QPMS_LDPARAMS_BE const qpms_ldparams_t *const QPMS_LDPARAMS_NI const qpms_ldparams_t *const QPMS_LDPARAMS_PD const qpms_ldparams_t *const QPMS_LDPARAMS_PT const qpms_ldparams_t *const QPMS_LDPARAMS_W cdef class MaterialInterpolator: cdef qpms_permittivity_interpolator_t *interp cdef readonly double omegamin cdef readonly double omegamax cdef inline void *rawpointer(self): return (self.interp) cdef class EpsMu: cdef public qpms_epsmu_t em cdef inline void *rawpointer(self): return &(self.em) cdef class LorentzDrudeModel: cdef const qpms_ldparams_t *params #cdef bint owns_params cdef inline void *rawpointer(self): return (self.params) cdef class _CLorentzDrudeModel: ''' Drude-Lorentz parameters initialised from raw C structure. Private, do not use. ''' cdef const qpms_ldparams_t *params cdef inline void *rawpointer(self): return (self.params) @staticmethod cdef link(const qpms_ldparams_t *params) # The actual constructor cdef class EpsMuGenerator: cdef qpms_epsmu_generator_t g cdef object holder cdef qpms_epsmu_generator_t raw(self)