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.2 2008/06/02 12:02:11 sasha 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 <rbm/u3d_model_defines.hpp> /* for U3D_WAVE_TYPE */
23 #include <rbm/u_raytr_defines.hpp>
24 
25 const double PI_2 = M_PI*2.;
26 
27 enum U3D_STEP_RESULT { U3D_STEP_DONE, U3D_OUT_OF_MODEL, U3D_BOUND_INTERSECTION,
28  U3D_WELL_INTERSECTION, U3D_STEP_ERROR, U3D_UPGOING_WAVE,
29  U3D_COMPLEX_CELL, U3D_NO_PARAMS };
30 
31 //============================================================================
34 {
35  int bNum;
36  U3D_WAVE_TYPE wType;
37  bool trFlag;
39  bool operator==(const U3dCodeItem& p) const {
40  return ((bNum == p.bNum ) && (wType == p.wType) && (trFlag == p.trFlag) );
41  }
42 
43 };
44 
45 
46 typedef std::vector<U3dCodeItem> U3dCodeAr;
47 
48 
49 
50 
51 //============================================================================
52 //static
53 bool analyseRayCode(U3dCodeAr code, int ciId, int &type);
54 
56 void analyseAngles(double &f, double &az);
57 
59 std::string printRayType(int ray_id);
60 
61 
62 
63 
65 struct U3dRayPoint {
67  double f;
68  double az;
69  double t;
71  bool operator==(const U3dRayPoint&) const;
72  bool operator!=(const U3dRayPoint&) const;
73 };
74 
75 typedef std::vector<U3dRayPoint> U3dRayPointsAr;
76 
77 
78 
79 //============================================================================
82 {
83  int bNum1, bNum2;
84  int boundNum;
86  double coeff;
87  double t;
88  double f1;
89  double az1;
90  double f2;
91  double az2;
92  double iAngle;
93  double iAz;
94  double iCurv;
95 };
96 
97 typedef std::vector<U3dRayIntSt> U3dRayIntStAr;
98 
99 
100 
101 //============================================================================
104 {
105  U3dPoint p;
106  double f, az;
107  double t;
108  double ampl;
109 };
110 
111 typedef std::vector<U3dRayWIntSt> U3dRayWIntStAr;
112 
113 
114 
115 #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