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

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

?? chvrmltransition.h

?? Windows上的MUD客戶端程序
?? H
字號:
/*----------------------------------------------------------------------------
                        _                              _ _       
        /\             | |                            | (_)      
       /  \   _ __   __| |_ __ ___  _ __ ___   ___  __| |_  __ _ 
      / /\ \ | '_ \ / _` | '__/ _ \| '_ ` _ \ / _ \/ _` | |/ _` |
     / ____ \| | | | (_| | | | (_) | | | | | |  __/ (_| | | (_| |
    /_/    \_\_| |_|\__,_|_|  \___/|_| |_| |_|\___|\__,_|_|\__,_|

    The contents of this file are subject to the Andromedia Public
	License Version 1.0 (the "License"); you may not use this file
	except in compliance with the License. You may obtain a copy of
	the License at http://www.andromedia.com/APL/

    Software distributed under the License is distributed on an
	"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
	implied. See the License for the specific language governing
	rights and limitations under the License.

    The Original Code is Pueblo client code, released November 4, 1998.

    The Initial Developer of the Original Code is Andromedia Incorporated.
	Portions created by Andromedia are Copyright (C) 1998 Andromedia
	Incorporated.  All Rights Reserved.

	Andromedia Incorporated                         415.365.6700
	818 Mission Street - 2nd Floor                  415.365.6701 fax
	San Francisco, CA 94103

    Contributor(s):
	--------------------------------------------------------------------------
	   Chaco team:  Dan Greening, Glenn Crocker, Jim Doubek,
	                Coyote Lussier, Pritham Shetty.

					Wrote and designed original codebase.

------------------------------------------------------------------------------

----------------------------------------------------------------------------*/

#if !defined( _CHVRMLTRANSITION_H_ )
#define _CHVRMLTRANSITION_H_

#include "ChTransition.h"
#include <GxTypes.h>

#define ACTION_MOD_SHIFT	(1L << 0)
#define ACTION_MOD_CONTROL	(1L << 1)
#define ACTION_MOD_ALT		(1L << 2)

class ChKeyMap;
class ChMazeWnd;

class ChVrmlStateTransition : public ChStateTransition
{
	public:


		// Events
		enum EventType {
			// key downs
			ep_up = 0,	   // UP arrow key
			ep_down,
			ep_left,
			ep_right,
			ep_lookUp,
			ep_lookDown,
			ep_lookUpAlt,
			ep_lookDownAlt,
			ep_thrustForward,
			ep_thrustBack,
			ep_thrustForwardAlt,
			ep_thrustBackAlt,
			ep_space,
			ep_enter,
			ep_rollRight,
			ep_rollLeft,
			ep_rollRightAlt,
			ep_rollLeftAlt,
			ep_alt,	// - change flags too

			// key ups
			er_up,
			er_down,
			er_left,
			er_right,
			er_lookUp,
			er_lookDown,
			er_lookUpAlt,
			er_lookDownAlt,
			er_thrustForward,
			er_thrustBack,   
			er_thrustForwardAlt,
			er_thrustBackAlt,   
			er_space,        
			er_enter,        
			er_rollRight,    
			er_rollLeft,     
			er_rollRightAlt,    
			er_rollLeftAlt,     
			er_alt,	// - change flags too

			// mouse
			ep_lbutton,
			ep_rbutton,
			er_lbutton,
			er_rbutton,
			e_move,

			// others
			e_tick,

			e_numEvents
		};

// non events
//shiftdown - change flags
//ctldown - change flags
//shiftup - change flags
//ctlup - change flags

		enum State { 
			s_start = 0,
			s_alt,
			s_up,
			s_down,
			s_left,
			s_right,
			s_moveUp,
			s_moveDown,
			s_moveLeft,
			s_moveRight,
			s_lookUp,
			s_lookDown,
			s_thrustForward,
			s_thrustBack,
			s_space,
			s_enter,
			s_rollRight,
			s_rollLeft,
			s_lbuttondown,
			s_rbuttondown,
			s_lbuttondrag,
			s_rbuttondrag,
			s_lbuttondownMove,
			s_rbuttondownMove,
			s_lbuttondragMove,
			s_rbuttondragMove,
			s_goTowardsBegin,
			s_goTowards,
			s_spinningBegin,
			s_spinning,

			s_keyDown,	 // use this to replace all the silly separate key states

			// trailer to count
			s_numStates
		};

