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

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

?? ogreopcoderay.h

?? opcode是功能強大
?? H
字號:
///////////////////////////////////////////////////////////////////////////////
///  @file OgreRay.h
///  @brief TODO.
///
///  @author The OgreOpcode Team
///  
///////////////////////////////////////////////////////////////////////////////
///  
///  This file is part of OgreOpcode.
///  
///  A lot of the code is based on the Nebula Opcode Collision module, see docs/Nebula_license.txt
///  
///  OgreOpcode is free software; you can redistribute it and/or
///  modify it under the terms of the GNU Lesser General Public
///  License as published by the Free Software Foundation; either
///  version 2.1 of the License, or (at your option) any later version.
///  
///  OgreOpcode is distributed in the hope that it will be useful,
///  but WITHOUT ANY WARRANTY; without even the implied warranty of
///  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
///  Lesser General Public License for more details.
///  
///  You should have received a copy of the GNU Lesser General Public
///  License along with OgreOpcode; if not, write to the Free Software
///  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
///  
///////////////////////////////////////////////////////////////////////////////
#ifndef __OgreOpcodeRayClass_h__
#define __OgreOpcodeRayClass_h__

#include "OgreOpcodeMath.h"

namespace OgreOpcode
{
	namespace Details
    {
		/// Represents a Ray (semi-line) defined by a starting point and a direction.
		/// TODO: add methods to this class.
		class _OgreOpcode_Export Ray3
		{
		public:

			/// Default constructor: ray from origin looking at -Z
			Ray3():origin(),direction(-Ogre::Vector3::UNIT_Z)
			{
			}

			/// Copy-constructor
			Ray3( const Ray3& ray ):origin(ray.origin),direction(ray.direction)
			{
			}

			/// Full constructor
			Ray3( const Ogre::Vector3& ori, const Ogre::Vector3& dir ):origin(ori),direction(dir)
			{
				direction.normalise();
			}

			/// Full constructor
			Ray3( Ogre::Real ox, Ogre::Real oy, Ogre::Real oz,
				Ogre::Real dx, Ogre::Real dy, Ogre::Real dz ):origin(ox,oy,oz),direction(dx,dy,dz)
			{
				direction.normalise();
			}

			/// Setups this ray
			void set( const Ray3& ray )
			{
				origin = ray.origin;
				direction = ray.direction;
			}

			/// Setups this ray
			void set( Ogre::Real ox, Ogre::Real oy, Ogre::Real oz,
						Ogre::Real dx, Ogre::Real dy, Ogre::Real dz )
			{
				origin.x = ox;
				origin.y = oy;
				origin.z = oz;
				
				direction.x = dx;
				direction.x = dy;
				direction.x = dz;
				direction.normalise();
			}

			/// Setups this ray
			void set( const Ogre::Vector3& ori, const Ogre::Vector3& dir )
			{
				origin = ori;
				direction = dir;
				direction.normalise();
			}

			/// Sets the origin of this ray
			void setOrigin( Ogre::Real x, Ogre::Real y, Ogre::Real z )
			{
				origin.x = x;
				origin.y = y;
				origin.z = z;
			}
			/// Sets the origin of this ray
			void setOrigin( const Ogre::Vector3& v)			   { origin = v;     }

			/** Sets the direction of this ray
			 * @param x, y, z Coordinates for direction
			 * @param normalize If true, the input vector needs to be normalized
			 */
			void setDirection( Ogre::Real x, Ogre::Real y, Ogre::Real z, bool normalize = true )
			{ 
				direction.x = x;
				direction.y = y;
				direction.z = z;
				if( normalize )
					direction.normalise();
			}

			/** Sets the direction of this ray
			 * @param v Direction vector
			 * @param normalize If true, the input vector needs to be normalized
			 */
			void setDirection( const Ogre::Vector3& v, bool normalize = true )
			{ 
				direction = v;
				if( normalize )
					direction.normalise();
			}

			/// Gets the origin of this ray
			const Ogre::Vector3& getOrigin()    const { return origin;    }
			/// Gets the direction of this ray
			const Ogre::Vector3& getDirection() const { return direction; }

			/** Gets the point in this ray at (oriented) distance delta from the origin
			 */
			Ogre::Vector3 getPointAt( Ogre::Real delta ) const
			{
				return origin + delta*direction;
			}

// --------------------------------------------------------------------
// Distance methods				

