7 #include "u3d_migr_shooter.hpp"
8 #include <rbm/u3d_seis.hpp>
18 float stpX,
float stpY,
float stpZ,
19 double dfe,
double mAngle, U3D_MIGR_TYPE mt,
bool slave=
true);
52 IPCell *&ip_info,
int &ip_cell_num,
53 int i_beg = -1,
int i_end = -1);
74 bool loadSPTraces(
int spId);
102 void getSteps(
float &step_x,
float &step_y,
float &step_z);
134 void cleanMigrChildren();
136 U3dRay* testRayShoot(
U3dPoint startP,
double f,
double az, U3dCodeAr rCode,
bool waySave)
137 {
return rayShoot(startP, f, az, rCode, waySave); }
142 time_t startTimer() {
return time(NULL); }
143 void stopTimer(time_t beg,
const char* message)
145 time_t end = time(NULL);
146 double t = difftime(end, beg);
147 UMessage::info(
"%s : complete... WORKING TIME = %g s", message, t);
171 bool coverCubeFace(
U3dPoint p, U3D_WAVE_TYPE wt,
int faceId,
172 double f,
double az);
180 bool migrCellComp(
MigrCell cell1,
MigrCell cell2, ushort i, ushort j, ushort k);
183 bool getNormalDirection(ushort i, ushort j, ushort k,
double &normF,
double &normAz);
190 double getAmpl(
int spId, std::vector<int> &recIds, std::vector<double> &recT,
191 std::vector<double> &recF, std::vector<double> &recAz);
199 inline bool getCellPoint(
const ushort& i,
const ushort& j,
const ushort& k,
U3dPoint& p);
219 bool rayError(
U3dRay *
ray,
const char* message,
double f,
double az,
U3dPoint sp);
220 void Log(
const char* str);
223 void saveIPGrid(
MigrDataCube migr_cube,
int i_max,
int j_max,
int k_max,
224 int prog_id,
int sp_num);
250 U3D_MIGR_TYPE m_mType;
261 inline bool U3dMigr::getCellPoint(
const ushort& i,
const ushort& j,
const ushort& k,
U3dPoint& p)
269 p.
setXYZ(stepx/2 + i*m_stepX,
271 stepz/2 + k*m_stepZ);
void addIPInfo(MigrDataCube ip_data, IPCell *ip_info, int ip_cell_num)
Definition: u3d_migr.hpp:13
U3dBox getModelBox() const
Definition: u3d_model.hpp:66
void prepareSecondStage()
double getIPValue(const IPCell &ip_cell)
void setXYZ(double x, double y, double z)
Definition: u3d_point.hpp:147
double getYMax() const
Definition: u3d_box.hpp:182
U3dRay * rayShoot(U3dPoint startP, double f, double az, U3dCodeAr rCode, bool waySave)
MigrDataCube m_migr_cube
Definition: u3d_migr_shooter.hpp:92
ushort m_k_max
Definition: u3d_migr_shooter.hpp:102
Definition: u3d_migr_defines.hpp:82
U3dAbstractSeis * getSeis()
bool getMigrCubeRec(int recNum, MigrCell *&cube, int &size)
double getXMax() const
Definition: u3d_box.hpp:172
float m_stepY
Definition: u3d_migr_shooter.hpp:97
migration-cell structure
Definition: u3d_migr_defines.hpp:47
bool getMigrCubeDummy(U3dPoint p, U3D_WAVE_TYPE wType)
Definition: u3d_point.hpp:16
incident-point-cell structure
Definition: u3d_migr_defines.hpp:63
U3dModel * m_model
Definition: u3d_raytracing.hpp:32
Definition: u3d_ray.hpp:14
float m_stepX
Definition: u3d_migr_shooter.hpp:96
void compMigrGrid(MigrCell *grid1, int size1, MigrCell *grid2, int size2, int recId, IPCell *&ip_info, int &ip_cell_num, int i_beg=-1, int i_end=-1)
ushort m_j_max
Definition: u3d_migr_shooter.hpp:101
static void info(const char *format,...)
bool getMigrCube(U3dPoint p, U3D_WAVE_TYPE wType)
bool formMigrGrid(MigrCell *&grid, int &size)
Definition: u3d_model.hpp:15
void initMigrCube(ushort imx, ushort jmx, ushort kmx)
bool getMigrCubeSP(int sp_num, MigrCell *&cube, int &size)
double getZMax() const
Definition: u3d_box.hpp:192
migration-cell structure
Definition: u3d_migr_defines.hpp:31
Definition: u3d_seis.hpp:14
void recalculateIPGrid(MigrDataCube ip_data)
float m_stepZ
Definition: u3d_migr_shooter.hpp:98
void getSteps(float &step_x, float &step_y, float &step_z)
ushort m_i_max
Definition: u3d_migr_shooter.hpp:100
Definition: u3d_migr_shooter.hpp:11