4 #ifndef __u3d_raytracing_hpp
5 #define __u3d_raytracing_hpp
8 #include <u3d_model.hpp>
9 #include <u3d_defines.hpp>
11 #include "u3d_ray.hpp"
12 #include "u3d_raytr_defines.hpp"
29 bool snellius(
double vin,
double teta0,
double az,
30 double vout,
int rtr,
double iAngle,
31 double iAz,
double &teta1,
double &az1);
44 double &iAngle,
double &iAz,
45 double &iCurvity,
int &iBoundNum,
46 U3D_WAVE_TYPE vPS,
bool prevInt,
47 bool noIntersect=
false);
49 U3D_STEP_RESULT rayStep(
U3dRayPoint &rp,
double df,
double &dt,
50 double &iAngle,
double &iAz,
51 double &iCurvity,
int &iBoundNum,
int &bn1,
int &bn2,
52 U3D_WAVE_TYPE vPS,
bool prevInt,
53 bool noIntersect=
false);
55 bool intersectCellTriangles(
const U3dGridCell* cell,
58 U3dPoint &ip,
int &iBoundNum,
double &iAngle,
double &iAz,
63 U3dPoint &ip,
int &iBoundNum,
double &iAngle,
double &iAz,
70 double df, U3D_WAVE_TYPE vPS,
bool prevInt,
73 void stepOnChord(
double k,
double fK,
double azK,
double df,
double vel,
88 double BIGGEST_RADIUS;
void CalcIntParams(U3dRayPoint p, U3dPoint p0, int rtr, U3dPoint &p1)
U3D_STEP_RESULT RayStep(U3dRayPoint &rp, double df, double &dt, double &iAngle, double &iAz, double &iCurvity, int &iBoundNum, U3D_WAVE_TYPE vPS, bool prevInt, bool noIntersect=false)
virtual U3dRay * rayShoot(U3dPoint startP, double f, double az, U3dCodeAr rCode, bool waySave=false)
U3dBox * m_modelBox
Definition: u3d_raytracing.hpp:38
Definition: u3d_box.hpp:24
bool snellius(double vin, double teta0, double az, double vout, int rtr, double iAngle, double iAz, double &teta1, double &az1)
void getEndPoint(U3dPoint p0, U3dPoint &p1)
Definition: u3d_point.hpp:16
U3dModel * m_model
Definition: u3d_raytracing.hpp:32
Definition: u3d_ray.hpp:14
double getTime(U3dPoint p0, U3dPoint p1, double v0)
Definition: u3d_raytr_defines.hpp:65
Definition: u3d_model.hpp:15
U3dModel * getModel() const
Definition: u3d_raytracing.hpp:34
Definition: u3d_grid_cell.hpp:32
Definition: u3d_raytracing.hpp:15