			/** Computes the <em>squared</em> distance from this ray to a point
			 */
			Ogre::Real squaredDistance( const Ogre::Vector3& point ) const;

			/** Computes the distance from this ray to a point
			 */
			Ogre::Real distance( const Ogre::Vector3& point ) const;

			/** Computes the <em>squared</em> distance from this ray to a line
			 */
			Ogre::Real squaredDistance( const Line& line ) const;

			/** Computes the distance from this ray to a line
			 */
			Ogre::Real distance( const Line& line ) const;

// --------------------------------------------------------------------
// Intersection methods

			/** Intersection test between this line and the given AABB.
			 */
			bool intersect( const bbox3& aabb ) const;

			/** Intersection test between this line and the given OBB.
			 */
			bool intersect( const OrientedBox& obb ) const;

			/** Intersection test between this line and the given Sphere.
			 */
			bool intersect( const Ogre::Sphere& sphere ) const;

			/** Intersection test between this line and the given Capsule.
			 */
			bool intersect( const Capsule& capsule ) const;

// --------------------------------------------------------------------
// Picking methods

			/** Picking test between this ray and the given OBB.
			 *  @param dist Reference to a floating point representing the closest
			 *				intersection point trough the distance from the ray origin.
			 */
			bool pick( const Aabb& aabb, Ogre::Real& dist ) const;

			/** Picking test between this ray and the given OBB.
			 *  @param dist Reference to a floating point representing the closest
			 *				intersection point trough the distance from the ray origin.
			 */
			bool pick( const OrientedBox& obb, Ogre::Real& dist ) const;

			/** Picking test between this ray and the given Sphere.
			 *  @param dist Reference to a floating point representing the closest
			 *				intersection point trough the distance from the ray origin.
			 */
			bool pick( const Ogre::Sphere& sphere, Ogre::Real& dist ) const;

