#pragma once //#include "PoroMediaDialogShare.h" //y #include "MainFrm.h" //y #include "RW_Dialog.h" //y #include "DS_cube.h" #include "DS_1b_cube.h" #include "file_IO_lib.h" #include "LinkedList.h" #include <algorithm> //fort sort algorithm //#include "SphereInput.h" #include <time.h> //for seeding the random gen. #include "MersenneTwister.h" //for Mersenne Twister Random Number Generator //from http://www-personal.umich.edu/~wagnerr/MersenneTwister.html //#include "Wincrypt.h" //#include <iostream> //#include <stdio.h> //#include <stdlib.h> //#include <math.h> //#include <float.h> //#define PARTICLES 1000 //#define PIXEL_SIZE 0.7 //#define RAND_MAX 32767 //already defined in "stdlib.h" // This will be type of cube used for xfrm and growth typedef unsigned char radius_map_type_rw; typedef unsigned int sg_status_rw; #define SG_FIBER_HIT_rw 0x0100 #define SG_NO_ERROR_rw 0x0000 // This is amount of BYTES reserved for precomputed SQRT table #define SG_SQRT_TABLE_BYTES_rw 1000000 //1MB #define sqrt_table_last_precomputed_rw SG_SQRT_TABLE_BYTES_rw/sizeof(unsigned short) //unsigned short sqrt_table_rw [ sqrt_table_last_precomputed_rw+1 ]; // Debug options - if TRUE (1) will add extra tests/slow down the run #define RW_DO_DEBUG 0 typedef struct distance_structure { float distance; float dispx; float dispy; float dispz; } distance_structure; void simultaneous_diffusion(DS_1b_cube* input_cube, void * dlg_share); //void simulation (DS_1b_cube* input_cube, void * dlg_share); //void jumpinPore (DS_1b_cube* input_cube, void * dlg_share); //void jumpinFiber (DS_1b_cube* input_cube, void * dlg_share); //void searchIntersection (double dx, double dy, double dz); //void searchCube (DS_1b_cube* input_cube, void * dlg_share); //void searchStartingPoint (DS_1b_cube* input_cube, void * dlg_share); //void findNearestPore (DS_1b_cube* input_cube, void * dlg_share); //void findNearestFiber (DS_1b_cube* input_cube, void * dlg_share); //void simulationResults (DS_1b_cube* input_cube, void * dlg_share); //void simulationResults (DS_1b_cube* input_cube, void * dlg_share); //double randomNo(double k); //void readSlices ( ); //void calculateLambda ( ); //void DistanceMapPore ( ); //void DistanceMapFiber( ); //void simulation ( ); //void searchStartingPoint ( ); //void findNearestFiber ( ); //void findNearestPore ( ); //void jumpinFiber ( ); //void jumpinPore( ); //void searchIntersection(double dx, double dy, double dz); //void calculateDistance ( ); //void simulationResults ( ); //void searchCube( );