		enum KeyState {
			kd_up				= 0x01,
			kd_down				= 0x02,
			kd_left				= 0x04,
			kd_right			= 0x08,
			kd_rollRight		= 0x10,
			kd_rollLeft			= 0x20,
			kd_alt				= 0x40,
			kd_shift			= 0x80,
			kd_ctl				= 0x100,
			kd_thrustForward	= 0x200,
			kd_thrustBack		= 0x400,
			kd_lookUp			= 0x800,
			kd_lookDown			= 0x1000
		};					

	public:
		ChVrmlStateTransition(ChMazeWnd *pWnd);
		virtual ~ChVrmlStateTransition();
		
		bool Examine();
		bool ExamineStart();

		bool Spin();
		bool SpinStart();

		virtual bool OnLeftClick(int x, int y, chuint32 uFlags);
		virtual bool OnRightClick(int x, int y, chuint32 uFlags);
		virtual bool IsInAnchoredMove();		// return whether you need cross hairs
		void GetMouseAnchorLoc(int &iX, int &iY);
		void GetMouseLoc(int &iX, int &iY);
		bool GetVelocity(GxVec3f &velocity);	// in world units/sec (usually m/s)
		bool GetAngularVelocity(GxVec3f &axis, float &slewRate); // in rads/sec
		inline bool IsMoving() { return m_iState != s_spinning && m_velocity.magnitude() > 0.0;}; 
	
	protected:
		//virtual bool TranslateKeyEvent(int keyMsg, int key, chuint32 modifiers, int &event, chuint32 *&pData);
 		virtual bool TranslateMouseEvent(int mouseMsg, int x, int y, chuint32 uFlags, int &event, chuint32 *&pData);
		virtual bool TranslateEvent(int iMsg, void *pMsgData,  int &event, chuint32 *&pData);

		void RecordTime();
		void RecordPressTime();
		chint32	GetElapsedTicks();
		chint32	GetElapsedPressTicks();
		float Smooth(float val, float begin = 0., float end = 1., float idle = 0.);
		float GetMoveAmountDistance();
		float GetMoveAmountAngle();
		float GetMoveAmountAngle(int iPixels);

		void  AccumMouseVelocity();
		bool IsWithinFastClickTime();



	protected:
		UINT	m_flags;
		ChMazeWnd *m_pWnd;
		ChKeyMap	*m_pKeyMap;
		int	m_ix;			// at last mouse event
		int	m_iy;
		int	m_iAnchorX;		// Anchor for move
		int	m_iAnchorY;
		chuint32 m_mouseFlags;
		chuint32 m_keyFlags;

		chint32	m_lTime;	// last noted event time
		chint32	m_lButtonTime;  	// last buttondown time
		chint32 m_frameCount;		// frame count for buttondown
		// Camera animation locations
		GxVec3f	m_target;
		GxVec3f	m_destination;
		GxVec3f	m_start;
		GxVec3f	m_startLook;

		GxVec3f	m_mouseVelocity;
		GxVec3f	m_mouseAvgVelocity;

		// Current velocities 
		GxVec3f	m_velocity;
		GxVec3f	m_slewAxis;
		float	m_slewRate;
		// and positions for differentiating
		GxVec3f	m_loc;
		GxVec3f	m_look;


};		

class ChVrmlWalkSTM : public ChVrmlStateTransition
{
	public:
	protected:

	public:
		ChVrmlWalkSTM(ChMazeWnd *pWnd);
		virtual ~ChVrmlWalkSTM() {};

		bool MoveForward();
		bool MoveReverse();
		bool MoveUp();
		bool MoveDown();
		bool TurnLeft();
		bool MoveLeft();
		bool TurnRight();
		bool MoveRight();
		bool LookUp();
		bool LookDown();
		
		bool MoveForwardStart();
		bool MoveReverseStart();
		bool MoveUpStart();
		bool MoveDownStart();
		bool TurnLeftStart();
		bool MoveLeftStart();
		bool TurnRightStart();
		bool MoveRightStart();
		bool LookUpStart();
		bool LookDownStart();
		
		bool WalkStart();
		bool CrabbishStart();

		bool DragWalk();
		bool DragCrabbishly();

		bool TickWalk();
		bool TickCrabbishly();

		bool LeftClick();
		bool LeftClickSlow();

		bool RightClick();
		bool RightClickSlow();

		bool GoTowardsStart();
		bool GoTowards();

		//bool ThrustForward();
		//bool ThrustReverse();

