Fix missing import in finiterectlat-scatter.py
[qpms.git] / qpms / cymaterials.pxd
blob7e499bfd7d378134c7567178e17c1dbf45658d2a
1 from .qpms_cdefs cimport qpms_permittivity_interpolator_t, qpms_epsmu_generator_t, qpms_epsmu_t, qpms_ldparams_t
3 cdef extern from "materials.h":
4     const qpms_ldparams_t *const QPMS_LDPARAMS_AG
5     const qpms_ldparams_t *const QPMS_LDPARAMS_AU
6     const qpms_ldparams_t *const QPMS_LDPARAMS_CU
7     const qpms_ldparams_t *const QPMS_LDPARAMS_AL
8     const qpms_ldparams_t *const QPMS_LDPARAMS_CR
9     const qpms_ldparams_t *const QPMS_LDPARAMS_TI
10     const qpms_ldparams_t *const QPMS_LDPARAMS_BE
11     const qpms_ldparams_t *const QPMS_LDPARAMS_NI
12     const qpms_ldparams_t *const QPMS_LDPARAMS_PD
13     const qpms_ldparams_t *const QPMS_LDPARAMS_PT
14     const qpms_ldparams_t *const QPMS_LDPARAMS_W
16 cdef class MaterialInterpolator:
17     cdef qpms_permittivity_interpolator_t *interp
18     cdef readonly double omegamin
19     cdef readonly double omegamax
20     cdef inline void *rawpointer(self):
21         return <void *>(self.interp)
23 cdef class EpsMu:
24     cdef public qpms_epsmu_t em
25     cdef inline void *rawpointer(self):
26         return <void *>&(self.em)
28 cdef class LorentzDrudeModel:
29     cdef const qpms_ldparams_t *params
30     #cdef bint owns_params
31     cdef inline void *rawpointer(self):
32         return <void *>(self.params)
34 cdef class _CLorentzDrudeModel:
35     ''' Drude-Lorentz parameters initialised from raw C structure. Private, do not use. '''
36     cdef const qpms_ldparams_t *params
37     cdef inline void *rawpointer(self):
38         return <void *>(self.params)
39     @staticmethod 
40     cdef link(const qpms_ldparams_t *params) # The actual constructor
42 cdef class EpsMuGenerator:
43     cdef qpms_epsmu_generator_t g
44     cdef object holder
45     cdef qpms_epsmu_generator_t raw(self)