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

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

?? opc_obbcollider.h

?? opcode是功能強大
?? H
字號:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
 *	OPCODE - Optimized Collision Detection
 *	Copyright (C) 2001 Pierre Terdiman
 *	Homepage: http://www.codercorner.com/Opcode.htm
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 *	Contains code for an OBB collider.
 *	\file		OPC_OBBCollider.h
 *	\author		Pierre Terdiman
 *	\date		January, 1st, 2002
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Include Guard
#ifndef __OPC_OBBCOLLIDER_H__
#define __OPC_OBBCOLLIDER_H__

	struct OBBCache : VolumeCache
	{
					OBBCache() : FatCoeff(1.1f)
					{
						FatBox.mCenter.Zero();
						FatBox.mExtents.Zero();
						FatBox.mRot.Identity();
					}

		// Cached faces signature
		IceMaths::OBB				FatBox;		//!< Box used when performing the query resulting in cached faces
		// User settings
		float			FatCoeff;	//!< extents multiplier used to create a fat box
	};

	class OBBCollider : public VolumeCollider
	{
		public:
		// Constructor / Destructor
											OBBCollider();
		virtual								~OBBCollider();

		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		/**
		 *	Generic collision query for generic OPCODE models. After the call, access the results:
		 *	- with GetContactStatus()
		 *	- with GetNbTouchedPrimitives()
		 *	- with GetTouchedPrimitives()
		 *
		 *	\param		cache			[in/out] a box cache
		 *	\param		box				[in] collision OBB in local space
		 *	\param		model			[in] Opcode model to collide with
		 *	\param		worldb			[in] OBB's world matrix, or null
		 *	\param		worldm			[in] model's world matrix, or null
		 *	\return		true if success
		 *	\warning	SCALE NOT SUPPORTED IN OBB MATRIX. The obb's matrix must contain rotation & translation parts only.
		 */
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
							bool			Collide(OBBCache& cache, const IceMaths::OBB& box, const Model& model, const IceMaths::Matrix4x4* worldb=null, const IceMaths::Matrix4x4* worldm=null);

		// Settings

		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		/**
		 *	Settings: select between full box-box tests or "SAT-lite" tests (where Class III axes are discarded)
		 *	\param		flag		[in] true for full tests, false for coarse tests
		 */
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		inline_				void			SetFullBoxBoxTest(bool flag)	{ mFullBoxBoxTest = flag;	}

		// Settings

		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		/**
		 *	Validates current settings. You should call this method after all the settings and callbacks have been defined for a collider.
		 *	\return		null if everything is ok, else a string describing the problem
		 */
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		override(Collider)	const char*		ValidateSettings();

		protected:
		// Precomputed data
							IceMaths::Matrix3x3		mAR;				//!< Absolute rotation matrix
							IceMaths::Matrix3x3		mRModelToBox;		//!< Rotation from model space to obb space
							IceMaths::Matrix3x3		mRBoxToModel;		//!< Rotation from obb space to model space
							IceMaths::Point			mTModelToBox;		//!< Translation from model space to obb space
							IceMaths::Point			mTBoxToModel;		//!< Translation from obb space to model space

							IceMaths::Matrix3x3		mSRModelToBox;		//!< Scale and Rotation from model space to obb space

							IceMaths::Point			mBoxExtents;
							IceMaths::Point			mB0;				//!< - mTModelToBox + mBoxExtents
							IceMaths::Point			mB1;				//!< - mTModelToBox - mBoxExtents

							float			mBBx1;
							float			mBBy1;
							float			mBBz1;

							float			mBB_1;
							float			mBB_2;
							float			mBB_3;
							float			mBB_4;
							float			mBB_5;
							float			mBB_6;
							float			mBB_7;
							float			mBB_8;
							float			mBB_9;

		// Leaf description
							IceMaths::Point			mLeafVerts[3];		//!< Triangle vertices
		// Settings
							bool			mFullBoxBoxTest;	//!< Perform full BV-BV tests (true) or SAT-lite tests (false)
		// Internal methods
							void			_Collide(const AABBCollisionNode* node);
							void			_Collide(const AABBNoLeafNode* node);
							void			_Collide(const AABBQuantizedNode* node);
							void			_Collide(const AABBQuantizedNoLeafNode* node);
							void			_CollideNoPrimitiveTest(const AABBCollisionNode* node);
							void			_CollideNoPrimitiveTest(const AABBNoLeafNode* node);
							void			_CollideNoPrimitiveTest(const AABBQuantizedNode* node);
							void			_CollideNoPrimitiveTest(const AABBQuantizedNoLeafNode* node);
			// Overlap tests
		inline_				BOOL			OBBContainsBox(const IceMaths::Point& bc, const IceMaths::Point& be);
		inline_				BOOL			BoxBoxOverlap(const IceMaths::Point& extents, const IceMaths::Point& center);
		inline_				BOOL			TriBoxOverlap();
			// Init methods
							BOOL			InitQuery(OBBCache& cache, const IceMaths::OBB& box, const IceMaths::Matrix4x4* worldb=null, const IceMaths::Matrix4x4* worldm=null);
	};

	class HybridOBBCollider : public OBBCollider
	{
		public:
		// Constructor / Destructor
											HybridOBBCollider();
		virtual								~HybridOBBCollider();

							bool			Collide(OBBCache& cache, const IceMaths::OBB& box, const HybridModel& model, const IceMaths::Matrix4x4* worldb=null, const IceMaths::Matrix4x4* worldm=null);
		protected:
							IceCore::Container		mTouchedBoxes;
	};

