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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? opc_spheretrioverlap.h

?? opcode是功能強大
?? H
字號:

// This is collision detection. If you do another distance test for collision *response*,
// if might be useful to simply *skip* the test below completely, and report a collision.
// - if sphere-triangle overlap, result is ok
// - if they don't, we'll discard them during collision response with a similar test anyway
// Overall this approach should run faster.

// Original code by David Eberly in Magic.
BOOL SphereCollider::SphereTriOverlap(const IceMaths::Point& vert0_, const IceMaths::Point& vert1_, const IceMaths::Point& vert2_)
{
	// Stats
	mNbVolumePrimTests++;

	// applies the model's local scale
	IceMaths::Point vert0 = vert0_*mLocalScale;
	IceMaths::Point vert1 = vert1_*mLocalScale;
	IceMaths::Point vert2 = vert2_*mLocalScale;

	// Early exit if one of the vertices is inside the sphere
	IceMaths::Point kDiff = vert2 - mCenter;
	float fC = kDiff.SquareMagnitude();
	if(fC <= mRadius2)	return TRUE;

	kDiff = vert1 - mCenter;
	fC = kDiff.SquareMagnitude();
	if(fC <= mRadius2)	return TRUE;

	kDiff = vert0 - mCenter;
	fC = kDiff.SquareMagnitude();
	if(fC <= mRadius2)	return TRUE;

	// Else do the full distance test
	IceMaths::Point TriEdge0	= vert1 - vert0;
	IceMaths::Point TriEdge1	= vert2 - vert0;

//Point kDiff	= vert0 - mCenter;
	float fA00	= TriEdge0.SquareMagnitude();
	float fA01	= TriEdge0 | TriEdge1;
	float fA11	= TriEdge1.SquareMagnitude();
	float fB0	= kDiff | TriEdge0;
	float fB1	= kDiff | TriEdge1;
//float fC	= kDiff.SquareMagnitude();
	float fDet	= fabsf(fA00*fA11 - fA01*fA01);
	float u		= fA01*fB1-fA11*fB0;
	float v		= fA01*fB0-fA00*fB1;
	float SqrDist;

	if(u + v <= fDet)
	{
		if(u < 0.0f)
		{
			if(v < 0.0f)  // region 4
			{
				if(fB0 < 0.0f)
				{
//					v = 0.0f;
					if(-fB0>=fA00)			{ /*u = 1.0f;*/		SqrDist = fA00+2.0f*fB0+fC;	}
					else					{ u = -fB0/fA00;	SqrDist = fB0*u+fC;			}
				}
				else
				{
//					u = 0.0f;
					if(fB1>=0.0f)			{ /*v = 0.0f;*/		SqrDist = fC;				}
					else if(-fB1>=fA11)		{ /*v = 1.0f;*/		SqrDist = fA11+2.0f*fB1+fC;	}
					else					{ v = -fB1/fA11;	SqrDist = fB1*v+fC;			}
				}
			}
			else  // region 3
			{
//				u = 0.0f;
				if(fB1>=0.0f)				{ /*v = 0.0f;*/		SqrDist = fC;				}
				else if(-fB1>=fA11)			{ /*v = 1.0f;*/		SqrDist = fA11+2.0f*fB1+fC;	}
				else						{ v = -fB1/fA11;	SqrDist = fB1*v+fC;			}
			}
		}
		else if(v < 0.0f)  // region 5
		{
//			v = 0.0f;
			if(fB0>=0.0f)					{ /*u = 0.0f;*/		SqrDist = fC;				}
			else if(-fB0>=fA00)				{ /*u = 1.0f;*/		SqrDist = fA00+2.0f*fB0+fC;	}
			else							{ u = -fB0/fA00;	SqrDist = fB0*u+fC;			}
		}
		else  // region 0
		{
			// minimum at interior point
			if(fDet==0.0f)
			{
//				u = 0.0f;
//				v = 0.0f;
				SqrDist = MAX_FLOAT;
			}
			else
			{
				float fInvDet = 1.0f/fDet;
				u *= fInvDet;
				v *= fInvDet;
				SqrDist = u*(fA00*u+fA01*v+2.0f*fB0) + v*(fA01*u+fA11*v+2.0f*fB1)+fC;
			}
		}
	}
	else
	{
		float fTmp0, fTmp1, fNumer, fDenom;

		if(u < 0.0f)  // region 2
		{
			fTmp0 = fA01 + fB0;
			fTmp1 = fA11 + fB1;
			if(fTmp1 > fTmp0)
			{
				fNumer = fTmp1 - fTmp0;
				fDenom = fA00-2.0f*fA01+fA11;
				if(fNumer >= fDenom)
				{
//					u = 1.0f;
//					v = 0.0f;
					SqrDist = fA00+2.0f*fB0+fC;
				}
				else
				{
					u = fNumer/fDenom;
					v = 1.0f - u;
					SqrDist = u*(fA00*u+fA01*v+2.0f*fB0) + v*(fA01*u+fA11*v+2.0f*fB1)+fC;
				}
			}
			else
			{
//				u = 0.0f;
				if(fTmp1 <= 0.0f)		{ /*v = 1.0f;*/		SqrDist = fA11+2.0f*fB1+fC;	}
				else if(fB1 >= 0.0f)	{ /*v = 0.0f;*/		SqrDist = fC;				}
				else					{ v = -fB1/fA11;	SqrDist = fB1*v+fC;			}
			}
		}
		else if(v < 0.0f)  // region 6
		{
			fTmp0 = fA01 + fB1;
			fTmp1 = fA00 + fB0;
			if(fTmp1 > fTmp0)
			{
				fNumer = fTmp1 - fTmp0;
				fDenom = fA00-2.0f*fA01+fA11;
				if(fNumer >= fDenom)
				{
//					v = 1.0f;
//					u = 0.0f;
					SqrDist = fA11+2.0f*fB1+fC;
				}
				else
				{
					v = fNumer/fDenom;
					u = 1.0f - v;
					SqrDist = u*(fA00*u+fA01*v+2.0f*fB0) + v*(fA01*u+fA11*v+2.0f*fB1)+fC;
				}
			}
			else
			{
//				v = 0.0f;
				if(fTmp1 <= 0.0f)		{ /*u = 1.0f;*/		SqrDist = fA00+2.0f*fB0+fC;	}
				else if(fB0 >= 0.0f)	{ /*u = 0.0f;*/		SqrDist = fC;				}
				else					{ u = -fB0/fA00;	SqrDist = fB0*u+fC;			}
			}
		}
		else  // region 1
		{
			fNumer = fA11 + fB1 - fA01 - fB0;
			if(fNumer <= 0.0f)
			{
//				u = 0.0f;
//				v = 1.0f;
				SqrDist = fA11+2.0f*fB1+fC;
			}
			else
			{
				fDenom = fA00-2.0f*fA01+fA11;
				if(fNumer >= fDenom)
				{
//					u = 1.0f;
//					v = 0.0f;
					SqrDist = fA00+2.0f*fB0+fC;
				}
				else
				{
					u = fNumer/fDenom;
					v = 1.0f - u;
					SqrDist = u*(fA00*u+fA01*v+2.0f*fB0) + v*(fA01*u+fA11*v+2.0f*fB1)+fC;
				}
			}
		}
	}

	return fabsf(SqrDist) < mRadius2;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产精品网麻豆系列| 91丨九色丨黑人外教| 欧美一区二区美女| 免费高清视频精品| 精品久久人人做人人爽| 国产成人免费在线视频| 亚洲图片另类小说| 欧洲一区二区三区免费视频| 亚洲国产精品尤物yw在线观看| 欧美男人的天堂一二区| 日精品一区二区三区| 精品美女一区二区| 99久久久国产精品| 午夜国产精品一区| 国产亚洲一区二区在线观看| 99re这里只有精品首页| 午夜电影久久久| 精品国产一区二区三区久久久蜜月| 国产大陆精品国产| 亚洲综合丝袜美腿| 精品av久久707| 91免费视频观看| 美女一区二区在线观看| 国产精品不卡在线| 7777精品伊人久久久大香线蕉的 | 日本免费在线视频不卡一不卡二| 日韩精品自拍偷拍| 9i在线看片成人免费| 丝袜诱惑制服诱惑色一区在线观看 | 日韩久久久久久| 色婷婷综合久久| 捆绑调教一区二区三区| 国产精品久久久久影院色老大 | 亚洲一区免费视频| 亚洲精品在线三区| 欧美网站大全在线观看| 国产精品综合二区| 五月婷婷激情综合网| 中文子幕无线码一区tr| 正在播放亚洲一区| 欧美精品1区2区3区| 国产精品亚洲成人| 男人的天堂亚洲一区| 亚洲欧美一区二区三区久本道91| 欧美精品一区二区三区在线| 欧美在线不卡一区| av在线免费不卡| 国产福利精品导航| 美女性感视频久久| 亚洲3atv精品一区二区三区| 国产精品麻豆一区二区| 久久午夜老司机| 91精品国产91综合久久蜜臀| 91日韩在线专区| 成人在线视频一区二区| 精品一区二区三区免费视频| 偷窥少妇高潮呻吟av久久免费| 亚洲视频免费看| 欧美国产日韩a欧美在线观看| 日韩你懂的在线播放| 在线不卡欧美精品一区二区三区| 91色.com| 91在线观看下载| 不卡一区二区三区四区| 国产成a人无v码亚洲福利| 国产自产高清不卡| 精品中文字幕一区二区小辣椒| 婷婷六月综合亚洲| 天堂资源在线中文精品| 午夜一区二区三区在线观看| 亚洲综合一区二区精品导航| 亚洲精品va在线观看| 亚洲视频一二区| 亚洲免费av观看| 一区二区三区色| 亚洲综合小说图片| 亚洲va在线va天堂| 丝袜国产日韩另类美女| 日韩经典一区二区| 麻豆91免费观看| 狠狠色狠狠色综合日日91app| 国产一区二区在线观看免费| 国产一区二区在线视频| 国产成人精品网址| 成人91在线观看| 色中色一区二区| 精品婷婷伊人一区三区三| 欧美肥胖老妇做爰| 欧美xfplay| 欧美激情中文字幕| 亚洲精品国产第一综合99久久| 亚洲一级二级在线| 男女男精品视频网| 国产精品91xxx| 99久久国产综合精品女不卡| 91福利视频网站| 日韩视频永久免费| 国产亲近乱来精品视频| 玉足女爽爽91| 久久国产欧美日韩精品| 国产高清在线精品| 色婷婷久久一区二区三区麻豆| 91麻豆精品91久久久久同性| 26uuu欧美日本| 亚洲色图欧美偷拍| 欧美a级理论片| 不卡视频一二三| 91精品国产乱码久久蜜臀| 久久久久9999亚洲精品| 一区二区理论电影在线观看| 免费一级欧美片在线观看| 国产91对白在线观看九色| 欧美在线观看视频一区二区三区| 欧美大白屁股肥臀xxxxxx| 国产精品污网站| 日韩av一级电影| 国产成人aaa| 91精品国产一区二区三区| 国产精品青草久久| 日本中文字幕一区| 成人黄色777网| 欧美一区二区三区视频在线观看 | 精品理论电影在线观看| 国产精品传媒视频| 美女一区二区久久| 色狠狠色噜噜噜综合网| 久久久九九九九| 欧美aaa在线| 欧美亚洲一区二区三区四区| 国产日韩欧美a| 蜜臀av一区二区在线免费观看 | 国产ts人妖一区二区| 欧美三级蜜桃2在线观看| 国产精品女上位| 精品在线播放午夜| 欧美色倩网站大全免费| ㊣最新国产の精品bt伙计久久| 久久成人免费网| 欧美日韩精品二区第二页| 日本不卡1234视频| 色综合天天综合网天天看片| xnxx国产精品| 男人的j进女人的j一区| 欧美性一二三区| 亚洲三级免费观看| 国产·精品毛片| 精品成人在线观看| 久久精品国产77777蜜臀| 欧美日韩一二三| 亚洲国产综合人成综合网站| 成人福利电影精品一区二区在线观看| 欧美大胆一级视频| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩在线亚洲一区蜜芽| 1024精品合集| 成人免费福利片| 欧美国产一区二区| 国产91高潮流白浆在线麻豆 | 国产欧美中文在线| 国产精品亚洲人在线观看| 26uuu精品一区二区三区四区在线| 日韩av不卡在线观看| 欧美日韩精品一区二区天天拍小说 | 亚洲免费视频中文字幕| av一区二区三区在线| 亚洲欧洲精品成人久久奇米网| 99视频热这里只有精品免费| 国产精品对白交换视频 | 国产精品久久久久久亚洲伦| 国产成人精品免费| 国产精品萝li| 在线视频综合导航| 亚洲成在人线免费| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日本视频在线| 首页欧美精品中文字幕| 91精品国产色综合久久久蜜香臀| 日韩专区欧美专区| 欧美xxxx老人做受| 福利电影一区二区三区| 亚洲三级久久久| 精品电影一区二区| 成人99免费视频| 亚洲成人免费在线| 日韩精品一区二区三区视频| 国产精华液一区二区三区| 国产精品久久久99| 欧洲精品一区二区| 捆绑紧缚一区二区三区视频| 国产欧美一区二区三区在线老狼| 国产一区二区在线看| 午夜日韩在线电影| 国产中文一区二区三区| 91搞黄在线观看| 亚洲一区二区三区中文字幕| 午夜精品福利一区二区三区av | 日本伊人色综合网| 在线免费视频一区二区| 亚洲三级免费电影| 欧洲精品一区二区|