UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
RayTracing Class Reference

Ray tracing class. More...

#include <ray_tracing.hpp>

Inheritance diagram for RayTracing:
RayShooter RTMigr RTWaveCalc

Public Member Functions

 RayTracing (Vel2dModel *mod2d)
 
RayInfoRayShoot (double f, double startX, double startZ, bool waySave, CodeAr rCode, bool calcSD, int_ar *bNums=NULL)
 
void AddObSysPtr (ObservSys *)
 
void SetDL (double dl)
 
double GetDL ()
 
void CalcIntParams2 (double x, double z, double f, int rtr, double &x0, double &z0, double &x1, double &z1)
 

Static Public Member Functions

static bool Snellius (double vin, double teta0, double vout, int rtr, double iAngle, double &teta1)
 

Public Attributes

Vel2dModelMod2d
 
ObservSysObsSys
 

Protected Member Functions

STEP_RESULT RayStep (double &x, double &z, double &f, double &v, double df, double &dt, double &resultAngle, double &resultCurvity, int &iBoundNum, WAVE_TYPE vPS, bool prevInt, bool noIntersect=false)
 
bool CalcRayAmpl (RayInfo *Ray)
 
double CalcRayCoeff (double x, double z, double x0, double z0, double x1, double z1, int bn1, int bn2, int boundN, WAVE_TYPE wt1, WAVE_TYPE wt2, double iAngle)
 
void CalcIntParams (double x, double z, double x0, double z0, int rtr, double &x1, double &z1)
 
void CalcIntParams (double x, double z, double &x0, double &z0, int rtr, double f, double &x1, double &z1)
 

Detailed Description

Ray tracing class.

Basic class, containing all elementary procedures of the ray tracing (chord-step, ray-step, single ray tracing, see also ray_tracing.cpp)

Member Function Documentation

void RayTracing::AddObSysPtr ( ObservSys )

Procedure of addition of the Observation System pointer (rays can be considered without Observation System, but then they wil not intersect the well)

void RayTracing::CalcIntParams ( double  x,
double  z,
double  x0,
double  z0,
int  rtr,
double &  x1,
double &  z1 
)
protected

Calculation of the next ray point after bound intersection (rt_calc.cpp)

void RayTracing::CalcIntParams2 ( double  x,
double  z,
double  f,
int  rtr,
double &  x0,
double &  z0,
double &  x1,
double &  z1 
)

Calculation of the ray points before and after bound intersection (rt_calc.cpp)

bool RayTracing::CalcRayAmpl ( RayInfo Ray)
protected

Amplitude calculation (rt_calc.cpp)

double RayTracing::CalcRayCoeff ( double  x,
double  z,
double  x0,
double  z0,
double  x1,
double  z1,
int  bn1,
int  bn2,
int  boundN,
WAVE_TYPE  wt1,
WAVE_TYPE  wt2,
double  iAngle 
)
protected

reflection/refraction coefficient calculation (rt_calc.cpp)

RayInfo* RayTracing::RayShoot ( double  f,
double  startX,
double  startZ,
bool  waySave,
CodeAr  rCode,
bool  calcSD,
int_ar bNums = NULL 
)

Single ray tracing procedure

STEP_RESULT RayTracing::RayStep ( double &  x,
double &  z,
double &  f,
double &  v,
double  df,
double &  dt,
double &  resultAngle,
double &  resultCurvity,
int &  iBoundNum,
WAVE_TYPE  vPS,
bool  prevInt,
bool  noIntersect = false 
)
protected

Step along the ray; intersections with bounds and well are taken into account (ray_tracing.cpp)

static bool RayTracing::Snellius ( double  vin,
double  teta0,
double  vout,
int  rtr,
double  iAngle,
double &  teta1 
)
static

Calculation of the ray reflection/refraction angle on the bound (ray_tracing.cpp)

Member Data Documentation

Vel2dModel* RayTracing::Mod2d

Pointer to the 2d-model object

ObservSys* RayTracing::ObsSys

Pointer to the Observation System


The documentation for this class was generated from the following file: