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

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

?? tincore.h

?? 并行TIN生成算法, 基于DeWall算法理論實(shí)現(xiàn)
?? H
字號:
/* -*- C++ -*- */

//=============================================================================
/**
 *  @文件    TinCore.h
 *
 *  TinCore.h, 版本 0.10 2007/09/27
 *
 *  @作者 鄧雪清 <xueqingdeng@sohu.com>
 *  基于Incremental Construction算法的單線程實(shí)現(xiàn)
 */
//=============================================================================

#ifndef _TIN_CORE_H_
#define _TIN_CORE_H_

#include <windows.h>
#include "..\Tss_Inc\Point2D.h"
#include "..\Tss_Inc\Point3D.h"
#include "..\Tss_Inc\TssTset.h"
#include "..\Tss_API\TssHash.h"
#include "..\Tss_API\TssList.h"
typedef	struct _timeb	TSS_TIMEB;

// 網(wǎng)格索引結(jié)構(gòu)
typedef struct tagIDX_CELL {
	TSS_SNT32	 num;	// 容量
	TSS_SNT32	 cnt;	// 計(jì)數(shù)
	TSS_SNT32	*pid;	// 數(shù)組
	TSS_SNT32	 sum;	// 總數(shù)
} IDX_CELL;

// 統(tǒng)一網(wǎng)格結(jié)構(gòu)
typedef struct tagIDX_GRID {
	TSS_FLT64	 bnd[4];	// 坐標(biāo)邊界
	TSS_FLT64	 spn[2];	// 網(wǎng)格間距
	TSS_SNT32	 num[2];	// 矩陣大小
	TSS_FLT32	 dup;		// 坐標(biāo)精度
	IDX_CELL	*idx;		// 單元數(shù)組
} IDX_GRID;

// 邊(面)結(jié)構(gòu)
typedef struct tagTIN_FACE {
	TSS_SNT32	 sid[2];	// 起點(diǎn)(0:pid, 1:cid)
	TSS_SNT32	 eid[2];	// 末點(diǎn)(0:pid, 1:cid)
	TSS_SNT32	 pid;		// 對面點(diǎn)
	TSS_SNT32	 tid;		// 鄰接三角形
} TIN_FACE;

// 三角形結(jié)構(gòu)
typedef struct tagTIN_TGON {
	TSS_SNT32	 pid[3];
	TSS_SNT32	 tid[3];
} TIN_TGON;

long GridToTin2D(POINT2D *ppts, TSS_SNT32 *pnum, TSS_SNT32 *stop,
			   TSS_SNT32 *vnum, TSS_SNT32 **vidx, TSS_TIMEB *betm, TSS_TIMEB *entm);
long DelaunayTriangulation2D(POINT3D *ppts, TSS_SNT32 *pnum, TSS_FLT32 ddup, TSS_SNT32 *stop,
							 TSS_SNT32 *vnum, TSS_SNT32 **vidx, TSS_TIMEB *betm, TSS_TIMEB *entm);

// 哈希函數(shù)
TSS_SNT32 FACE_EQLH(void const *f1, void const *f2);
TSS_UNT32 FACE_HASH(void const *f1);

// 計(jì)算網(wǎng)格矩陣大小
void CalcGridSize(IDX_GRID *uidx, TSS_SNT32 num, TSS_SNT32 avg);
// 計(jì)算點(diǎn)所處單元-數(shù)組偏移
long CalcGridCell(IDX_GRID *uidx, TSS_FLT64 *pnt);
// 計(jì)算點(diǎn)所處單元-坐標(biāo)位置
void CalcGridCell(IDX_GRID *uidx, TSS_FLT64 *pnt, TSS_SNT32 *pos);
// 增加點(diǎn)到單元
void AddPid(IDX_CELL *cell, TSS_SNT32 pid);
// 從單元?jiǎng)h除點(diǎn)
void DelPid(IDX_CELL *cell, TSS_SNT32 pos);
void DelPidEx(IDX_CELL *cell, TSS_SNT32 pid);

// 判斷單元中是否有重合點(diǎn)
long IsHaveDup(IDX_CELL *cell, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT32 dup,
			   TSS_FLT64 *pt, TSS_SNT32 s);

// 消除重合點(diǎn)
void RemoveDupA(IDX_GRID *uidx, TSS_SNT32 *pnum, TSS_SNT32 ddim, TSS_FLT64 *ppts,
				TSS_SNT32 *ppid, TSS_SNT32 *stop);
// 按列處理重合點(diǎn)
void RemoveDupC(IDX_GRID *uidx, TSS_SNT32 *pnum, TSS_SNT32 ddim, TSS_FLT64 *ppts,
				TSS_SNT32 *ppid, TSS_SNT32 c, TSS_SNT32 r1, TSS_SNT32 r2);
// 按行處理重合點(diǎn)
void RemoveDupR(IDX_GRID *uidx, TSS_SNT32 *pnum, TSS_SNT32 ddim, TSS_FLT64 *ppts,
				TSS_SNT32 *ppid, TSS_SNT32 r, TSS_SNT32 c1, TSS_SNT32 c2);
// 處理邊界重合點(diǎn)
void RemoveDupS(IDX_GRID *uidx, TSS_SNT32 *pnum, TSS_SNT32 ddim, TSS_FLT64 *ppts,
				TSS_SNT32 *ppid);
// 按矩陣處理重合點(diǎn)
void RemoveDupM(IDX_GRID *uidx, TSS_SNT32 *pnum, TSS_SNT32 ddim, TSS_FLT64 *ppts,
				TSS_SNT32 *ppid, TSS_SNT32 *stop, TSS_SNT32 c1, TSS_SNT32 c2,
				TSS_SNT32 r1, TSS_SNT32 r2);
// 設(shè)置邊參數(shù)
void SetFace(TIN_FACE *face, TSS_SNT32 sid, TSS_SNT32 eid, TSS_SNT32 pid,
			 TSS_SNT32 tid, TSS_SNT32 sic, TSS_SNT32 eic);
// 釋放CELL索引
void FreeCell(IDX_CELL *cidx, TSS_SNT32 num);

// 構(gòu)建初始三角形
long MakeFirstSimplex(IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_SNT32 *stop,
					  TSS_FLT64 dm2, TSS_SNT32 *pid, TSS_SNT32 *cid);
// 構(gòu)建三角形網(wǎng)絡(luò)
long MakeSimplex(IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_SNT32 *ppid,
				 TSS_SNT32 *pnum, TSS_SNT32 *vnum, TSS_SNT32 *stop, TSS_SNT32 *pid,
				 TSS_SNT32 *cid, CTssList *ATL);

// 單元搜索最近點(diǎn)
// 同單元搜索
void SearchCellNPS(IDX_CELL *cell, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pnt,
				   TSS_SNT32 cin, TSS_SNT32 &pid, TSS_SNT32 &cid, TSS_FLT64 &dnp);
// 異單元搜索
void SearchCellNPD(IDX_CELL *cell, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pnt,
				   TSS_SNT32 cin, TSS_SNT32 &pid, TSS_SNT32 &cid, TSS_FLT64 &dnp);
// 批量異單元搜索
void SearchCellNPD(IDX_CELL *cidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pnt,
				   TSS_SNT32 &pid, TSS_SNT32 &cid, TSS_FLT64 &dnp, TSS_SNT32 col,
				   TSS_SNT32 *c, TSS_SNT32 *r);

// 計(jì)算搜索邊界
void CalcSearchBound(TSS_FLT64 *bnd, TSS_FLT64 *spn, TSS_SNT32 col, TSS_SNT32 row,
					 TSS_FLT64 *pnt, TSS_FLT64 rad, TSS_SNT32 &c1, TSS_SNT32 &c2,
					 TSS_SNT32 &r1, TSS_SNT32 &r2);

// 搜索第3點(diǎn):空圓法則
long SearchCellEMR(IDX_GRID *uidx, IDX_CELL *cell, TSS_FLT64 *ppts, TSS_SNT32 ddim,
				   TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_SNT32 cin, TSS_SNT32 &pid,
				   TSS_SNT32 &cid, TSS_FLT64 *cen);
// 檢查圓內(nèi)是否存在點(diǎn)
void SearchCellEMR(IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pt1,
				   TSS_FLT64 *pt2, TSS_FLT64 *pt3, TSS_FLT64 rad, TSS_SNT32 &pid,
				   TSS_SNT32 &cid, TSS_FLT64 *cen);
// 批量異單元搜索
long SearchCellEMR(IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pt1,
				   TSS_FLT64 *pt2, TSS_SNT32 &pid, TSS_SNT32 &cid, TSS_FLT64 *cen,
				   TSS_SNT32 col, TSS_SNT32 *c, TSS_SNT32 *r);

// 插入邊
long InsertFace(CTssHash *AFH, CTssHash *BFH, TSS_SNT32 *ppid, TIN_FACE *face);

// 搜索第3點(diǎn):空圓法則
long SearchCell(CTssHash *BFH, IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_SNT32 *stop,
				TSS_SNT32 *pid,	TSS_SNT32 &cid);
// 方向約束搜索
long SearchCellEMR(CTssHash *BFH, IDX_GRID *uidx, IDX_CELL *cell, TSS_FLT64 *ppts, TSS_SNT32 ddim,
				   TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *opt, TSS_SNT32 orn, TSS_SNT32 cin,
				   TSS_SNT32 *pid, TSS_SNT32 &cid, TSS_FLT64 *cen);
// 批量單元方向約束搜索
long SearchCellEMR(CTssHash *BFH, IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pt1,
				   TSS_FLT64 *pt2, TSS_FLT64 *opt, TSS_SNT32 orn, TSS_SNT32 *pid, TSS_SNT32 &cid,
				   TSS_FLT64 *cen, TSS_SNT32 col, TSS_SNT32 *c, TSS_SNT32 *r);

// 判斷是否共線
long IsLine(TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *pt3);
// 計(jì)算同側(cè)符號
long IsSide(TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *pt3);

#endif // _TIN_CORE_H_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频一区二区三区| 亚洲综合色在线| 一本一道久久a久久精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲视频一二三| 久久久久久99久久久精品网站| 日韩一区二区电影网| 欧美一二三在线| 亚洲美女屁股眼交3| 亚洲男人都懂的| 国产精一区二区三区| 国产99久久久精品| 成人福利视频网站| 97久久人人超碰| 一本一道久久a久久精品| 久久免费电影网| 奇米精品一区二区三区在线观看| 欧美aaaaa成人免费观看视频| 91一区二区在线| 欧美精品第一页| 精品女同一区二区| 国产精品另类一区| 欧美激情一区二区在线| 亚洲精品视频一区| 久久精品国产久精国产| 国产91精品欧美| 久久色视频免费观看| 亚洲三级免费观看| 成人黄页毛片网站| 日本一二三四高清不卡| 国产福利视频一区二区三区| 91精品福利在线| 精品国产凹凸成av人网站| 综合在线观看色| av高清久久久| 日韩午夜av一区| 另类综合日韩欧美亚洲| 日韩三级.com| 久草热8精品视频在线观看| www.欧美.com| 亚洲三级理论片| 欧美三级电影在线观看| 国产午夜亚洲精品不卡 | 欧美视频在线观看一区二区| 日韩免费一区二区三区在线播放| 亚洲欧洲日产国产综合网| 视频一区欧美精品| 丁香激情综合五月| 日韩欧美国产综合在线一区二区三区| 日韩精品欧美精品| 337p粉嫩大胆色噜噜噜噜亚洲| 狠狠v欧美v日韩v亚洲ⅴ| 一本色道久久综合亚洲精品按摩| 亚洲免费av观看| 欧美日韩国产高清一区| 亚洲欧洲精品成人久久奇米网| 成人av动漫网站| 亚洲综合在线免费观看| 国产91精品一区二区| 亚洲精品日韩综合观看成人91| 欧美亚洲动漫精品| 久久99国产乱子伦精品免费| 国产精品激情偷乱一区二区∴| 在线观看欧美黄色| 亚洲天天做日日做天天谢日日欢| 91福利在线观看| 久久精品免费看| 最新国产精品久久精品| 欧美吻胸吃奶大尺度电影| 美女视频一区二区| 最新不卡av在线| 日韩精品中文字幕在线一区| 99国产欧美另类久久久精品| 青青国产91久久久久久| 国产精品久久久久久久久免费樱桃| 欧美日韩第一区日日骚| 成人久久视频在线观看| 日本不卡视频在线观看| 1000部国产精品成人观看| 日韩一区和二区| 一本到不卡精品视频在线观看| 91黄色免费版| 91成人国产精品| 日韩一级欧美一级| 成人h动漫精品| 欧美96一区二区免费视频| 中文字幕一区在线观看| 日韩亚洲欧美一区| 欧美在线视频你懂得| 国产一区二区三区电影在线观看| 欧美视频第二页| 成人高清在线视频| 国产在线视视频有精品| 亚洲不卡av一区二区三区| 欧美日韩国产一级片| 成人sese在线| 国产乱淫av一区二区三区| 日韩中文字幕一区二区三区| 亚洲日本丝袜连裤袜办公室| 国产网红主播福利一区二区| 欧美一区二区三区在线观看视频| 九九热在线视频观看这里只有精品| 一区二区三区四区不卡在线| 在线欧美小视频| 欧美日韩精品一区二区三区| 9色porny自拍视频一区二区| 国产一区二区女| 经典三级在线一区| 极品少妇一区二区三区精品视频 | 日韩国产一二三区| 日韩免费电影网站| 欧美性三三影院| 欧美中文字幕一区二区三区亚洲 | 综合在线观看色| 国产精品大尺度| 中文字幕一区二区三区蜜月| 中文乱码免费一区二区| 欧美国产欧美综合| 欧美国产成人精品| 欧美激情在线一区二区| 国产精品卡一卡二卡三| 中文一区一区三区高中清不卡| 欧美激情在线一区二区| 中文字幕中文字幕在线一区 | 日韩免费高清电影| 精品国产乱码久久久久久闺蜜| 日韩精品一区二区三区在线播放| 欧美mv和日韩mv国产网站| 精品免费视频.| 国产欧美综合在线| 欧美精品乱人伦久久久久久| 欧美一区永久视频免费观看| 日韩一区二区三区在线视频| 精品国产乱码久久久久久蜜臀 | 久久69国产一区二区蜜臀 | 色婷婷综合中文久久一本| 99精品视频在线观看| eeuss鲁片一区二区三区在线观看| 精品乱人伦小说| 一区二区三区在线不卡| 国产一区欧美一区| 99国产一区二区三精品乱码| 色8久久精品久久久久久蜜| 欧日韩精品视频| 日韩欧美在线一区二区三区| 国产日产欧产精品推荐色 | 午夜精品123| 精品少妇一区二区三区视频免付费 | 欧美日韩专区在线| 日韩欧美一区二区三区在线| 一区二区三区中文免费| 欧美日韩中文国产| 色哦色哦哦色天天综合| 日韩精品一区二区三区蜜臀| 一区二区三区在线免费播放| 亚洲成a人v欧美综合天堂| 精彩视频一区二区| 91久久国产综合久久| 精品国产一区二区在线观看| 亚洲人被黑人高潮完整版| 奇米影视一区二区三区小说| www.在线欧美| 在线播放91灌醉迷j高跟美女| 国产精品一区二区在线看| av成人动漫在线观看| 欧美老女人第四色| 中文字幕中文字幕一区二区| 蜜桃在线一区二区三区| 色综合天天综合| 色嗨嗨av一区二区三区| 欧美sm极限捆绑bd| 艳妇臀荡乳欲伦亚洲一区| 国产成人午夜精品5599| 欧美日韩卡一卡二| 中文字幕制服丝袜成人av| 久久99精品久久久久久动态图| 一本大道综合伊人精品热热| 久久综合九色综合欧美就去吻| 亚洲成人免费影院| 成人av网址在线| 久久免费偷拍视频| 免费人成精品欧美精品| 色94色欧美sute亚洲线路一ni| 久久精品夜色噜噜亚洲a∨| 免费人成网站在线观看欧美高清| 色婷婷狠狠综合| 国产精品二三区| 丁香亚洲综合激情啪啪综合| 精品国产麻豆免费人成网站| 婷婷久久综合九色国产成人 | 亚洲一区二区高清| 99视频在线精品| 中文字幕中文字幕一区二区| 成人高清免费观看| 日本一区二区三区四区 | 99视频在线观看一区三区| 欧美国产日韩a欧美在线观看| 国产精品一二二区| 久久综合九色欧美综合狠狠 | 日本欧美一区二区|