#endif // __OPC_OBBCOLLIDER_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费在线电影| 波多野结衣精品在线| 亚洲最大成人网4388xx| ww亚洲ww在线观看国产| 欧美天堂亚洲电影院在线播放| 精品一区二区精品| 五月综合激情日本mⅴ| 中文字幕一区日韩精品欧美| 精品人在线二区三区| 欧美三级电影在线看| 一本色道久久综合亚洲91| 国产曰批免费观看久久久| 日韩二区三区四区| 亚洲综合色噜噜狠狠| ㊣最新国产の精品bt伙计久久| 久久亚洲欧美国产精品乐播 | 在线视频亚洲一区| 97se亚洲国产综合自在线不卡| 韩日欧美一区二区三区| 琪琪一区二区三区| 蜜桃视频在线观看一区| 日韩精品欧美精品| 日韩影视精彩在线| 亚洲国产精品一区二区尤物区| 亚洲男人都懂的| 亚洲欧洲日韩av| 国产精品九色蝌蚪自拍| 国产精品日日摸夜夜摸av| 亚洲高清一区二区三区| 自拍av一区二区三区| 欧美日韩国产综合久久| 色综合久久综合网欧美综合网| 亚洲欧洲精品一区二区三区不卡| 国产欧美日韩不卡免费| 精品国产成人在线影院 | 99精品国产热久久91蜜凸| 亚洲美腿欧美偷拍| 欧美www视频| 日韩欧美在线综合网| 精品久久久久久久人人人人传媒| 精品美女在线播放| 久久先锋影音av鲁色资源网| 久久一夜天堂av一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 国产欧美精品日韩区二区麻豆天美| 国产欧美精品一区aⅴ影院| 国产精品白丝在线| 亚洲国产精品综合小说图片区| a亚洲天堂av| 亚洲午夜精品在线| 亚洲成人你懂的| 国产一区二区视频在线| 色久综合一二码| 在线成人免费视频| 国产欧美日韩麻豆91| 一区二区三区色| 精品一区二区三区蜜桃| 91亚洲大成网污www| 欧美不卡一二三| 亚洲欧美区自拍先锋| 麻豆视频观看网址久久| av激情亚洲男人天堂| 精品福利一区二区三区| 夜夜揉揉日日人人青青一国产精品 | 精品国产91乱码一区二区三区| 中文字幕一区免费在线观看 | 中文字幕亚洲一区二区av在线| 日韩高清电影一区| 91在线观看视频| 久久毛片高清国产| 日产国产欧美视频一区精品| av在线不卡观看免费观看| 欧美一区二区三区性视频| 亚洲精品日韩专区silk| 粉嫩绯色av一区二区在线观看| 日韩三级中文字幕| 亚洲aⅴ怡春院| 欧美亚洲尤物久久| 亚洲欧美二区三区| 99视频有精品| 国产精品色噜噜| 国产精品一区二区三区乱码| 日韩免费观看高清完整版在线观看| 亚洲午夜在线观看视频在线| aa级大片欧美| 国产精品无码永久免费888| 久久91精品国产91久久小草| 欧美一区二区三区视频| 日韩国产精品久久久| 欧美剧情片在线观看| 午夜免费久久看| 欧美区视频在线观看| 午夜精品福利在线| 欧美精品日韩精品| 日韩成人伦理电影在线观看| 欧美疯狂性受xxxxx喷水图片| 丝袜美腿亚洲综合| 欧美一区二区播放| 国产专区欧美精品| 中文字幕欧美三区| 在线视频观看一区| 免费精品视频最新在线| 日韩免费观看高清完整版| 国产毛片精品国产一区二区三区| 久久亚洲私人国产精品va媚药| 成人性视频免费网站| 伊人开心综合网| 日韩欧美在线不卡| 成人sese在线| 五月天网站亚洲| 欧美激情自拍偷拍| 欧美三日本三级三级在线播放| 日本免费在线视频不卡一不卡二| 精品日韩一区二区三区| av亚洲产国偷v产偷v自拍| 亚洲一级二级在线| 欧美电视剧免费观看| av在线播放成人| 麻豆成人久久精品二区三区红| 中文字幕免费观看一区| 欧美午夜片在线看| 国产成人在线色| 亚洲国产精品麻豆| 国产人成亚洲第一网站在线播放| 色婷婷精品大视频在线蜜桃视频| 蜜乳av一区二区三区| 中文字幕在线播放不卡一区| 日韩三级视频中文字幕| 一本大道久久a久久精品综合| 久久99热这里只有精品| 亚洲一区二区三区中文字幕| wwwwww.欧美系列| 在线播放91灌醉迷j高跟美女| 成人h版在线观看| 精品午夜久久福利影院| 亚洲小少妇裸体bbw| 国产精品麻豆欧美日韩ww| 欧美大片拔萝卜| 91精品中文字幕一区二区三区| 91在线观看高清| 成人app软件下载大全免费| 精品在线一区二区三区| 亚洲成人av电影在线| 一区二区理论电影在线观看| 国产亚洲一二三区| 精品捆绑美女sm三区| 日韩一区二区在线播放| 欧美放荡的少妇| 欧美日韩高清一区二区不卡| 色综合一区二区三区| 91玉足脚交白嫩脚丫在线播放| 国产一二精品视频| 国产精品123| 国产盗摄一区二区三区| 国产福利不卡视频| 高清免费成人av| aaa亚洲精品| 91高清视频在线| 欧美日韩在线播放| 欧美老肥妇做.爰bbww视频| 欧美疯狂做受xxxx富婆| 日韩亚洲欧美成人一区| 欧美成人女星排名| 国产夜色精品一区二区av| 国产亚洲精品久| ㊣最新国产の精品bt伙计久久| 亚洲欧美国产毛片在线| 亚洲国产一二三| 蜜臂av日日欢夜夜爽一区| 精品一二三四区| 99天天综合性| 欧美日韩国产精品自在自线| 欧美一区二区啪啪| 久久久精品国产免大香伊| 国产精品美女久久久久久久| 亚洲免费资源在线播放| 日日夜夜精品视频免费| 国内成+人亚洲+欧美+综合在线| 国产精品系列在线播放| 色偷偷久久人人79超碰人人澡| 欧美日韩一区小说| 精品国产乱码久久久久久久 | 欧美伊人久久久久久久久影院 | 一区二区三区中文在线| 日本欧美一区二区三区乱码| 国产成人自拍网| 欧美日韩成人在线一区| 国产欧美日韩另类一区| 亚洲国产综合在线| 国产精品夜夜嗨| 精品视频一区三区九区| 中文字幕成人网| 日本欧美一区二区在线观看| 成人性生交大片免费看视频在线| 欧美日韩国产经典色站一区二区三区 | 激情综合网激情| 欧美日韩在线综合| 亚洲日本免费电影| 国产精品自在欧美一区| 欧美一区二区三区四区高清|