UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 */
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,
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,
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,
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 
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 
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,
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 */
Definition: p_elements.H:225
Definition: any_elements.H:22
Definition: rays_shoot_specifics.H:72
Definition: p_elements.H:201
Definition: IntAr.H:14
Definition: geometry.H:16
Definition: DoubleAr.H:14
Definition: rays_shoot_specifics.H:110
Definition: p_elements.H:134
Definition: rays_shoot_specifics.H:11
Definition: p_raytr_model.H:32
Definition: any_elements.H:33
Definition: rays_shoot_specifics.H:148