7 #include "vel2dmod_global.hpp"
10 #include "vel2dmod_service.hpp"
26 Vel2dModel(
double *x,
double *z,
double *ang,
double *vp,
double *vs,
27 double *pkz,
double *skz,
double *den,
28 double *an_kp,
double *an_ks,
double *R,
int n,
29 double xMin,
double xMax,
double zMin,
double zMax,
30 double mod_x,
double mod_y,
double mod_az,
int approx_type = 0,
double grid_cell_size = RT_GRIDSIZE);
34 double mod_x,
double mod_y,
double mod_az,
int approx_type = 0);
48 void CheckModelStatus();
59 int ExactDefineBound(
double x,
double z,
double eps=DEFINE_BOUND_EPS,
bool cry=
true);
61 int GetBoundNum(
double x,
double z);
64 double GetVel(
double x,
double z, WAVE_TYPE vPS,
int bodyNum=-1);
66 double GetVel(
double x,
double z, WAVE_TYPE vPS,
double angle,
int bodyNum=-1);
69 void GetVelGr(
double x,
double z,
double &vk,
double &vka, WAVE_TYPE wt);
71 double GetVelMax(WAVE_TYPE wt);
74 double AnyBound(
int bNum,
double x,
bool &flag,
double z=-1);
77 bool GetParams(
double x,
double z,
double &vP,
double &vS,
double &den,
double &anKP,
double &anKS,
double &R);
78 bool GetParams(
double x,
double z,
double &vP,
double &vS,
double &den) {
80 return GetParams(x, z, vP, vS, den, anKP, anKS, R);
82 bool GetParams2(
double x,
double z,
double &vPx,
double &vPz,
double &vSx,
double &vSz,
double &den,
double &R);
85 bool BoundInt(
int bNum,
double x1,
double z1,
double x2,
double z2,
double &ix,
double &iz,
86 double &iAngle,
double &curvity,
bool ANY=
false);
97 int GetSegNum(
int bn,
int n);
98 int GetSegNum(
int bn,
double x,
double z);
106 void RebuildModel(
int bn,
double *x,
double *z,
bool *flag,
int num,
double rc=-1,
double sp=-1,
bool *im_flag=NULL);
108 void GenerateGrid(
double step=-1);
109 void RegenerateGrid(
double xmn,
double zmn,
double xmx,
double zmx);
110 double GetGridCellSize();
115 bool IsInsideOfModelArea(
double x,
double z);
117 void SetModelXYAZ(
double m_x,
double m_y,
double m_az);
118 void GetModelXYAZ(
double &m_x,
double &m_y,
double &m_az);
124 virtual bool AddBound(
double *x,
double *z,
bool *flag,
int p_num,
double rc=-1,
double sp=-1);
135 bool checkInside(
double x,
double z);
137 bool belongPerimeter(
double x,
double z);
150 virtual void SetPBLimits(
int n,
double lmin,
double lmax)
151 {n=0; lmin=0; lmax=0;};
153 {n=0;
if (0x0 == str)
return;};
160 void GetModelXY(
double &x,
double &y) { x=modelX; y=modelY; };
162 bool LineInt(
int bNum,
double p,
double coord1,
double coord2,
bool finiteFlag,
163 bool xzFlag,
double &result);
176 bool TestLine(
int bNum,
double p,
double coord1,
double coord2,
bool finiteFlag,
bool xzFlag);
178 void RebuildOuterBound(
int bn,
double x0,
double z0,
double x1,
double z1,
bool st_end);
179 void BoundsSegmentation();
186 double modelAZ, modelX, modelY;
Class, describing bodies bound.
Definition: vel2dmod_service.hpp:23
virtual bool RemoveBound(int boundN)
bool ready
Definition: vel2dmod.hpp:143
void RebuildModel(int bn, double *x, double *z, bool *flag, int num, double rc=-1, double sp=-1, bool *im_flag=NULL)
Definition: vel2dmod.hpp:19
int ExactDefineBound(double x, double z, double eps=DEFINE_BOUND_EPS, bool cry=true)
virtual void AddPBValue(int n, double val)
Definition: vel2dmod.hpp:156
bool BoundInt(int bNum, double x1, double z1, double x2, double z2, double &ix, double &iz, double &iAngle, double &curvity, bool ANY=false)
bool GetLegitimValues(int bn, bool st_end, double &zmin, double &zmax)
double GetVel(double x, double z, WAVE_TYPE vPS, int bodyNum=-1)
bool IsOuterBound(int bNum)
double AnyBound(int bNum, double x, bool &flag, double z=-1)
Bound * SplitBounds(Bound *bound, double z)
double GetModelAz()
Definition: vel2dmod.hpp:159
void AddGridPtr(Grid2d *gridPtr)
int ExactDefineBody(double x, double z)
BodiesAr Bodies
Definition: vel2dmod.hpp:139
virtual void SetPBValue(int n, double val)
Definition: vel2dmod.hpp:154
int getApproxType()
Definition: vel2dmod.hpp:41
double xMin
Definition: vel2dmod.hpp:146
bool ExportToTextFiles(const char *files_path)
Observation system class.
Definition: os.hpp:13
void GetVelGr(double x, double z, double &vk, double &vka, WAVE_TYPE wt)
int m_approx_type
Definition: vel2dmod.hpp:184
Grid2d * pGrid
Definition: vel2dmod.hpp:147
void GetModelXY(double &x, double &y)
Definition: vel2dmod.hpp:160
Definition: grid2d.hpp:39
bool GetParams(double x, double z, double &vP, double &vS, double &den, double &anKP, double &anKS, double &R)
bool CombineBounds(Bound *top_b, Bound *bot_b)
bool LineInt(int bNum, double p, double coord1, double coord2, bool finiteFlag, bool xzFlag, double &result)
virtual void SetPBComment(int n, const char *str)
Definition: vel2dmod.hpp:152
Definition: objectar.hpp:17
int DefineBody(double x, double z)
virtual bool AddBound(double *x, double *z, bool *flag, int p_num, double rc=-1, double sp=-1)
BoundsAr Bounds
Definition: vel2dmod.hpp:140