			/// Holds the origin of this ray
			Ogre::Vector3 origin;
			/// Holds the direction of this ray
			Ogre::Vector3 direction;

		};
	}
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久嫩草精品久久久久| 91久久一区二区| 奇米影视一区二区三区| 亚洲欧美日韩国产成人精品影院 | 精品播放一区二区| 日韩欧美一二三| 精品第一国产综合精品aⅴ| 欧美成人一区二区三区片免费 | 97se亚洲国产综合自在线| 国产精品18久久久久久久网站| 麻豆精品在线视频| 国内久久精品视频| 成熟亚洲日本毛茸茸凸凹| 成人免费高清在线观看| 91免费版pro下载短视频| 日本韩国欧美国产| 69堂成人精品免费视频| 欧美一级理论性理论a| 欧美一级高清片在线观看| 欧美大片拔萝卜| 国产日韩精品一区二区三区在线| 日本一区二区三区dvd视频在线| 日本一区二区成人| 亚洲亚洲人成综合网络| 免费欧美在线视频| 国产高清亚洲一区| 91久久线看在观草草青青| 7777精品伊人久久久大香线蕉完整版| 精品美女一区二区| 亚洲精品国产一区二区精华液 | 久久精品国产一区二区三区免费看 | 国产一区二区三区高清播放| 国产91丝袜在线播放| 91捆绑美女网站| 日韩视频免费观看高清完整版| 精品国产乱码久久久久久1区2区 | 成人爽a毛片一区二区免费| 色婷婷综合五月| 26uuu欧美| 亚洲精品国产无天堂网2021| 麻豆国产一区二区| 在线欧美小视频| 久久久久久亚洲综合影院红桃| 日韩码欧中文字| 看电视剧不卡顿的网站| 一本一道久久a久久精品| 精品国产一区二区精华| 亚洲柠檬福利资源导航| 韩国成人福利片在线播放| 91老师片黄在线观看| 精品91自产拍在线观看一区| 亚洲制服丝袜av| 成人av一区二区三区| 日韩精品一区国产麻豆| 亚洲精品久久久久久国产精华液| 国产最新精品精品你懂的| 欧美色手机在线观看| 日本一区二区三区国色天香| 麻豆传媒一区二区三区| 欧美性受极品xxxx喷水| 中文字幕乱码日本亚洲一区二区| 五月婷婷综合网| 欧洲一区在线电影| 国产精品家庭影院| 成人午夜视频在线| 日本一二三不卡| 国产成人免费视频精品含羞草妖精| 欧美男同性恋视频网站| 亚洲一区二区三区中文字幕| 一本久久a久久精品亚洲| 国产精品久久久久天堂| 丁香啪啪综合成人亚洲小说 | 老司机精品视频线观看86| 欧美日韩国产高清一区| 亚洲一区在线观看网站| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品久久福利| 99久久精品国产精品久久| 国产欧美一区二区精品性色超碰 | 风流少妇一区二区| 国产视频一区在线播放| 国产最新精品免费| 日本一区二区免费在线| 不卡免费追剧大全电视剧网站| 国产日韩高清在线| 成人国产精品免费网站| 中文字幕一区二区三区在线不卡 | 成人美女视频在线观看18| 国产三级一区二区| 成人av电影在线观看| 亚洲精品国产一区二区精华液| 在线观看一区二区视频| 亚洲一二三四区| 欧美一区二区黄| 国产一区二区精品久久99| 国产欧美精品一区aⅴ影院| 成人午夜精品一区二区三区| 日韩一区中文字幕| 欧美日韩mp4| 国产成人超碰人人澡人人澡| 亚洲图片激情小说| 日韩一区二区免费高清| 国产+成+人+亚洲欧洲自线| 亚洲欧美日韩精品久久久久| 91精品国模一区二区三区| 国产精品99久久久久久似苏梦涵| 国产精品少妇自拍| 欧美日韩国产精选| 国产成人在线网站| 午夜伦理一区二区| 国产人伦精品一区二区| 欧美日韩精品一区二区三区| 国产精品一区二区黑丝| 一区二区免费看| 国产日本欧洲亚洲| 91精品国产综合久久香蕉的特点 | 99精品国产一区二区三区不卡 | 日韩一区二区不卡| 99精品国产99久久久久久白柏| 日韩和的一区二区| 国产精品国产精品国产专区不蜜| 欧美日韩和欧美的一区二区| 国产精品一区二区久久不卡| 午夜精品久久久久影视| 亚洲欧洲av一区二区三区久久| 欧美一级欧美一级在线播放| 91亚洲国产成人精品一区二区三| 看电影不卡的网站| 同产精品九九九| 亚洲美女一区二区三区| 久久综合狠狠综合久久综合88| 欧美日韩夫妻久久| 一道本成人在线| 99热在这里有精品免费| 国产一区欧美日韩| 久久精品72免费观看| 午夜久久久久久电影| 亚洲精品久久嫩草网站秘色| 中文一区一区三区高中清不卡| 日韩一区二区三区在线| 91精品一区二区三区在线观看| 91福利区一区二区三区| 99精品欧美一区| 91黄色小视频| 懂色av一区二区三区免费看| 精品一区中文字幕| 久久国产精品免费| 麻豆久久一区二区| 免费成人在线网站| 久久精品99国产精品日本| 免费在线看成人av| 久久99精品一区二区三区| 日本在线观看不卡视频| 午夜成人免费视频| 美女一区二区久久| 美女视频免费一区| 久久精品二区亚洲w码| 日韩高清不卡在线| 美女www一区二区| 国内偷窥港台综合视频在线播放| 久久99精品国产91久久来源 | 国产亚洲美州欧州综合国| 久久丝袜美腿综合| 亚洲国产精品ⅴa在线观看| 国产精品沙发午睡系列990531| 国产精品不卡视频| 亚洲成年人影院| 韩国毛片一区二区三区| 成人精品国产免费网站| 91在线观看视频| 777久久久精品| 国产人成一区二区三区影院| 国产精品传媒入口麻豆| 亚洲一二三级电影| 久久国产三级精品| 不卡一区中文字幕| 欧美二区三区的天堂| www国产成人| 尤物av一区二区| 免费看精品久久片| 成人开心网精品视频| 欧美亚洲一区二区在线| 3atv在线一区二区三区| 久久久精品一品道一区| 亚洲欧美一区二区三区国产精品| 一个色妞综合视频在线观看| 日本中文字幕一区二区视频| 成人免费毛片a| 这里只有精品99re| 国产精品麻豆一区二区 | 欧美电影精品一区二区| 国产精品福利影院| 五月综合激情婷婷六月色窝| 国产福利一区二区| 欧美高清www午色夜在线视频| 日本一区二区三级电影在线观看 | 亚洲女与黑人做爰| 黄色精品一二区| 欧美色图片你懂的| 国产精品久久久久久久蜜臀|