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

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

?? tincore1.h

?? 并行TIN生成算法, 基于DeWall算法理論實(shí)現(xiàn)
?? H
字號(hào):
/* -*- 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;		// 對(duì)面點(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 *tnum, TSS_SNT32 **tset, 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 *tnum, 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):空?qǐng)A法則
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 PutHash(CTssHash *AFH, CTssHash *BFH, IDX_CELL *cidx, TSS_SNT32 *ppid, TIN_FACE *face);

// 搜索第3點(diǎn):空?qǐng)A法則
long SearchCell(CTssHash *BFH, IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_SNT32 *stop,
				TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *opt, 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 SearchCellDON(CTssHash *BFH, IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_SNT32 *pid,
				   TSS_FLT64 *cen, TSS_FLT64 rad);
// 批量單元方向約束搜索
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);
// 方向約束搜索
void SearchCellEMR(IDX_GRID *uidx, TSS_FLT64 *ppts, TSS_SNT32 ddim, TSS_FLT64 *pt1,
				   TSS_FLT64 *pt2, TSS_FLT64 *pt3, TSS_SNT32 orn, TSS_FLT64 rad,
				   TSS_SNT32 *pid, TSS_SNT32 &cid, TSS_FLT64 *cen);

// 歐拉距離平方
double EuLen2D(TSS_FLT64 *pt1, TSS_FLT64 *pt2);
// 計(jì)算外接圓
void CalcCircum(TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *pt3, TSS_FLT64 *cen);
// 判斷是否共線
long IsLine(TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *pt3);
// 計(jì)算同側(cè)符號(hào)
long IsSide(TSS_FLT64 *pt1, TSS_FLT64 *pt2, TSS_FLT64 *pt3);

#endif // _TIN_CORE_H_

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看免费| 亚洲男同性恋视频| 91色九色蝌蚪| 精品一区二区三区蜜桃| 亚洲精品国产a久久久久久| 精品乱码亚洲一区二区不卡| 99re热视频精品| 国产一区二区三区免费播放| 亚洲一区视频在线| 国产精品久久毛片| 日韩女优电影在线观看| 欧美在线看片a免费观看| 国产99一区视频免费| 视频一区免费在线观看| 亚洲视频在线一区| 中文字幕+乱码+中文字幕一区| 欧美日韩午夜精品| 91亚洲精品一区二区乱码| 精品亚洲porn| 精品视频色一区| 波多野结衣亚洲| 久久精品国产精品亚洲精品| 亚洲自拍另类综合| 亚洲人成网站影音先锋播放| 国产视频一区二区在线观看| 欧美一二三四在线| 在线播放视频一区| 欧美日韩一区国产| 欧美伊人久久久久久久久影院| av电影在线观看一区| 国产99久久久精品| 成人黄色777网| 国产传媒日韩欧美成人| 久久超碰97中文字幕| 老司机精品视频一区二区三区| 婷婷久久综合九色综合伊人色| 亚洲一区免费在线观看| 一区二区国产视频| 亚洲国产精品天堂| 亚洲第一久久影院| 日日摸夜夜添夜夜添精品视频| 一区二区三区美女视频| 亚洲午夜视频在线观看| 亚洲bt欧美bt精品777| 日韩中文字幕麻豆| 日韩电影网1区2区| 捆绑紧缚一区二区三区视频| 狠狠色丁香久久婷婷综合_中| 精品无人码麻豆乱码1区2区| 国产麻豆视频精品| 不卡一区在线观看| 色综合久久66| 欧美精品色一区二区三区| 欧美一级片在线观看| 欧美大片拔萝卜| 亚洲国产精品成人久久综合一区| 国产欧美视频在线观看| 亚洲色图欧美偷拍| 亚洲3atv精品一区二区三区| 美腿丝袜亚洲色图| 懂色av一区二区三区免费看| 91免费观看视频在线| 欧美日本在线播放| 精品国产91亚洲一区二区三区婷婷| 国产日韩视频一区二区三区| 中文字幕一区二区三区乱码在线| 一区二区三区免费看视频| 日本在线观看不卡视频| 国产成人午夜电影网| 色av成人天堂桃色av| 日韩午夜在线观看视频| 国产精品每日更新在线播放网址| 亚洲综合图片区| 精品亚洲国内自在自线福利| 成人av动漫在线| 欧美伦理视频网站| 午夜精品久久久久久| 黑人精品欧美一区二区蜜桃| 99久久99久久久精品齐齐| 欧美精品久久一区| 国产日韩av一区| 午夜av区久久| 成人精品一区二区三区中文字幕| 欧美三区在线观看| 欧美高清一级片在线观看| 亚洲成年人影院| caoporm超碰国产精品| 欧美日本在线看| 成人免费在线视频观看| 奇米影视7777精品一区二区| 成年人午夜久久久| 成人一区二区视频| 色吊一区二区三区| 久久久国际精品| 亚洲国产日产av| www.欧美日韩| 欧美成人免费网站| 亚洲大片免费看| 成人ar影院免费观看视频| 91精品国产麻豆国产自产在线| 亚洲视频在线一区观看| 国产自产视频一区二区三区| 欧美性高清videossexo| 国产精品久久午夜| 国产综合色精品一区二区三区| 欧美性做爰猛烈叫床潮| 国产精品欧美精品| 国产一区二区三区在线观看免费视频| 欧美午夜片在线看| 亚洲欧美日韩国产综合| 国产成人99久久亚洲综合精品| 日韩视频一区二区在线观看| 亚洲香蕉伊在人在线观| 99视频国产精品| 中文字幕成人av| 国模大尺度一区二区三区| 6080日韩午夜伦伦午夜伦| 亚洲精品一二三四区| 99视频一区二区| 国产精品毛片久久久久久久| 国产精品一级二级三级| 精品免费国产一区二区三区四区| 偷拍自拍另类欧美| 欧美午夜电影一区| 伊人色综合久久天天人手人婷| 成人国产电影网| 亚洲国产精品精华液2区45| 国产一区二区精品久久99| 欧美电视剧免费观看| 久久国内精品视频| 欧美成人精品1314www| 免费观看久久久4p| 91精品国产欧美日韩| 日韩不卡一区二区三区| 欧美一级淫片007| 美女高潮久久久| 欧美成人官网二区| 国产综合色在线| 国产精品私人影院| av福利精品导航| 国产寡妇亲子伦一区二区| 激情综合网av| 精品va天堂亚洲国产| 久久99深爱久久99精品| www国产成人免费观看视频 深夜成人网| 青青草97国产精品免费观看 | 日本最新不卡在线| 91麻豆精品国产| 久久草av在线| 国产亚洲欧美日韩在线一区| 成人久久视频在线观看| 亚洲日本免费电影| 欧美日精品一区视频| 日韩精品每日更新| 久久综合色之久久综合| 国产不卡视频在线观看| 亚洲女同一区二区| 91精品国产综合久久福利软件| 捆绑调教美女网站视频一区| 国产日产欧产精品推荐色| 972aa.com艺术欧美| 亚洲成人免费视| www精品美女久久久tv| 成人一级视频在线观看| 亚洲曰韩产成在线| 精品少妇一区二区三区视频免付费 | 国产精品美女一区二区在线观看| 成人18精品视频| 国产一区二区三区四区在线观看| 精品粉嫩超白一线天av| 国产成人av电影| 一区二区三区在线看| 欧美一级片免费看| 丁香一区二区三区| 亚洲国产精品一区二区久久| 日韩午夜三级在线| av电影在线观看完整版一区二区| 亚洲 欧美综合在线网络| 久久日韩精品一区二区五区| jizz一区二区| 免费人成在线不卡| 国产精品成人午夜| 欧美一区二区三区精品| 成人av资源站| 美女视频一区二区| 亚洲男人的天堂在线aⅴ视频| 555夜色666亚洲国产免| 成人久久18免费网站麻豆 | 91原创在线视频| 蜜臀久久99精品久久久久宅男| 国产精品免费aⅴ片在线观看| 在线播放中文一区| 99精品一区二区| 国产一区高清在线| 亚洲成人黄色影院| 亚洲欧洲三级电影| 精品国产乱码久久久久久牛牛| 欧美中文字幕一区二区三区亚洲| 韩国女主播成人在线观看| 久久国产福利国产秒拍|