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

#include <u3d_raytracing.hpp>

Inheritance diagram for U3dRayTracing:
U3dRayDynCalculator U3dAbstractRayShooter U3dAbstractRayShooter U3dMigrRayShooter U3dMigrRayShooter U3dRTModRayShooter U3dRTModRayShooter U3dMigrRayShooter U3dMigrRayShooter U3dRTModRayShooter U3dRTModRayShooter

Public Member Functions

 U3dRayTracing (U3dModel *mod3d)
 
virtual U3dRayrayShoot (U3dPoint startP, double f, double az, U3dCodeAr rCode, bool waySave=false)
 
bool snellius (double vin, double teta0, double az, double vout, int rtr, double iAngle, double iAz, double &teta1, double &az1)
 
U3dModelgetModel () const
 
 U3dRayTracing (U3dModel *mod3d)
 
virtual U3dRayrayShoot (U3dPoint startP, double f, double az, U3dCodeAr rCode, bool waySave=false)
 
bool snellius (double vin, double teta0, double az, double vout, int rtr, double iAngle, double iAz, double &teta1, double &az1)
 
U3dModelgetModel () const
 

Protected Member Functions

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)
 
U3D_STEP_RESULT rayStep (U3dRayPoint &rp, double df, double &dt, double &iAngle, double &iAz, double &iCurvity, int &iBoundNum, int &bn1, int &bn2, U3D_WAVE_TYPE vPS, bool prevInt, bool noIntersect=false)
 
bool intersectCellTriangles (const U3dGridCell *cell, U3dPoint p1, U3dPoint p2, U3dPoint &ip, int &iBoundNum, double &iAngle, double &iAz, int debug_level=0)
 
bool processNeighbourCells (const U3dGridCell *cell1, const U3dGridCell *cell2, U3dPoint p1, U3dPoint p2, U3dPoint &ip, int &iBoundNum, double &iAngle, double &iAz, int debug_level=0)
 
double getTime (U3dPoint p0, U3dPoint p1, double v0)
 
bool stepOnRay (U3dRayPoint p1, U3dRayPoint &p2, double df, U3D_WAVE_TYPE vPS, bool prevInt, double &vel)
 
void stepOnChord (double k, double fK, double azK, double df, double vel, U3dRayPoint rp0, U3dRayPoint &rp1)
 
void CalcIntParams (U3dRayPoint p, U3dPoint p0, int rtr, U3dPoint &p1)
 
void calcIntNeighPoints (U3dPoint p_int, double f, double az, U3dPoint &p0, U3dPoint &p1)
 
void getEndPoint (U3dPoint p0, 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)
 
U3D_STEP_RESULT rayStep (U3dRayPoint &rp, double df, double &dt, double &iAngle, double &iAz, double &iCurvity, int &iBoundNum, int &bn1, int &bn2, U3D_WAVE_TYPE vPS, bool prevInt, bool noIntersect=false)
 
bool intersectCellTriangles (const U3dGridCell *cell, U3dPoint p1, U3dPoint p2, U3dPoint &ip, int &iBoundNum, double &iAngle, double &iAz, int debug_level=0)
 
bool processNeighbourCells (const U3dGridCell *cell1, const U3dGridCell *cell2, U3dPoint p1, U3dPoint p2, U3dPoint &ip, int &iBoundNum, double &iAngle, double &iAz, int debug_level=0)
 
double getTime (U3dPoint p0, U3dPoint p1, double v0)
 
bool stepOnRay (U3dRayPoint p1, U3dRayPoint &p2, double df, U3D_WAVE_TYPE vPS, bool prevInt, double &vel)
 
void stepOnChord (double k, double fK, double azK, double df, double vel, U3dRayPoint rp0, U3dRayPoint &rp1)
 
void CalcIntParams (U3dRayPoint p, U3dPoint p0, int rtr, U3dPoint &p1)
 
void calcIntNeighPoints (U3dPoint p_int, double f, double az, U3dPoint &p0, U3dPoint &p1)
 
void getEndPoint (U3dPoint p0, U3dPoint &p1)
 

Protected Attributes

U3dModelm_model
 
U3dBoxm_modelBox
 
double dl
 

Detailed Description

Ray tracing class

Member Function Documentation

void U3dRayTracing::CalcIntParams ( U3dRayPoint  p,
U3dPoint  p0,
int  rtr,
U3dPoint p1 
)
protected

Calculates bound intersection point

void U3dRayTracing::CalcIntParams ( U3dRayPoint  p,
U3dPoint  p0,
int  rtr,
U3dPoint p1 
)
protected

Calculates bound intersection point

void U3dRayTracing::getEndPoint ( U3dPoint  p0,
U3dPoint p1 
)
protected

Calculates end point of the ray (case of the ray, intersecting the model volume)

void U3dRayTracing::getEndPoint ( U3dPoint  p0,
U3dPoint p1 
)
protected

Calculates end point of the ray (case of the ray, intersecting the model volume)

U3dModel* U3dRayTracing::getModel ( ) const
inline

Returns pointer to the 3d-model

U3dModel* U3dRayTracing::getModel ( ) const
inline

Returns pointer to the 3d-model

double U3dRayTracing::getTime ( U3dPoint  p0,
U3dPoint  p1,
double  v0 
)
protected

Returns travel time between two points

double U3dRayTracing::getTime ( U3dPoint  p0,
U3dPoint  p1,
double  v0 
)
protected

Returns travel time between two points

virtual U3dRay* U3dRayTracing::rayShoot ( U3dPoint  startP,
double  f,
double  az,
U3dCodeAr  rCode,
bool  waySave = false 
)
virtual

Single ray shooting procedure

Reimplemented in U3dRTModRayShooter, U3dRTModRayShooter, U3dMigrRayShooter, and U3dMigrRayShooter.

virtual U3dRay* U3dRayTracing::rayShoot ( U3dPoint  startP,
double  f,
double  az,
U3dCodeAr  rCode,
bool  waySave = false 
)
virtual

Single ray shooting procedure

Reimplemented in U3dRTModRayShooter, U3dRTModRayShooter, U3dMigrRayShooter, and U3dMigrRayShooter.

U3D_STEP_RESULT U3dRayTracing::RayStep ( U3dRayPoint rp,
double  df,
double &  dt,
double &  iAngle,
double &  iAz,
double &  iCurvity,
int &  iBoundNum,
U3D_WAVE_TYPE  vPS,
bool  prevInt,
bool  noIntersect = false 
)
protected

Makes ane elementary step along the ray

U3D_STEP_RESULT U3dRayTracing::RayStep ( U3dRayPoint rp,
double  df,
double &  dt,
double &  iAngle,
double &  iAz,
double &  iCurvity,
int &  iBoundNum,
U3D_WAVE_TYPE  vPS,
bool  prevInt,
bool  noIntersect = false 
)
protected

Makes ane elementary step along the ray

bool U3dRayTracing::snellius ( double  vin,
double  teta0,
double  az,
double  vout,
int  rtr,
double  iAngle,
double  iAz,
double &  teta1,
double &  az1 
)

Reflection/refraction parameters calculation

bool U3dRayTracing::snellius ( double  vin,
double  teta0,
double  az,
double  vout,
int  rtr,
double  iAngle,
double  iAz,
double &  teta1,
double &  az1 
)

Reflection/refraction parameters calculation

Member Data Documentation

U3dModel * U3dRayTracing::m_model
protected

Pointer to the model object

U3dBox * U3dRayTracing::m_modelBox
protected

Pointer to the model 3d box


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