UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
u3d_raytr_defines.hpp
1 /* u3d_raytr_defines.hpp */
2 /* $Id: u3d_raytr_defines.hpp,v 1.26 2008/04/25 11:37:42 guser1 Exp $ */
3 
4 #ifndef __u3d_raytr_defines_hpp
5 #define __u3d_raytr_defines_hpp
6 
7 #define U3D_RAY_ANGLE_CHORD_STEP 0.01
8 #define U3D_RAY_LINE_CHORD_STEP 50.0
9 #define U3D_MIN_RAY_LINE_STEP 0.5
10 
11 #define U3D_SEISMIC_TIME_MULTIPLIER 1000.0
12 
13 #define U3D_NHB_CONF_NUM 6
14 
15 
16 #define U3D_RAY_STEP_ERROR_MESSAGE
17 
18 
19 #include <complex>
20 #define dcomplex complex<double>
21 
22 #include <u3d_model_defines.hpp> /* for U3D_WAVE_TYPE */
23 
24 
25 //#ifdef __cplusplus
26 //extern "C" {
27 //#endif /* __cplusplus */
28 
29 const double PI_2 = M_PI*2.;
30 
31 //#ifdef __cplusplus
32 //};
33 //#endif /* __cplusplus */
34 
35 
36 
37 enum U3D_STEP_RESULT { U3D_STEP_DONE, U3D_OUT_OF_MODEL, U3D_BOUND_INTERSECTION,
38  U3D_WELL_INTERSECTION, U3D_STEP_ERROR, U3D_UPGOING_WAVE,
39  U3D_COMPLEX_CELL, U3D_NO_PARAMS };
40 
41 //============================================================================
43 struct U3dCodeItem
44 {
45  int bNum;
46  U3D_WAVE_TYPE wType;
47  bool trFlag;
49  bool operator==(const U3dCodeItem& p) const {
50  return ((bNum == p.bNum ) && (wType == p.wType) && (trFlag == p.trFlag) );
51  }
52 
53 };
54 
55 
56 typedef vector<U3dCodeItem> U3dCodeAr;
57 
58 
59 
60 
61 //============================================================================
62 //static
63 bool analyseRayCode(U3dCodeAr code, int ciId, int &type);
64 
66 void analyseAngles(double &f, double &az);
67 
69 string printRayType(int ray_id);
70 
71 
72 
73 
75 struct U3dRayPoint {
76  U3dPoint p;
77  double f;
78  double az;
79  double t;
81  bool operator==(const U3dRayPoint&) const;
82  bool operator!=(const U3dRayPoint&) const;
83 };
84 
85 typedef vector<U3dRayPoint> U3dRayPointsAr;
86 
87 
88 
89 //============================================================================
91 struct U3dRayIntSt
92 {
93  int bNum1, bNum2;
94  int boundNum;
95  U3dPoint point;
96  double coeff;
97  double t;
98  double f1;
99  double az1;
100  double f2;
101  double az2;
102  double iAngle;
103  double iAz;
104  double iCurv;
105 };
106 
107 typedef vector<U3dRayIntSt> U3dRayIntStAr;
108 
109 
110 
111 //============================================================================
113 struct U3dRayWIntSt
114 {
115  U3dPoint p;
116  double f, az;
117  double t;
118  double ampl;
119 };
120 
121 typedef vector<U3dRayWIntSt> U3dRayWIntStAr;
122 
123 
124 
125 //============================================================================
127 enum U3dReflCoefType {
128  ZOEPPRITZ,
129  AKI_RICHARDS,
130  SHUEY
131 };
132 
133 //===============================================================================
134 #define U3D_P 0
135 #define U3D_PPup 1
136 #define U3D_PSup 2
137 #define U3D_PSdown 3
138 //---------------------- exotic ---------------------------------------
139 #define U3D_S 4
140 #define U3D_SSup 5
141 #define U3D_SPup 6
142 #define U3D_SPdown 7
143 
144 
145 #endif /* u3d_raytr_defines.hpp */
int bNum2
Definition: u3d_raytr_defines.hpp:83
U3dPoint point
Definition: u3d_raytr_defines.hpp:85
double iAngle
Definition: u3d_raytr_defines.hpp:92
int bNum
Definition: u3d_raytr_defines.hpp:35
double t
Definition: u3d_raytr_defines.hpp:69
double az1
Definition: u3d_raytr_defines.hpp:89
int boundNum
Definition: u3d_raytr_defines.hpp:84
Definition: u3d_raytr_defines.hpp:81
double az
Definition: u3d_raytr_defines.hpp:68
Definition: u3d_point.hpp:16
double az2
Definition: u3d_raytr_defines.hpp:91
Definition: u3d_raytr_defines.hpp:65
bool trFlag
Definition: u3d_raytr_defines.hpp:37
Definition: u3d_raytr_defines.hpp:103
double f2
Definition: u3d_raytr_defines.hpp:90
double f1
Definition: u3d_raytr_defines.hpp:88
double f
Definition: u3d_raytr_defines.hpp:67
U3dPoint p
Definition: u3d_raytr_defines.hpp:66
double iAz
Definition: u3d_raytr_defines.hpp:93
U3D_WAVE_TYPE wType
Definition: u3d_raytr_defines.hpp:36
Definition: u3d_raytr_defines.hpp:33