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

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

?? inputdevice.h

?? FreeWRLduneInputDevice和FreeWRL一起可以讓用戶用帶有6DoF的輸入設備檢索3D VRML/X3D數據。它基于FreeWRL的"/tmp/inpdev"擴展傳感器輸入接口和w
?? H
字號:
/* * InputDevice.h * * Copyright (C) 2001 J. "MUFTI" Scheurich *  * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program (see the file "COPYING" for details); if  * not, write to the Free Software Foundation, Inc., 675 Mass Ave,  * Cambridge, MA 02139, USA. */#ifndef _INPUTDEVICE_H#define _INPUTDEVICE_H#include <stdio.h>#include <stdlib.h>#include "stdafx.h"#include "TransformMode.h"#include "EulerAngles.h"#include "Quaternion.h"// yet another stringcompare...#define stringncmp(x,y) strncmp(x,y,strlen(y))// class to access several joystick like devices via a unified interface// Example for such devices are spaceballs, magellan-devices, // thumbsticks of gamepads and of course joysticks 8-)   // This can also be used for Xinput devices, that not deliver zero, // if you take your hand away from the device like dialbox, mouse or // graphics tablett.class InputDevice   {public:   // true if there is a new event from the joystick   virtual bool readInputDevice(void) = 0;   float get_x(TransformMode* tm=NULL,bool check_only=false);    float get_y(TransformMode* tm=NULL,bool check_only=false);   float get_z(TransformMode* tm=NULL,bool check_only=false);      virtual Quaternion& get_quaternion(TransformMode* tm=NULL,                                      bool check_only=false);   virtual Quaternion& get_localQuaternion(TransformMode* tm=NULL,                                           bool check_only=false);   EulerAngles& get_eulerAngles(TransformMode* tm, bool check_only);   Vec3f& get_vector(TransformMode* tm);   int get_number_axes(void)    { return number_axes; }   int get_number_buttons(void) { return number_buttons; }   bool isWand(void) { return wandflag; }   bool isHead(void) { return headflag; }   virtual bool sendalways(void) { return alwaysflag; }    virtual bool allzero(void);   virtual bool isTracker(void) { return false; }   virtual bool hasReadDelay(void) { return false; }   virtual void prepareRead(void) { return; }   virtual float maxvalue(int) const=0;   virtual void setHeadNavigation(void) { }   virtual bool getHeadNavigation(void) { return true; }   void set_firstflag(void);   InputDevice(void)       {      int i;      static char* axesinfodata[6]= { "xrot", "yrot", "zrot", "x", "y", "z" };      // initialise joystick class default data      button_pressed=-1;      button_released=-1;      number_buttons=0;      number_axes=0;      for (i=0;i<7;i++)         value[i]=0;      headflag=false;      wandflag=false;      alwaysflag=false;      num_axis_x=0;      num_axis_y=1;      num_axis_z=2;      num_axis_xrot=3;      num_axis_yrot=4;      num_axis_zrot=5;      num_axis_angle=6;      zero_on_release=NULL;      sign_swap=NULL;      factor=NULL;      acceleration=NULL;      zero_size_fraction=NULL;      for (i=0;i<6;i++)         axesinfo[i]=axesinfodata[i];      for (i=0;i<7;i++)         firstflag[i]=true;      alwaysflag=false;      }   ~InputDevice()       {      if (zero_on_release!=NULL)         delete zero_on_release;      if (acceleration!=NULL)         delete acceleration;      }   void SetAxisInformation(char* info_string);   void SetNumberAxes(char*);   void SetSendAlways(bool flag) {alwaysflag=flag;}protected:   float get_xrot(TransformMode* tm=NULL,bool check_only=false);   float get_yrot(TransformMode* tm=NULL,bool check_only=false);   float get_zrot(TransformMode* tm=NULL,bool check_only=false);   float get_angle(TransformMode* tm=NULL,bool check_only=false);   // is device a headtracker ?   bool headflag;   // is device a wand ?   bool wandflag;   // do device send (amost) always values ?   bool alwaysflag;   // axes of joystick   int number_axes;   // 0-2 offset and 3-7 rotation values from joystick (if available)   float value[7];   // buttons of joystick   int number_buttons;   bool *button;   // last pressed/released button   int button_pressed;   int button_released;   // number of axis for values   int num_axis_x;   int num_axis_y;   int num_axis_z;   int num_axis_xrot;   int num_axis_yrot;   int num_axis_zrot;   int num_axis_angle;      // true if axis number deliver zero when device released   bool get_zero_on_release(int axis_number);   void set_zero_on_release(int axis_number,bool value);   void set_zero_on_release(char* axis_string,bool value);   // formula to accelerate values from axis   float accelerate(float value,int num_axis);   // signswap of value from axis   int get_sign(int axis_number);   void set_sign_swap(int axis_number,bool value);   // factor: multiplcated to value from axis   float get_factor(int axis_number);   void set_factor(int axis_number,float value);   void set_factor(char* axis_string,float value);   // acceleration: additional acceleration parameter   float get_acceleration(int axis_number);   void set_acceleration(int axis_number,float value);   void set_acceleration(char* axis_string,float value);   // percent (relative to max) of value which will be ignored   // "insensitivity of device"   float get_zero_size_fraction(int axis_number);     void set_zero_size_fraction(int axis_number,float value);   void set_zero_size_fraction(char* string,float value);   // function to read/set configuration data like   //    axisnumbers, zero_on_release, acceleration   int getAxisFromInformation(char* axesinfo);   void setAxisOfInformation(char* axesinfo,int axis_number);protected:   bool max_value(int index,TransformMode* tm);   float get_value(int index,bool check_only,int num_axis);   // array of flags for first get from device   bool firstflag[7];   // array of old values from device   float oldvalue[7];   // array of nullsize in percent   float* zero_size_fraction;   // array of flags if axis number arrayindex deliver zero when device is    // released   bool* zero_on_release;   // array of flags, if sign of result is swapped   bool* sign_swap;     // array of factor to multiply with value of axis   float* factor;   // array of acceleration per axis   float* acceleration;   // helper functions for SetAxisInformation   bool scan_argument(char *string,char* argument);   bool argument_is_axis(char* string);   char* axesinfo[6];    };# ifdef LINUX_JOYSTICK// using Linux Joystick interface#  define NAME_LENGTH 128#  include <linux/joystick.h>class linux_joystick : public InputDevice    {public:    linux_joystick() {}   ~linux_joystick();   linux_joystick(char* device);   bool readInputDevice(void);private:   int fd;   int version;   char name[NAME_LENGTH];   struct js_event js;   float maxvalue(int i) const {return(32767.0);}   float factor;   float rotfactor;   };# endif# ifdef HAVE_XINPUT// Xi X11 XInput devices (e.g. spaceball, magellan) #  include <X11/extensions/XInput.h>extern "C"    {#  include "swtxinput.h"   }extern Display* swGetDisplay(void);extern Window* swGetWindow(void);class xinput : public InputDevice    {public:    xinput() {}   ~xinput();   xinput(char* device);   bool readInputDevice(void);private:   char* name;   swXinput* swxinput;   float factor;   float rotfactor;   float *max_value;   float maxvalue(int i) const {return max_value[i];}   int nullsize;   };# endif# ifdef HAVE_LIBSBALL// using libsball library for SpaceTec/LabTec Spaceball devices#  include <sball.h>class spaceball : public InputDevice    {public:    spaceball() {}   ~spaceball();   spaceball(char* device);   bool readInputDevice(void);private:   char* name;   SBallHandle sball;   float maxvalue(int i) const {return max_value;}   float max_value;   float factor;   float rotfactor;   int nullsize;   };# endif# ifdef HAVE_AFLOCK// using aFlock program from VR Juggler library for // Ascention Flock of birds devices#  include "Aflock.h"class AflockDevice   {public:    AflockDevice(char* device);   ~AflockDevice();   Aflock* AflockDevice::getAflock(void);   void close();   // parameters   void setBaud(char* baudrate_string);   void setSync(char* sync_string);   void setBlock(char* block_string);   void setNumBrds(char* numBrds_string);   void setTransmit(char* transmit_string);   void setHemi(char* hemi_string);   void setFilt(char* filt_string);   void setSuddenChangeLock(char* sudden_string);   void setReport(char* report_string);   void setCalfile(char* calfile_string);private:   char* name;   Aflock* flock;   bool opened;      char* device;   int baudrate;   int sync;   int block;   int numBrds;   int transmit;   BIRD_HEMI hemi;   BIRD_FILT filt;   bool sudden_change_lock;   char report;   char* calfile;   };class aflock : public InputDevice    {public:    aflock(AflockDevice* device,char* receiver_string,bool headflag);   ~aflock();   bool readInputDevice(void);   bool sendalways(void) { return true; }   bool hasReadDelay(void) { return true; }   void prepareRead(void);            void setHeadNavigation(void) { headNavigation=true; }   bool getHeadNavigation(void) { return isTracker() && headNavigation; }#ifdef USE_AFLOCK_QUATERNION   Quaternion& get_quaternion(TransformMode* tm=NULL,                              bool check_only=false);   Quaternion& get_localQuaternion(TransformMode* tm=NULL,                                   bool check_only=false);   bool allzero(void);#endifprivate:   int receiver;      char* name;   bool head;   bool wand;   bool headNavigation;   bool isTracker(void) { return head; }   bool isWand(void) { return wand; }   Aflock* flock;   float maxvalue(int i) const {return max_value;}   float max_value;   float factor;   float rotfactor;   bool firstflag;#ifdef USE_AFLOCK_QUATERNION   Quaternion old_quat;#else   float fix2pi(float rot,float oldrot);   float old_xrot;   float old_yrot;   float old_zrot;   #endif   };# endif#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久久电影| 午夜精品一区二区三区电影天堂| 中文天堂在线一区| 亚洲中国最大av网站| 国产精品一卡二| 精品视频1区2区| 国产精品国产三级国产aⅴ无密码| 日韩精品午夜视频| 色婷婷久久一区二区三区麻豆| 精品成人一区二区| 亚洲国产精品久久久久婷婷884| 国产精品资源站在线| 欧美丰满嫩嫩电影| 亚洲在线视频网站| 99精品久久只有精品| 精品国产免费一区二区三区香蕉| 亚洲韩国一区二区三区| 成人av网在线| 亚洲国产精品二十页| 韩国精品在线观看| 日韩精品一区二区三区老鸭窝| 亚洲一区二区黄色| 欧美网站一区二区| 亚洲国产一区视频| 欧美午夜宅男影院| 一区二区三区四区在线免费观看| 99久久精品久久久久久清纯| 国产女人18水真多18精品一级做 | 日韩视频免费观看高清完整版在线观看 | 亚洲一二三四在线观看| 91丨porny丨最新| 中文字幕在线不卡视频| 成人激情免费网站| 国产精品乱码一区二区三区软件 | 8v天堂国产在线一区二区| 亚洲一区二区黄色| 欧美精品亚洲一区二区在线播放| 亚洲综合一区二区三区| 在线观看欧美黄色| 五月婷婷欧美视频| 欧美一区二区性放荡片| 青椒成人免费视频| 久久一夜天堂av一区二区三区| 加勒比av一区二区| 中文字幕高清一区| 91在线视频在线| 亚洲综合激情小说| 4438成人网| 激情深爱一区二区| 国产日韩欧美不卡在线| 99久久精品国产一区| 亚洲一区在线视频| 91.麻豆视频| 国内不卡的二区三区中文字幕| 国产亚洲欧美一区在线观看| 成人网在线播放| 亚洲另类在线视频| 91精品国产综合久久福利软件 | 色拍拍在线精品视频8848| 亚洲一区二区av在线| 精品国产一区二区三区久久久蜜月| 国产麻豆午夜三级精品| 亚洲人吸女人奶水| 5566中文字幕一区二区电影| 狠狠色丁香婷婷综合| 亚洲激情自拍视频| 精品乱人伦一区二区三区| av一本久道久久综合久久鬼色| 亚洲一区二区不卡免费| 国产亚洲一区字幕| 欧美中文一区二区三区| 国产不卡视频在线播放| 亚洲影视资源网| 欧美国产丝袜视频| 91精品国产入口| 99国产精品久久久久久久久久| 蜜桃视频一区二区| 亚洲免费大片在线观看| 精品人在线二区三区| 欧美日韩国产天堂| 成人美女视频在线观看| 日本大胆欧美人术艺术动态| 国产精品入口麻豆九色| 日韩午夜在线影院| 欧美色偷偷大香| 99re66热这里只有精品3直播 | 91麻豆免费看| 色猫猫国产区一区二在线视频| 天天亚洲美女在线视频| 国产精品成人免费| 精品欧美久久久| 欧美日韩在线播放三区| proumb性欧美在线观看| 国产剧情一区二区| 久久国产生活片100| 亚洲成av人综合在线观看| 中文字幕亚洲精品在线观看| 精品国产露脸精彩对白| 在线成人小视频| 91精品福利在线| 91一区在线观看| 99在线精品免费| 波多野结衣精品在线| 国产在线观看一区二区| 美女视频黄 久久| 婷婷丁香久久五月婷婷| 亚洲国产日韩a在线播放| 亚洲免费观看高清在线观看| 中文字幕一区二区三区在线播放| 久久久久久电影| 久久久综合精品| 久久亚洲综合色| 久久久青草青青国产亚洲免观| 日韩精品在线一区二区| 欧美精品一区二区久久婷婷| 精品久久久久久久久久久久久久久久久| 在线不卡中文字幕播放| 欧美日韩高清在线播放| 欧美一区二区视频在线观看2020 | 美女视频黄频大全不卡视频在线播放| 亚洲电影中文字幕在线观看| 亚洲乱码中文字幕| 一区二区三区日韩| 亚洲一区二区精品3399| 日韩成人午夜电影| 极品少妇xxxx偷拍精品少妇| 国产精品一区不卡| 亚洲午夜日本在线观看| 91丨九色porny丨蝌蚪| 色综合天天综合给合国产| 97久久人人超碰| 狠狠狠色丁香婷婷综合久久五月| 亚洲另类春色校园小说| 一区二区三区四区av| 国产精品理论片在线观看| 一区二区三区毛片| 亚洲国产sm捆绑调教视频| 亚洲午夜在线视频| 日韩av高清在线观看| 久久精品国产精品亚洲综合| 国内精品第一页| 成人国产亚洲欧美成人综合网| 91免费国产在线观看| 91精品欧美久久久久久动漫 | 麻豆91精品91久久久的内涵| 国产精品中文有码| 91免费精品国自产拍在线不卡| 4438x亚洲最大成人网| 欧美激情一区二区三区| 日精品一区二区三区| 国产真实乱对白精彩久久| 日韩欧美一级特黄在线播放| 久久精品人人做人人爽97| 亚洲自拍都市欧美小说| 国内久久婷婷综合| 精品视频在线视频| 国产午夜精品美女毛片视频| 一区二区在线观看视频| 韩国精品主播一区二区在线观看| 一本色道久久综合狠狠躁的推荐| 欧美一级久久久| 中文字幕一区三区| 久久成人免费网站| 欧美午夜影院一区| 国产欧美日韩另类视频免费观看| 午夜激情一区二区三区| 99久久精品国产麻豆演员表| 日韩女优电影在线观看| 一个色综合网站| 国产精品小仙女| 91精品国产黑色紧身裤美女| 亚洲色欲色欲www在线观看| 国产一区二区三区在线观看免费| 精品视频一区二区不卡| 亚洲欧洲av在线| 国产一区视频网站| 日韩一区二区电影网| 亚洲一区二区五区| 色欧美日韩亚洲| 中文字幕佐山爱一区二区免费| 久久99国产精品成人| 555www色欧美视频| 一区二区三区精品在线观看| 99久久精品免费看国产| 欧美经典一区二区| 国产老女人精品毛片久久| 精品国产一区二区三区四区四| 蜜桃久久精品一区二区| 欧美精品xxxxbbbb| 午夜精品久久久久| 欧美精品粉嫩高潮一区二区| 午夜精品国产更新| 欧美精品久久99久久在免费线| 亚洲一区二区av在线| 欧美三级三级三级| 亚洲一区二区三区自拍| 在线看日韩精品电影| 亚洲一区二区三区四区五区中文| 色综合色狠狠综合色| 亚洲午夜免费视频|