7 #include "u3d_migr_shooter.hpp"
8 #include <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);
135 void cleanMigrChildren();
137 U3dRay* testRayShoot(
U3dPoint startP,
double f,
double az, U3dCodeAr rCode,
bool waySave)
138 {
return rayShoot(startP, f, az, rCode, waySave); }
143 time_t startTimer() {
return time(NULL); }
144 void stopTimer(time_t beg,
const char* message)
146 time_t end = time(NULL);
147 double t = difftime(end, beg);
172 bool coverCubeFace(
U3dPoint p, U3D_WAVE_TYPE wt,
int faceId,
173 double f,
double az);
181 bool migrCellComp(
MigrCell cell1,
MigrCell cell2, ushort i, ushort j, ushort k);
184 bool getNormalDirection(ushort i, ushort j, ushort k,
double &normF,
double &normAz);
191 double getAmpl(
int spId, std::vector<int> &recIds, std::vector<double> &recT,
192 std::vector<double> &recF, std::vector<double> &recAz);
200 inline bool getCellPoint(
const ushort& i,
const ushort& j,
const ushort& k,
U3dPoint& p);
220 bool rayError(
U3dRay *
ray,
const char* message,
double f,
double az,
U3dPoint sp);
221 void Log(
const char* str);
224 void saveIPGrid(
MigrDataCube migr_cube,
int i_max,
int j_max,
int k_max,
225 int prog_id,
int sp_num);
251 U3D_MIGR_TYPE m_mType;
262 inline bool U3dMigr::getCellPoint(
const ushort& i,
const ushort& j,
const ushort& k,
U3dPoint& p)
270 p.
setXYZ(stepx/2 + i*m_stepX,
272 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
bool getMigrCube(U3dPoint p, U3D_WAVE_TYPE wType)
bool formMigrGrid(MigrCell *&grid, int &size)
static void info(const char *format,...)
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