	protected:
		virtual bool TranslateKeyEvent(int keyMsg, int key, chuint32 modifiers, int &event, chuint32 *&pData);
		void Init();

};

class ChVrmlFlySTM : public ChVrmlStateTransition
{

	public:
		ChVrmlFlySTM(ChMazeWnd *pWnd);
		virtual ~ChVrmlFlySTM() {};

		bool MoveForward();
		bool MoveReverse();
		bool MoveForwardStart();
		bool MoveReverseStart();
		
		bool TurnUp();
		bool TurnDown();
		bool MoveUp();
		bool MoveDown();
		bool TurnLeft();
		bool MoveLeft();
		bool RollLeft();
		bool TurnRight();
		bool MoveRight();
		bool RollRight();
		//bool ThrustForward();
		//bool ThrustBack();
		
		bool TurnUpStart();
		bool TurnDownStart();
		bool MoveUpStart();
		bool MoveDownStart();
		bool TurnLeftStart();
		bool MoveLeftStart();
		bool RollLeftStart();
		bool TurnRightStart();
		bool MoveRightStart();
		bool RollRightStart();
		
		bool FlyStart();
		bool CrabbishStart();

		bool DragFly();
		bool DragCrabbishly();

		bool TickFly();
		bool TickCrabbishly();

		bool LeftClick();
		bool LeftClickSlow();

		bool RightClick();
		bool RightClickSlow();

		bool GoTowardsStart();
		bool GoTowards();


	protected:
		virtual bool TranslateKeyEvent(int keyMsg, int key, chuint32 modifiers, int &event, chuint32 *&pData);
		void Init();

};
class ChVrmlExaminerSTM : public ChVrmlFlySTM
{

	public:
		ChVrmlExaminerSTM(ChMazeWnd *pWnd);
		virtual ~ChVrmlExaminerSTM() {};

		bool TurnUp();
		bool TurnDown();
		bool TurnLeft();
		bool TurnRight();

		bool TurnUpStart();
		bool TurnDownStart();
		bool TurnLeftStart();
		bool TurnRightStart();

	protected:
		void Init();

};

