00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024 #ifndef _MMC_RAY_TRACING_H
00025 #define _MMC_RAY_TRACING_H
00026
00027 #include "simpmesh.h"
00028 #include "mcx_utils.h"
00029
00030 #define MAX_TRIAL 3
00031 #define FIX_PHOTON 1e-3f
00032
00033 void interppos(float3 *w,float3 *p1,float3 *p2,float3 *p3,float3 *pout);
00034 void getinterp(float w1,float w2,float w3,float3 *p1,float3 *p2,float3 *p3,float3 *pout);
00035 void fixphoton(float3 *p,float3 *nodes, int *ee);
00036 float onephoton(int id,raytracer *tracer,tetmesh *mesh,Config *cfg,float rtstep,RandType *ran,RandType *ran0);
00037 float reflectray(Config *cfg,float3 *c0,raytracer *tracer,int *oldeid,int *eid,int faceid,RandType *ran);
00038 inline float mmc_rsqrtf(float a);
00039
00040 #endif