UNIVERS
15.3
UNIVERS base processing software API
Main Page
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
include
mod3d
rays_shoot_specifics.H
1
/* rays_shoot_specifics.H */
2
/* $Id: rays_shoot_specifics.H,v 2.4 2001/05/07 17:12:07 hoh Exp $ */
3
#ifndef __rays_shoot_specifics_H
4
#define __rays_shoot_specifics_H
5
6
#include "p_raytr_model.H"
7
#include "p_raytr_elements.H"
8
9
// Виртуальный класс, объявляющий функции, необходимые для выстрела.
10
// В зависимости от этого самого выстрела класс уточняется class ray_specifics{ protected: pl_raytr_model *pmFather; virtual void other_body(int&,pl_border&,pl_body&); int iNodes,iSteps; int iDWKind; int iUWKind; public: int iCurrWaveT; // Текущий тип проходящий волны int iCurrWaveR; // Текущий тип преломляющейся/отражающейся волны ray_specifics(pl_raytr_model* pM,int dwk,int iNodes=-1); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1,raytr_params&rp2, int&iFin,int&iType, double*xe); virtual void border_num(int& iRetBord,int iBody); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void prepare_refkin(pl_border&a_border,int& iBody, geophys_params&gp1,geophys_params&gp2, raytr_params&rp2, double&fVP12,double&fVS12, double&fVP22,double&fVS22,double*dAniz1,double*dAniz2, double&dA,double&dB,double&dC,double*dNormal); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); virtual void raydiverg(double*,double*,double*,double*,double*,double*,double*, double*,double*,int*,int*,double*,double*,int*, double*,int*,int*,double*,double*,double*,double*, double*,double*,double*,double*,double*,double*,double*, double*,double*,double*,double*,int*,double*,double*, double*,int*,double*,double*); virtual void refking(double*,double*,double*,double*,double*,double*, double*,double*,double*,double*,double*,int*,int*,double*, double*,double*,double*,double*,double*,double*, double*,double*,int*); }; class ray_point:public ray_specifics{ protected: IntAr iaTemplate; Logic lFinish; const point &pWhere; Logic lHit; int iBodyNum; virtual Logic path_completed(int); public: ray_point(const point& pWhere,int iBN,pl_raytr_model* pM,int ik, IntAr *iat=NULL); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1, raytr_params&rp1,int&iFin,int&iType, double*xe); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); Logic hit(){return lHit;}; }; class ray_point_reflected:public ray_point{ protected: int iBorderNum; Logic lRefRat; Logic lReflected; Logic lReflectNow; int iUWKind; virtual void other_body(int&,pl_border&,pl_body&); virtual Logic path_completed(int); public: ray_point_reflected(int iBRN,Logic rr,const point& pWhere,int iBN, pl_raytr_model* pM,int dwk,int uwk,IntAr *iat=NULL); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1,raytr_params&rp2, int&iFin,int&iType,double*xe); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); }; class ray_point_fict_border:public ray_point{ protected: int iBReflNumber; const pl_fict_border &fbReflect; point pRefl; Logic lReflected; Logic lSoonReflecting; int iFinRecent; int iBorderStopped; virtual void other_body(int&,pl_border&,pl_body&); public: ray_point_fict_border(int iBRN,const pl_fict_border &fbReflect, const point& pWhere,int iBN,pl_raytr_model* pM, int dwk,int uwk,IntAr *iat=NULL); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1,raytr_params&rp1, int&iFin,int&iType,double*xe); virtual void border_num(int& iRetBord,int iBody); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void prepare_refkin(pl_border&a_border,int& iBody, geophys_params&gp1,geophys_params&gp2,raytr_params&rp2, double&fVP12,double&fVS12, double&fVP22,double&fVS22,double*dAniz1,double*dAniz2, double&dA,double&dB,double&dC,double*dNormal); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); point reflection(){return pRefl;}; }; #endif /* rays_shoot_specifics.H */ /* Melnikov George Yu. 14-Oct-1999 */ /* Melnikov George Yu. 15-Oct-1999 */ /* Melnikov George Yu. 18-Oct-1999 */ /* Melnikov George Yu. 19-Oct-1999 */ /* Melnikov George Yu. 25-Oct-1999 */ /* Melnikov George Yu. 26-Oct-1999 */ /* Melnikov George Yu. 2-Nov-1999 */ /* Melnikov George Yu. 18-Nov-1999 */ /* Melnikov George Yu. 19-Nov-1999 */ /* Melnikov George Yu. 23-Nov-1999 */ /* Melnikov George Yu. 24-Nov-1999 */ /* Melnikov George Yu. 20-Dec-1999 */ /* Melnikov George Yu. 22-Dec-1999 */ /* Melnikov George Yu. 23-Dec-1999 */
11
class
ray_specifics
{
12
protected
:
13
pl_raytr_model
*pmFather;
14
virtual
void
other_body(
int
&,
pl_border
&,
pl_body
&);
15
int
iNodes,iSteps;
16
17
int
iDWKind;
18
int
iUWKind;
19
20
public
:
21
int
iCurrWaveT;
// Текущий тип проходящий волны int iCurrWaveR; // Текущий тип преломляющейся/отражающейся волны ray_specifics(pl_raytr_model* pM,int dwk,int iNodes=-1); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1,raytr_params&rp2, int&iFin,int&iType, double*xe); virtual void border_num(int& iRetBord,int iBody); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void prepare_refkin(pl_border&a_border,int& iBody, geophys_params&gp1,geophys_params&gp2, raytr_params&rp2, double&fVP12,double&fVS12, double&fVP22,double&fVS22,double*dAniz1,double*dAniz2, double&dA,double&dB,double&dC,double*dNormal); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); virtual void raydiverg(double*,double*,double*,double*,double*,double*,double*, double*,double*,int*,int*,double*,double*,int*, double*,int*,int*,double*,double*,double*,double*, double*,double*,double*,double*,double*,double*,double*, double*,double*,double*,double*,int*,double*,double*, double*,int*,double*,double*); virtual void refking(double*,double*,double*,double*,double*,double*, double*,double*,double*,double*,double*,int*,int*,double*, double*,double*,double*,double*,double*,double*, double*,double*,int*); }; class ray_point:public ray_specifics{ protected: IntAr iaTemplate; Logic lFinish; const point &pWhere; Logic lHit; int iBodyNum; virtual Logic path_completed(int); public: ray_point(const point& pWhere,int iBN,pl_raytr_model* pM,int ik, IntAr *iat=NULL); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1, raytr_params&rp1,int&iFin,int&iType, double*xe); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); Logic hit(){return lHit;}; }; class ray_point_reflected:public ray_point{ protected: int iBorderNum; Logic lRefRat; Logic lReflected; Logic lReflectNow; int iUWKind; virtual void other_body(int&,pl_border&,pl_body&); virtual Logic path_completed(int); public: ray_point_reflected(int iBRN,Logic rr,const point& pWhere,int iBN, pl_raytr_model* pM,int dwk,int uwk,IntAr *iat=NULL); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1,raytr_params&rp2, int&iFin,int&iType,double*xe); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); }; class ray_point_fict_border:public ray_point{ protected: int iBReflNumber; const pl_fict_border &fbReflect; point pRefl; Logic lReflected; Logic lSoonReflecting; int iFinRecent; int iBorderStopped; virtual void other_body(int&,pl_border&,pl_body&); public: ray_point_fict_border(int iBRN,const pl_fict_border &fbReflect, const point& pWhere,int iBN,pl_raytr_model* pM, int dwk,int uwk,IntAr *iat=NULL); virtual void prepare_raydiver(IntAr&aNPoints,int& iNBord,int&iMax,int&iBody,DoubleAr&aA, DoubleAr&aB,DoubleAr&aC,DoubleAr&aD,DoubleAr&aX,DoubleAr&aY, DoubleAr&aZ,double*dAniz1,double&fVP12,double&fVS12, double*&x1,double*&x2,geophys_params&gp1,raytr_params&rp1, int&iFin,int&iType,double*xe); virtual void border_num(int& iRetBord,int iBody); virtual void complete_raydiver(int iRetBord,int iBody,double dE, const double&dPhi,const double&dTeta,const double&dTFinal, const double*daDxdfi0,const double*daDxdteta0, const double*dksidfi,const double*dksidteta, const double*vray,const double*vpol, const double*xe,crossings_ptrs*pcRes, const pl_body&a_body, pl_border&a_border, double *,double *,Logic &lEnd); virtual void prepare_refkin(pl_border&a_border,int& iBody, geophys_params&gp1,geophys_params&gp2,raytr_params&rp2, double&fVP12,double&fVS12, double&fVP22,double&fVS22,double*dAniz1,double*dAniz2, double&dA,double&dB,double&dC,double*dNormal); virtual void complete_refkin(int iBody,double* dRayParams,double* dDummy, crossings_ptrs *pcRes,double dC1[2],double dC2[2],int&iType, int&it2,geophys_params&gp1,geophys_params&gp2, raytr_params&rp1,raytr_params&rp2,double*dAniz1, double*dAniz2,double&dA,double&dB,double&dC,double*vpol, Logic&lEnd,double*,double*,double*); point reflection(){return pRefl;}; }; #endif /* rays_shoot_specifics.H */ /* Melnikov George Yu. 14-Oct-1999 */ /* Melnikov George Yu. 15-Oct-1999 */ /* Melnikov George Yu. 18-Oct-1999 */ /* Melnikov George Yu. 19-Oct-1999 */ /* Melnikov George Yu. 25-Oct-1999 */ /* Melnikov George Yu. 26-Oct-1999 */ /* Melnikov George Yu. 2-Nov-1999 */ /* Melnikov George Yu. 18-Nov-1999 */ /* Melnikov George Yu. 19-Nov-1999 */ /* Melnikov George Yu. 23-Nov-1999 */ /* Melnikov George Yu. 24-Nov-1999 */ /* Melnikov George Yu. 20-Dec-1999 */ /* Melnikov George Yu. 22-Dec-1999 */ /* Melnikov George Yu. 23-Dec-1999 */
22
int
iCurrWaveR;
// Текущий тип преломляющейся/отражающейся волны
23
ray_specifics
(
pl_raytr_model
* pM,
int
dwk,
int
iNodes=-1);
24
virtual
void
25
prepare_raydiver(
IntAr
&aNPoints,
int
& iNBord,
int
&iMax,
int
&iBody,
DoubleAr
&aA,
26
DoubleAr
&aB,
DoubleAr
&aC,
DoubleAr
&aD,
DoubleAr
&aX,
DoubleAr
&aY,
27
DoubleAr
&aZ,
double
*dAniz1,
double
&fVP12,
double
&fVS12,
28
double
*&x1,
double
*&x2,
geophys_params
&gp1,
raytr_params
&rp2,
29
int
&iFin,
int
&iType,
30
double
*xe);
31
32
virtual
void
border_num(
int
& iRetBord,
int
iBody);
33
34
virtual
void
35
complete_raydiver(
int
iRetBord,
int
iBody,
double
dE,
36
const
double
&dPhi,
const
double
&dTeta,
const
double
&dTFinal,
37
const
double
*daDxdfi0,
const
double
*daDxdteta0,
38
const
double
*dksidfi,
const
double
*dksidteta,
39
const
double
*vray,
const
double
*vpol,
40
const
double
*xe,crossings_ptrs*pcRes,
41
const
pl_body
&a_body,
pl_border
&a_border,
42
double
*,
double
*,Logic &lEnd);
43
44
virtual
void
45
prepare_refkin(
pl_border
&a_border,
int
& iBody,
46
geophys_params
&gp1,
geophys_params
&gp2,
47
raytr_params
&rp2,
48
double
&fVP12,
double
&fVS12,
49
double
&fVP22,
double
&fVS22,
double
*dAniz1,
double
*dAniz2,
50
double
&dA,
double
&dB,
double
&dC,
double
*dNormal);
51
52
virtual
void
53
complete_refkin(
int
iBody,
double
* dRayParams,
double
* dDummy,
54
crossings_ptrs *pcRes,
double
dC1[2],
double
dC2[2],
int
&iType,
55
int
&it2,
geophys_params
&gp1,
geophys_params
&gp2,
56
raytr_params
&rp1,
raytr_params
&rp2,
double
*dAniz1,
57
double
*dAniz2,
double
&dA,
double
&dB,
double
&dC,
double
*vpol,
58
Logic&lEnd,
double
*,
double
*,
double
*);
59
virtual
void
raydiverg(
double
*,
double
*,
double
*,
double
*,
double
*,
double
*,
double
*,
60
double
*,
double
*,
int
*,
int
*,
double
*,
double
*,
int
*,
61
double
*,
int
*,
int
*,
double
*,
double
*,
double
*,
double
*,
62
double
*,
double
*,
double
*,
double
*,
double
*,
double
*,
double
*,
63
double
*,
double
*,
double
*,
double
*,
int
*,
double
*,
double
*,
64
double
*,
int
*,
double
*,
double
*);
65
66
virtual
void
refking(
double
*,
double
*,
double
*,
double
*,
double
*,
double
*,
67
double
*,
double
*,
double
*,
double
*,
double
*,
int
*,
int
*,
double
*,
68
double
*,
double
*,
double
*,
double
*,
double
*,
double
*,
69
double
*,
double
*,
int
*);
70
};
71
72
class
ray_point
:
public
ray_specifics
{
73
protected
:
74
IntAr
iaTemplate;
75
Logic lFinish;
76
const
point
&pWhere;
77
Logic lHit;
78
int
iBodyNum;
79
virtual
Logic path_completed(
int
);
80
public
:
81
ray_point
(
const
point
& pWhere,
int
iBN,
pl_raytr_model
* pM,
int
ik,
82
IntAr
*iat=NULL);
83
virtual
void
84
prepare_raydiver(
IntAr
&aNPoints,
int
& iNBord,
int
&iMax,
int
&iBody,
DoubleAr
&aA,
85
DoubleAr
&aB,
DoubleAr
&aC,
DoubleAr
&aD,
DoubleAr
&aX,
DoubleAr
&aY,
86
DoubleAr
&aZ,
double
*dAniz1,
double
&fVP12,
double
&fVS12,
87
double
*&x1,
double
*&x2,
geophys_params
&gp1,
88
raytr_params
&rp1,
int
&iFin,
int
&iType,
89
double
*xe);
90
91
virtual
void
92
complete_raydiver(
int
iRetBord,
int
iBody,
double
dE,
93
const
double
&dPhi,
const
double
&dTeta,
const
double
&dTFinal,
94
const
double
*daDxdfi0,
const
double
*daDxdteta0,
95
const
double
*dksidfi,
const
double
*dksidteta,
96
const
double
*vray,
const
double
*vpol,
97
const
double
*xe,crossings_ptrs*pcRes,
98
const
pl_body
&a_body,
pl_border
&a_border,
99
double
*,
double
*,Logic &lEnd);
100
virtual
void
101
complete_refkin(
int
iBody,
double
* dRayParams,
double
* dDummy,
102
crossings_ptrs *pcRes,
double
dC1[2],
double
dC2[2],
int
&iType,
103
int
&it2,
geophys_params
&gp1,
geophys_params
&gp2,
104
raytr_params
&rp1,
raytr_params
&rp2,
double
*dAniz1,
105
double
*dAniz2,
double
&dA,
double
&dB,
double
&dC,
double
*vpol,
106
Logic&lEnd,
double
*,
double
*,
double
*);
107
Logic hit(){
return
lHit;};
108
};
109
110
class
ray_point_reflected
:
public
ray_point
{
111
protected
:
112
int
iBorderNum;
113
Logic lRefRat;
114
Logic lReflected;
115
Logic lReflectNow;
116
int
iUWKind;
117
virtual
void
other_body(
int
&,
pl_border
&,
pl_body
&);
118
virtual
Logic path_completed(
int
);
119
public
:
120
ray_point_reflected
(
int
iBRN,Logic rr,
const
point
& pWhere,
int
iBN,
121
pl_raytr_model
* pM,
int
dwk,
int
uwk,
IntAr
*iat=NULL);
122
virtual
void
123
prepare_raydiver(
IntAr
&aNPoints,
int
& iNBord,
int
&iMax,
int
&iBody,
DoubleAr
&aA,
124
DoubleAr
&aB,
DoubleAr
&aC,
DoubleAr
&aD,
DoubleAr
&aX,
DoubleAr
&aY,
125
DoubleAr
&aZ,
double
*dAniz1,
double
&fVP12,
double
&fVS12,
126
double
*&x1,
double
*&x2,
geophys_params
&gp1,
raytr_params
&rp2,
127
int
&iFin,
int
&iType,
double
*xe);
128
virtual
void
129
complete_raydiver(
int
iRetBord,
int
iBody,
double
dE,
130
const
double
&dPhi,
const
double
&dTeta,
const
double
&dTFinal,
131
const
double
*daDxdfi0,
const
double
*daDxdteta0,
132
const
double
*dksidfi,
const
double
*dksidteta,
133
const
double
*vray,
const
double
*vpol,
134
const
double
*xe,crossings_ptrs*pcRes,
135
const
pl_body
&a_body,
pl_border
&a_border,
136
double
*,
double
*,Logic &lEnd);
137
138
virtual
void
139
complete_refkin(
int
iBody,
double
* dRayParams,
double
* dDummy,
140
crossings_ptrs *pcRes,
double
dC1[2],
double
dC2[2],
int
&iType,
141
int
&it2,
geophys_params
&gp1,
geophys_params
&gp2,
142
raytr_params
&rp1,
raytr_params
&rp2,
double
*dAniz1,
143
double
*dAniz2,
double
&dA,
double
&dB,
double
&dC,
double
*vpol,
144
Logic&lEnd,
double
*,
double
*,
double
*);
145
146
};
147
148
class
ray_point_fict_border
:
public
ray_point
{
149
protected
:
150
int
iBReflNumber;
151
const
pl_fict_border
&fbReflect;
152
point
pRefl;
153
Logic lReflected;
154
Logic lSoonReflecting;
155
int
iFinRecent;
156
int
iBorderStopped;
157
158
virtual
void
other_body(
int
&,
pl_border
&,
pl_body
&);
159
public
:
160
ray_point_fict_border
(
int
iBRN,
const
pl_fict_border
&fbReflect,
161
const
point
& pWhere,
int
iBN,
pl_raytr_model
* pM,
162
int
dwk,
int
uwk,
IntAr
*iat=NULL);
163
virtual
void
164
prepare_raydiver(
IntAr
&aNPoints,
int
& iNBord,
int
&iMax,
int
&iBody,
DoubleAr
&aA,
165
DoubleAr
&aB,
DoubleAr
&aC,
DoubleAr
&aD,
DoubleAr
&aX,
DoubleAr
&aY,
166
DoubleAr
&aZ,
double
*dAniz1,
double
&fVP12,
double
&fVS12,
167
double
*&x1,
double
*&x2,
geophys_params
&gp1,
raytr_params
&rp1,
168
int
&iFin,
int
&iType,
double
*xe);
169
170
virtual
void
border_num(
int
& iRetBord,
int
iBody);
171
172
virtual
void
173
complete_raydiver(
int
iRetBord,
int
iBody,
double
dE,
174
const
double
&dPhi,
const
double
&dTeta,
const
double
&dTFinal,
175
const
double
*daDxdfi0,
const
double
*daDxdteta0,
176
const
double
*dksidfi,
const
double
*dksidteta,
177
const
double
*vray,
const
double
*vpol,
178
const
double
*xe,crossings_ptrs*pcRes,
179
const
pl_body
&a_body,
pl_border
&a_border,
180
double
*,
double
*,Logic &lEnd);
181
182
virtual
void
183
prepare_refkin(
pl_border
&a_border,
int
& iBody,
184
geophys_params
&gp1,
geophys_params
&gp2,
raytr_params
&rp2,
185
double
&fVP12,
double
&fVS12,
186
double
&fVP22,
double
&fVS22,
double
*dAniz1,
double
*dAniz2,
187
double
&dA,
double
&dB,
double
&dC,
double
*dNormal);
188
189
virtual
void
190
complete_refkin(
int
iBody,
double
* dRayParams,
double
* dDummy,
191
crossings_ptrs *pcRes,
double
dC1[2],
double
dC2[2],
int
&iType,
192
int
&it2,
geophys_params
&gp1,
geophys_params
&gp2,
193
raytr_params
&rp1,
raytr_params
&rp2,
double
*dAniz1,
194
double
*dAniz2,
double
&dA,
double
&dB,
double
&dC,
double
*vpol,
195
Logic&lEnd,
double
*,
double
*,
double
*);
196
point
reflection(){
return
pRefl;};
197
};
198
199
#endif
/* rays_shoot_specifics.H */
200
/* Melnikov George Yu. 14-Oct-1999 */
201
/* Melnikov George Yu. 15-Oct-1999 */
202
/* Melnikov George Yu. 18-Oct-1999 */
203
/* Melnikov George Yu. 19-Oct-1999 */
204
/* Melnikov George Yu. 25-Oct-1999 */
205
/* Melnikov George Yu. 26-Oct-1999 */
206
/* Melnikov George Yu. 2-Nov-1999 */
207
/* Melnikov George Yu. 18-Nov-1999 */
208
/* Melnikov George Yu. 19-Nov-1999 */
209
/* Melnikov George Yu. 23-Nov-1999 */
210
/* Melnikov George Yu. 24-Nov-1999 */
211
/* Melnikov George Yu. 20-Dec-1999 */
212
/* Melnikov George Yu. 22-Dec-1999 */
213
/* Melnikov George Yu. 23-Dec-1999 */
pl_body
Definition:
p_elements.H:225
geophys_params
Definition:
any_elements.H:22
ray_point
Definition:
rays_shoot_specifics.H:72
pl_border
Definition:
p_elements.H:201
IntAr
Definition:
IntAr.H:14
point
Definition:
geometry.H:16
DoubleAr
Definition:
DoubleAr.H:14
ray_point_reflected
Definition:
rays_shoot_specifics.H:110
pl_fict_border
Definition:
p_elements.H:134
ray_specifics
Definition:
rays_shoot_specifics.H:11
pl_raytr_model
Definition:
p_raytr_model.H:32
raytr_params
Definition:
any_elements.H:33
ray_point_fict_border
Definition:
rays_shoot_specifics.H:148
Generated by
1.8.5