3 #ifndef __p_straight_model_H
4 #define __p_straight_model_H
7 #include <mod3d/p_raytr_elements.H>
8 #include <mod3d/p_raytr_model.H>
10 #include "p_straight_elements.H"
11 #include "rays_straight.H"
13 #define PM_OUT_OF_DATE -6
23 crossings_ptrs caCrossingsStraight;
26 IntAr iaReflBordersLast;
28 crossings_ptrs caCrossingsRefl;
41 void cover_possible_borders (
int iReceiver,
rays&,
42 IntAr&,
double dAcc)
const;
43 void cover_one_border(
int iReceiver,
int iBR,
ray*&rRes,
double dAcc)
const;
45 StorageID create_trace (
int iReceiver,
int iSize,
double dDt,
double *dComp[3],
46 double* daSignal,
int iSigSize,
double dAcc,
51 StorageID create_iis(
int iReciever, meta_iis & miRes,
double dAcc,
int iWFlags);
54 int form_trace (
int iSize,
double dDt,
const meta_iis & miRes,
55 double *dComp[3],
double *daSignal,
int iSigSize);
58 void calculate_first_break (
int iN1,
int iN2,
const point& pReceiver,
59 double& dTime,
double dAcc);
65 void reflect_ray_from_border_to_border (
ray*,
int J,
int K);
66 void prepare_reflected_rays ();
67 void push_body (
int ib);
68 int GetNumHitBorder(
int j,
const IntAr& iaBordersToExec,
69 const rays& arRaysToExec,
const IntAr& iaCrossingsToExec);
70 int GetNumClosestRay(
const rays& arRaysToExec,
const IntAr& iaCrossingsToExec,
73 void extend_ray_to_border (
ray* prToPass,
int iNewBorder,
int iBodyN,
77 void init_shot_point (
const point& pShotPoint,
int ik);
78 void init_straight_tracing_process (
const point &pShotPoint,
int ik);
79 void init_reflected_tracing_process (
int ik);
80 rays* get_straight_rays(
int iReceiver,
double dAcc);
82 void try_to_pass_big_angle();
90 Logic store_ray_and_node (
int iBodN,
ray* pr,
int iNodeN);
93 StorageID create_trace (
int N1,
int N2,
int iSize,
double dDt,
double *dComp[3],
94 double* daSignal,
int iSigSize,
double dAcc,
97 StorageID straight_modeling (
int N1,
int N2,
double dAcc);
100 void first_break_time (
int iN1,
int iN2,
const point& pReceiver,
101 double& dTime,
double dAcc);
102 void first_break_time(
int iN1,
int iN2,
double& dTime);
103 void uw_break_time(
int iN1,
int iN2,
point&pR,
int iB,
double& dTime,
double dA);
104 void trace_reflected(
int iUWKind=PM_P);
105 void trace_reflected(
int iBorder,
int iUWKind);
106 void trace_straight(
const point &pShotPoint,
int iDWKind);
107 Logic register_receiver(
int N1,
int N2,
point pRP);
108 Logic straight_rays_shot()
const;
109 Logic reflected_rays_shot(
int iBorder=0)
const;
111 virtual const char* class_id(){
return "pl_straight_model";};
113 virtual Logic isDerivedFrom(
const char* class_name);
Definition: p_raytr_elements.H:113
Definition: p_elements.H:86
Definition: any_elements.H:22
Definition: p_straight_elements.H:9
Definition: p_straight_model.H:14
Definition: p_elements.H:23
Definition: p_elements.H:145
Definition: geometry.H:16
Definition: db_container.H:24
Definition: p_straight_elements.H:42
Definition: dbnamedefs.h:85
Definition: p_raytr_model.H:32