亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? raybundle.c

?? 用于2維的射線追蹤
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <popt.h>#include <mesh/mesh.h>#include <mesh/layer.h>#include <mesh/cell.h>#include <mesh/cellinfo.h>#include <mesh/mesh2xml.h>#include <raycode/raycode.h>#include <ray/raydescartes.h>#include "buffer.h"#include "ray2mesh.h"#define RAYBUNDLE_VERSION "0.2"#define RAYBUNDLE_PACKAGE "raybundle"/*#define DEBUG_RAYBUNDLE*/struct bundle_t {	struct coord_geo_t *source;	struct coord_geo_t *receiver;	double ray_travel_time;	char *phase;};struct bundle_set_t {	int receiver_lcid;	int nb_ray;	struct bundle_t bundle;};struct bundle_info_t {	int nb_bundle;	struct bundle_set_t * bundle_set;};/* --- duplicated progress bar from gimbos --- */void start_progress_bar_percent (void) {        fprintf(stdout, "      ");        fflush(stdout);}float progress_bar_percent (int nb, int max) {        float percent=100.*(float)nb/(float)max;        fprintf(stdout, "\b\b\b\b\b\b%5.1f%%", percent);        fflush(stdout);        return(percent);}void stop_progress_bar_percent (void) {        fprintf(stdout, "\b\b\b\b\b\bcompleted\n");        fflush(stdout);}/* ------------------------------------------- */void raybundle_version (void) {    char *meshver = libmeshversion();        fprintf(stderr, "raybundle: version %s", RAYBUNDLE_VERSION);    fprintf(stderr, "\nusing \t%s\n", meshver);    free(meshver);}voidparse_command_line(int argc, char **argv,                   char **mesh_file,                   char **ray_file,                   char **bundle_file,		   char **sco_file){    static char *mesh_file_opt = NULL;  /* there to build on IRIX with popt */    static char *ray_file_opt = NULL;    static char *bundle_file_opt = NULL;    static char *sco_file_opt = NULL;    poptContext cx;    int rc;    #include "raybundle_options.h"	    /* args parsing using popt */    cx = poptGetContext(RAYBUNDLE_PACKAGE, argc, 		       (const char **) argv, options, 0);    if (argc == 1) {        poptPrintUsage(cx, stdout, 0);        exit(1);    }    do {        rc = poptGetNextOpt(cx);        switch (rc) {        case OPT_HELP:		/* help */            poptPrintHelp(cx, stdout, 0);            exit(0);	case OPT_BUNDLE_FILE:	    if (!access(bundle_file_opt, F_OK)) {	        fprintf(stderr, "file '%s' already exists !\n", bundle_file_opt);		exit(1);	    }	    break;	case OPT_SCO_FILE:	    if (!access(sco_file_opt, F_OK)) {	        fprintf(stderr, "file '%s' already exists !\n", sco_file_opt);		exit(1);	    }	    break;	case OPT_VERSION:	    raybundle_version();	    exit(0);	case POPT_ERROR_BADOPT: /* error */            fprintf(stderr, "%s: %s\n", poptBadOption(cx, 0),                    poptStrerror(rc));            poptPrintUsage(cx, stdout, 0);            exit(1);        }    }    while (rc > 0);    /* bundle file */    *bundle_file = bundle_file_opt;    if (!*bundle_file) {        fprintf(stderr, "%s: missing -o option\n", RAYBUNDLE_PACKAGE);        exit(1);    }    /* sco file */    *sco_file = sco_file_opt;   /* check meshfile */    *mesh_file = mesh_file_opt;     if (!*mesh_file) {        fprintf(stderr, "%s: missing -m option\n", RAYBUNDLE_PACKAGE);        exit(1);    }    /* check inputdatafile option */    *ray_file = ray_file_opt;    if (!*ray_file) {        fprintf(stderr, "%s: missing -i option\n", RAYBUNDLE_PACKAGE);        exit(1);    }    poptFreeContext(cx);}void print_raydata (FILE *fd, struct raydata_t *rd) {	fprintf(fd, "%f %f %f %f %f %f %s\n",			rd->src.lat, rd->src.lon, rd->src.prof, 			rd->dest.lat, rd->dest.lon, rd->dest.prof, 			rd->phase);}/** \brief Allocation for the information bundle structure  **/struct bundle_info_t ****bundle_alloc(struct mesh_t *m) {	struct bundle_info_t ****bi;	int z, x, y;    	int nb_lat_cell, nb_lon_cell;	bi = (struct bundle_info_t ****) 		malloc(m->nlayers*sizeof(struct bundle_info_t ***));    	assert(bi);    	for (z = 0; z < m->nlayers; z++) {		nb_lat_cell = m->layer[z]->nlat;		nb_lon_cell = m->layer[z]->nlon;		bi[z] = (struct bundle_info_t ***) 			malloc(nb_lat_cell * sizeof(struct bundle_info_t **));		assert(bi[z]);		for (x = 0; x < nb_lat_cell; x++) { 			bi[z][x] = (struct bundle_info_t **) 				malloc(nb_lon_cell * sizeof(struct bundle_info_t *)); 			assert(bi[z][x]); 						for (y = 0; y < nb_lon_cell; y++) { 				bi[z][x][y] = NULL; 			} 		}	}	return (bi);}int bundle_compare (const void * a, const void * b){    const struct bundle_set_t *aa = (const struct bundle_set_t *) a;    const struct bundle_set_t *bb = (const struct bundle_set_t *) b;    int val;    if ((*aa).receiver_lcid  > (*bb).receiver_lcid) {       return 1;    } else if ( (*aa).receiver_lcid  == (*bb).receiver_lcid) {	   val = strcmp((*aa).bundle.phase,(*bb).bundle.phase);	   assert(val);	   return(val);    }    return -1;}int bundle_update (struct bundle_set_t *bs, struct raydata_t *rd, char *mean_phase) {	int nb = bs->nb_ray;		/* update source */	bs->bundle.source->lat = 		(nb*bs->bundle.source->lat + rd->src.lat)/(nb+1);	bs->bundle.source->lon = 		(nb*bs->bundle.source->lon + rd->src.lon)/(nb+1);	bs->bundle.source->prof = 		(nb*bs->bundle.source->prof + rd->src.prof)/(nb+1);		/* update receiver */	bs->bundle.receiver->lat = 		(nb*bs->bundle.receiver->lat + rd->dest.lat)/(nb+1);	bs->bundle.receiver->lon = 		(nb*bs->bundle.receiver->lon + rd->dest.lon)/(nb+1);	bs->bundle.receiver->prof = 		(nb*bs->bundle.receiver->prof + rd->dest.prof)/(nb+1);	/* update travel time */	bs->bundle.ray_travel_time = 		(nb*bs->bundle.ray_travel_time + rd->ray_travel_time)/(nb+1);	/* update to the mean phase */	free(bs->bundle.phase);	bs->bundle.phase = strdup (mean_phase);		bs->nb_ray++;	return(bs->nb_ray);}void bundle_set_show (struct bundle_info_t *bi) {	int i;		for (i=0; i<bi->nb_bundle; i++) {		fprintf(stderr, "    bundle[%d] : lincelid=%d ... nbrays=%d\n", 				i, bi->bundle_set[i].receiver_lcid, 				bi->bundle_set[i].nb_ray);	}}/** \brief Insert a ray into a bundle * * If the current ray is part of a pre-existing bundle,  * the corresponding bundle is updated accordingly. * If not a new bundle is created and initialized. * The bundle_set array is sorted by the linear destination cell id as first * key, and phase as second key. *  */void bundle_set_insert (struct bundle_info_t *bi, 			int lin_id_dest,			struct raydata_t *rd){		int i=0;	struct bundle_set_t *bs;	struct coord_geo_t source;	struct coord_geo_t receiver;	char *ray_mean;		if (bi->nb_bundle) {		/* find a previous existing bundle */		bs = bi->bundle_set;		for (i=0; i<bi->nb_bundle; i++) {			if (lin_id_dest < bs[i].receiver_lcid) {				break;			}			if ( lin_id_dest == bs[i].receiver_lcid  &&			     (ray_mean = raycode_compute_mean (rd->phase, 1, bs[i].bundle.phase, bs[i].nb_ray)) != NULL )			{				int nb;				/*fprintf(stderr, "ray_mean='%s'\n", ray_mean);*/				/* update this bundle */				nb = bundle_update( &(bs[i]), rd, ray_mean);				free(ray_mean);#ifdef DEBUG_RAYBUNDLE				fprintf(stderr, "  bundle_set_insert: found previous bundle, %d rays\n",						nb);				bundle_set_show(bi);#endif				return;			}		}	}#ifdef DEBUG_RAYBUNDLE	fprintf(stderr, "  bundle_set_insert: no previous bundle\n");#endif		/* add a new bundle at the end of bundle set */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
proumb性欧美在线观看| 欧美一区二区三区系列电影| 免费看欧美女人艹b| 免费一级欧美片在线观看| 毛片不卡一区二区| 丰满亚洲少妇av| 色老汉av一区二区三区| 在线播放欧美女士性生活| 欧美一区二区视频观看视频| 久久综合av免费| 国产精品免费久久| 一区二区三区四区不卡在线| 精品欧美黑人一区二区三区| 成人av网站免费观看| 亚洲国产精品精华液2区45| 欧美成人女星排行榜| 9191国产精品| 国产亚洲一区字幕| 亚洲一区视频在线| 国产一区二区免费视频| 99综合影院在线| 日韩欧美国产综合在线一区二区三区| 久久久影视传媒| 亚洲一区二区四区蜜桃| 国内一区二区在线| 欧美午夜一区二区三区免费大片| 精品久久久久久久人人人人传媒 | 亚洲欧美韩国综合色| 亚洲一区二区三区不卡国产欧美 | 国产成人午夜视频| 日韩欧美一二三| 国产精品综合久久| 在线中文字幕一区二区| 精品少妇一区二区三区视频免付费| 国产精品三级久久久久三级| 日韩精品91亚洲二区在线观看| 国产成人欧美日韩在线电影| 欧美日本韩国一区二区三区视频 | 久久97超碰国产精品超碰| 色吧成人激情小说| 国产精品蜜臀av| 91国偷自产一区二区开放时间| 色域天天综合网| 成人18精品视频| 在线一区二区三区| 国产精品福利av| 在线成人小视频| 91香蕉视频mp4| 国产精品福利在线播放| 久久66热偷产精品| 欧美视频在线观看一区二区| 中文字幕第一页久久| 久久精品国产秦先生| 欧美三级在线视频| 亚洲欧洲日韩综合一区二区| 成人免费黄色大片| 91成人在线观看喷潮| 久久综合九色综合欧美就去吻 | 中文字幕一区二区三区在线播放 | 成人综合在线视频| 国产精品1区2区3区在线观看| 日韩一区二区在线观看| 在线不卡中文字幕播放| 亚洲制服丝袜av| 国产自产v一区二区三区c| 欧美挠脚心视频网站| 亚洲午夜私人影院| 色婷婷久久久亚洲一区二区三区 | 免费成人av资源网| 欧美蜜桃一区二区三区| 亚洲专区一二三| 欧美精品aⅴ在线视频| 日韩视频不卡中文| 日本亚洲免费观看| 欧美福利电影网| 天天综合天天综合色| 欧美亚洲免费在线一区| 亚洲乱码国产乱码精品精小说 | 中日韩免费视频中文字幕| 国产在线不卡一区| 精品国产一区二区精华| 狠狠色丁香久久婷婷综合丁香| 日韩欧美一区电影| 老司机免费视频一区二区三区| 欧美日产国产精品| 亚洲国产精品久久艾草纯爱| 国产成人啪免费观看软件| 亚洲精品一线二线三线无人区| 韩日av一区二区| 久久精品在线免费观看| 成人午夜精品一区二区三区| 国产精品国模大尺度视频| 91麻豆国产在线观看| 亚洲乱码国产乱码精品精98午夜 | 亚洲午夜国产一区99re久久| 欧美色精品天天在线观看视频| 亚洲在线免费播放| 欧美日韩一级黄| 亚洲成在线观看| 日韩欧美高清一区| 国产精品18久久久久久久网站| 国产精品美女一区二区三区 | 亚洲精品第1页| 精品免费国产二区三区 | 欧美写真视频网站| 97久久精品人人做人人爽| 国产在线播精品第三| 免费美女久久99| 麻豆一区二区在线| 伊人色综合久久天天人手人婷| 成人免费观看男女羞羞视频| 蜜桃免费网站一区二区三区| 亚洲高清在线精品| 亚洲精品成人a在线观看| 国产精品天干天干在线综合| 精品裸体舞一区二区三区| 亚洲精品一区在线观看| 精品免费99久久| 亚洲欧美激情在线| 亚洲激情在线播放| 成人黄色电影在线| 91免费国产在线观看| 成人激情免费网站| 国产精品一级在线| 国产精品一二三四区| 日本高清无吗v一区| 日本一区二区电影| 国产宾馆实践打屁股91| 在线观看日韩国产| 国产乱码精品一区二区三区忘忧草 | 欧美中文字幕一区二区三区 | 26uuu亚洲综合色欧美| 91免费看`日韩一区二区| 卡一卡二国产精品| 中文字幕一区二区三区色视频| 色菇凉天天综合网| 国产一区二区在线看| 日韩毛片一二三区| 欧美电影免费观看高清完整版| 99国产精品视频免费观看| 日本不卡一区二区三区| 亚洲视频你懂的| 日韩手机在线导航| aaa欧美大片| 国产乱对白刺激视频不卡| 香蕉久久一区二区不卡无毒影院| 国产精品午夜免费| 欧美xfplay| 欧美久久久久中文字幕| 91日韩一区二区三区| 韩国午夜理伦三级不卡影院| 午夜精品视频在线观看| 国产精品久99| 国产亚洲精品bt天堂精选| 日韩欧美成人一区| 欧美日韩一区二区在线观看| 972aa.com艺术欧美| 国产精品1区2区| 久久精品国产77777蜜臀| 亚洲国产视频网站| 国产精品久久久久久久久免费樱桃 | 一本到不卡精品视频在线观看| 国产乱码精品1区2区3区| 免费亚洲电影在线| 亚洲国产精品久久久久秋霞影院 | 国产麻豆成人传媒免费观看| 亚洲午夜视频在线| 亚洲欧洲综合另类| 国产蜜臀av在线一区二区三区| 日韩美女在线视频| 3atv在线一区二区三区| 欧美人与z0zoxxxx视频| 欧美专区亚洲专区| 日本韩国一区二区三区| 99re在线精品| 91在线观看美女| caoporn国产精品| 粉嫩av一区二区三区粉嫩| 国产一二三精品| 国产精品资源站在线| 国产中文字幕一区| 韩国三级中文字幕hd久久精品| 久久国产精品99久久久久久老狼| 青娱乐精品视频在线| 久久精品国产精品青草| 亚洲男人的天堂在线观看| 亚洲欧洲色图综合| 亚洲欧美日韩综合aⅴ视频| 国产欧美一区二区在线观看| 久久一日本道色综合| 91精品一区二区三区久久久久久 | 美女被吸乳得到大胸91| 日本网站在线观看一区二区三区| 石原莉奈在线亚洲三区| 国产成人综合在线观看| 国产一区二区网址| 国产91高潮流白浆在线麻豆 | 国产成人免费在线观看不卡| 成人在线综合网| 成人国产亚洲欧美成人综合网|