#endif	// _CHVRMLTRANSITION_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕中文乱码欧美一区二区 | 舔着乳尖日韩一区| 亚洲四区在线观看| 亚洲国产精品成人综合色在线婷婷| 久久综合精品国产一区二区三区| 日韩视频免费观看高清完整版 | 欧美成人官网二区| 精品久久99ma| 久久精品夜色噜噜亚洲a∨| 精品99999| 欧美激情一区二区在线| 亚洲欧美另类久久久精品2019| 亚洲欧美一区二区视频| 亚洲欧美激情插| 视频一区二区欧美| 久久精品国产在热久久| 国产精品香蕉一区二区三区| 粉嫩欧美一区二区三区高清影视| 成人午夜电影网站| 色综合色综合色综合色综合色综合| 色成人在线视频| 日韩一卡二卡三卡四卡| 国产午夜精品理论片a级大结局| 国产精品情趣视频| 亚洲五月六月丁香激情| 久久99最新地址| bt7086福利一区国产| 欧美在线观看一二区| 日韩西西人体444www| 国产精品区一区二区三区| 亚洲超丰满肉感bbw| 国产在线精品一区二区夜色| av一区二区三区| 欧美一区二区三区免费大片 | 欧美一区二区三区在线| 国产日韩v精品一区二区| 亚洲一区视频在线| 国产91丝袜在线观看| 欧美日韩中文国产| 国产欧美一区二区精品婷婷| 亚洲国产精品精华液网站| 国产剧情av麻豆香蕉精品| 精品视频色一区| 中文字幕一区二区三区在线播放| 午夜伦欧美伦电影理论片| 成人av集中营| 久久综合九色综合97婷婷| 日韩经典中文字幕一区| 99久久免费精品高清特色大片| 日韩一区二区精品葵司在线| 国产精品久久久久婷婷二区次| 麻豆一区二区在线| 欧美久久久久久蜜桃| 国产精品家庭影院| 国产在线一区二区综合免费视频| 日本福利一区二区| 中文字幕中文在线不卡住| 国产精品一线二线三线精华| 日韩欧美国产成人一区二区| 亚洲成av人片一区二区梦乃 | 亚洲午夜精品在线| 成人高清av在线| 久久精品一区二区三区不卡牛牛 | 亚洲精品在线一区二区| 日本成人在线电影网| 欧美丝袜第三区| 亚洲自拍偷拍av| 91美女片黄在线观看| 一色屋精品亚洲香蕉网站| 成人午夜视频福利| 国产精品久久久久久福利一牛影视| 国模少妇一区二区三区| 日韩欧美在线观看一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 91亚洲精华国产精华精华液| 一区视频在线播放| 日本高清不卡视频| 夜夜亚洲天天久久| 欧美吻胸吃奶大尺度电影| 亚洲激情在线播放| 欧美日韩一区二区电影| 亚洲成人一区二区在线观看| 欧美日韩一区精品| 亚洲成av人影院| 日韩精品中文字幕在线一区| 国产综合一区二区| 中文字幕五月欧美| 在线精品视频一区二区| 日韩国产精品久久| 久久综合色8888| 懂色av中文一区二区三区 | 日韩一区二区三区免费观看| 蜜臀久久久久久久| 国产片一区二区三区| 粉嫩av一区二区三区| 一区二区三区久久久| 欧美精品在线观看一区二区| 青草国产精品久久久久久| 欧美videos中文字幕| 国产成人精品免费一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 99久久精品久久久久久清纯| 亚洲在线视频网站| 日韩精品中文字幕一区二区三区| 国产传媒欧美日韩成人| 亚洲另类中文字| 欧美一级在线免费| 不卡区在线中文字幕| 五月天亚洲精品| 国产欧美日韩综合精品一区二区| bt欧美亚洲午夜电影天堂| 天堂影院一区二区| 国产精品毛片高清在线完整版| 91电影在线观看| 麻豆国产精品777777在线| 国产精品激情偷乱一区二区∴| 欧美一级国产精品| 91免费观看国产| 麻豆国产欧美日韩综合精品二区| 亚洲乱码国产乱码精品精可以看| 精品国产一区二区三区av性色| 色av成人天堂桃色av| 狠狠色狠狠色合久久伊人| 亚洲日本韩国一区| 亚洲综合在线免费观看| 久久免费看少妇高潮| 欧美性生活一区| av午夜精品一区二区三区| 黄页视频在线91| 日韩国产在线一| 一区二区欧美精品| 亚洲黄色尤物视频| 成人免费在线视频| 国产精品情趣视频| 久久精品人人做人人爽97 | eeuss鲁片一区二区三区在线观看| 天天综合日日夜夜精品| 一区二区三区.www| 国产精品久久国产精麻豆99网站| 久久久久久毛片| 欧美成人精品1314www| 欧美一区二区三区人| 欧美精品vⅰdeose4hd| 欧美日精品一区视频| 欧美日韩国产一区| 欧美性大战久久久久久久| 一本大道久久a久久综合| 不卡视频在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 国产在线播放一区| 久久66热偷产精品| 国产一区二区三区综合| 国内精品伊人久久久久av一坑| 麻豆视频观看网址久久| 久久国产麻豆精品| 日韩电影在线一区| 捆绑紧缚一区二区三区视频| 奇米在线7777在线精品| 蜜臀av性久久久久av蜜臀妖精| 天天色天天操综合| 免费高清成人在线| 国产乱码字幕精品高清av| 福利一区二区在线| 91在线你懂得| 精品视频1区2区3区| 欧美在线你懂得| 欧美精品国产精品| 欧美成人在线直播| 国产视频亚洲色图| 亚洲日本一区二区| 亚洲 欧美综合在线网络| 美女视频网站黄色亚洲| 国产精品18久久久久久久久| 成人午夜精品在线| 欧美亚洲愉拍一区二区| 日韩精品专区在线影院重磅| 国产免费成人在线视频| 一区二区不卡在线播放| 男女男精品网站| 成人av先锋影音| 欧美美女一区二区在线观看| 久久嫩草精品久久久精品| 综合婷婷亚洲小说| 日本视频在线一区| 色综合天天性综合| 日韩美一区二区三区| 亚洲视频一二区| 懂色av一区二区三区蜜臀| 色噜噜夜夜夜综合网| 2020日本不卡一区二区视频| 亚洲人成在线观看一区二区| 麻豆成人久久精品二区三区红| va亚洲va日韩不卡在线观看| 91精品国产91综合久久蜜臀| 国产精品日韩成人| 美腿丝袜亚洲一区| 91国偷自产一区二区三区成为亚洲经典 | 国产精品美女一区二区在线观看| 亚洲一区二区三区四区五区黄| 国产精品 欧美精品|