18 #include <ldb/dbtools.h>
19 #include <mix/DoubleAr.H>
21 #include <mix/ObjectsAr.H>
22 #include <mod3d/mod3d_basic.H>
45 #define AssocAr rayPathAr
51 #define AssocItemType rayPath
52 #define AssocKeyField key
53 #define AssocKeyType unsigned
54 #define AssocKeysCmp(key1,key2) COMPAR(key1,key2)
55 #include <mix/AssocAr.H>
66 void set_pars(
double,
double);
71 double fi()
const{
return dFi;};
72 double az()
const{
return dAz;};
75 #define AnyType ray_parameters
76 #define AnyAr ray_parameters_dynar
77 #include <mix/AnyAr.H>
98 friend class rays_set;
100 ray(
ray*,
int iTo,
int iKind=R_BORDER);
109 double A=0,
double B=0,
double C=0)
const;
110 void add_last_dxdaz(
DoubleAr&)
const;
111 void add_last_dxdfi(
DoubleAr&)
const;
112 void add_last_vpol (
DoubleAr&)
const;
114 double time_without_last()
const;
116 crossing next_to_last_crossing()
const;
117 int n_of_nodes()
const;
119 point reflection_point()
const;
120 double get_refrat()
const;
121 int reflection_number()
const;
122 Logic fictive_reflection()
const;
123 const crossings_ptrs * crossings()
const{
return cr;};
124 void merge(
const ray*);
134 void get_cross_points(aPoints* cr_points);
135 static unsigned globalRayCounter;
140 ray_parameters_dynar arbBreakAngles;
142 point crossPoints[250];
148 int iReflectionBorder;
161 const point&,
int,
double,
double vp[3]);
166 #define AnyType ray_to_receiver
167 #define AnyAr ray_to_receiver_ar
168 #include <mix/AnyAr.H>
179 rayPathAr* ray_path_ar;
182 const point3d& prp,
int n1,
int n2,
int iHRR=PM_ADD):
193 int iHRR=PM_ADD,
void (*idle_func)()=NULL);
195 const rayPathAr* get_ray_paths(){
return ray_path_ar;};
199 point3d receiver()
const{
return pReceiverPoint;};
200 int n1()
const {
return N1;};
201 int n2()
const {
return N2;};
202 virtual int store()
const;
215 for(
register int i=0;i<count();i++){
241 ray *raw_ray(
double df,
double da)
const;
247 int iBNumber,Logic&,
double& lE,
IntAr *iat,
ray*r=NULL)
const;
248 ray* raw_ray_point(
double,
double,
249 int iBNumber,
const point3d&, Logic&,
double& lE,
IntAr *iat,
257 Logic&,
int,
double& lE,
IntAr *iat,
258 Logic lRefRat=FALSE,
ray*r=NULL)
const;
259 ray* raw_ray_point_reflected(
double,
double,
const point3d&,
int iBNumber,
260 Logic&,
int,
double& lE,
IntAr *iat,
261 Logic lRefRat=FALSE,
ray*r=NULL)
const;
265 ray* raw_ray_fict_bord(
double,
double,
const point3d&,
int iBInNumber,
271 point sp()
const{
return pShotPoint;};
272 int n1()
const{
return N1;};
273 int n2()
const{
return N2;};
274 void set_uw_kind(
int ik){iUWKind=ik;};
275 void set_dw_kind(
int ik){iDWKind=ik;};
276 int uw_kind(){
return iUWKind;};
277 int dw_kind(){
return iDWKind;};
281 Logic equal_paths_to_border (
ray* r1,
ray*r2,
int iB);
282 Logic equal_paths_to_node (
ray* r1,
ray*r2,
int iN);
Definition: p_raytr_elements.H:113
Definition: db_managers.H:75
Definition: db_container.H:59
Definition: geometry.H:16
Definition: DoubleAr.H:14
Definition: p_elements.H:134
Definition: rays_shoot_specifics.H:11
Definition: dbnamedefs.h:85
Definition: p_raytr_model.H:32