12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #include "defs.h"
- extern char errstr[200];
- int raytrace(FLOAT_GRID *,FLOAT_GRID *,POINT,POINT);
- int calc_deff(FLOAT_GRID *dens, FLOAT_GRID *deff, FLOAT_GRID *terma_mask, BEAM *bm)
- {
- int i, j, k;
-
- POINT p1;
- POINT p2;
-
-
- for (k=0;k<deff->z_count;k++)
- for (j=0;j<deff->y_count;j++)
- for (i=0;i<deff->x_count;i++)
-
- if (GRID_VALUE(terma_mask,i,j,k) > 0)
- GRID_VALUE(deff,i,j,k) = -1.0;
-
-
- p1.x = bm->y_vec[0];
- p1.y = bm->y_vec[1];
- p1.z = bm->y_vec[2];
-
- for (k=0;k<deff->z_count;k++)
- for (j=0;j<deff->y_count;j++)
- for (i=0;i<deff->x_count;i++)
- if (GRID_VALUE(deff,i,j,k) == -1.0)
- {
-
-
-
-
- p2.x = deff->start.x + ((float) i)*deff->inc.x;
- p2.y = deff->start.y + ((float) j)*deff->inc.y;
- p2.z = deff->start.z + ((float) k)*deff->inc.z;
-
- p2.x = p1.x + (p2.x-p1.x)*(float)10.0;
- p2.y = p1.y + (p2.y-p1.y)*(float)10.0;
- p2.z = p1.z + (p2.z-p1.z)*(float)10.0;
-
- raytrace(dens,deff,p1,p2);
- }
- return(SUCCESS);
- }
|