-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHomogeneousCharacteristicMatrix.h
36 lines (28 loc) · 1.13 KB
/
HomogeneousCharacteristicMatrix.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef JMG_HOMOGENEOUS_CHARACTERISTIC_MATRIX_H
#define JMG_HOMOGENEOUS_CHARACTERISTIC_MATRIX_H
#include "CharacteristicMatrix.h"
class HomogeneousCharacteristicMatrix : public CharacteristicMatrix
{
public:
HomogeneousCharacteristicMatrix();
HomogeneousCharacteristicMatrix(double n, double k, double thickness, double wavelength);
HomogeneousCharacteristicMatrix(const complex <double> & index, double thickness, double wavelength);
void set_n(double n);
void set_k(double k);
void set_index(const complex <double> & index);
void set_index(double n, double k = 0.0);
void set_wavelength(double wavelength);
void set_thickness(double thickness);
double n() const;
double k() const;
complex <double> index() const;
private:
double _n, _k;
static const double pi = 3.1415926535897932384626;
// It doesn't make sense to *= a homogeneous matrix, because then it isn't
// homogeneous anymore. Thus, we need to hide the inherited *= operator for
// the homogeneous case.
HomogeneousCharacteristicMatrix & operator *= (const HomogeneousCharacteristicMatrix & rhs);
void CalculateHomogeneousMatrix();
};
#endif