RayZaler
0.1
The free opto-mechanical simulation framework
PhaseScreen.h
1
//
2
// Copyright (c) 2024 Gonzalo José Carracedo Carballal
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU Lesser General Public License as
6
// published by the Free Software Foundation, either version 3 of the
7
// License, or (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful, but
10
// WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU Lesser General Public License for more details.
13
//
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this program. If not, see
16
// <http://www.gnu.org/licenses/>
17
//
18
19
#ifndef _RAY_PROCESSORS_PHASE_SCREEN_H
20
#define _RAY_PROCESSORS_PHASE_SCREEN_H
21
22
#include <RayTracingEngine.h>
23
24
namespace
RZ {
25
class
ReferenceFrame;
26
27
class
PhaseScreenBoundary
:
public
MediumBoundary
{
28
29
public
:
30
PhaseScreenBoundary
();
31
32
Real Z(Real x, Real y)
const
;
33
Real coef(
unsigned
int
ansi)
const
;
34
void
setRadius(Real);
35
void
setCoef(
unsigned
int
ansi, Real value);
36
void
setRefractiveIndex(Real, Real);
37
virtual
std::string name()
const
;
38
};
39
}
40
41
#endif
// _RAY_PROCESSORS_PHASE_SCREEN_H
RZ::MediumBoundary
Definition:
MediumBoundary.h:35
RZ::PhaseScreenBoundary
Definition:
PhaseScreen.h:27
LibRZ
include
MediumBoundaries
PhaseScreen.h
Generated by
1.9.4