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

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

?? coldet.h

?? Direct3D游戲編程入門教程源代碼.rar
?? H
字號:
/*   ColDet - C++ 3D Collision Detection Library
 *   Copyright (C) 2000   Amir Geva
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 * 
 * This library 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
 * Library General Public License for more details.
 * 
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 *
 * Any comments, questions and bug reports send to:
 *   photon@photoneffect.com
 *
 * Or visit the home page: http://photoneffect.com/coldet/
 */
/** \file coldet.h
    3D Collision Detection

    Interface for the library.  
    Isolated from any implementation details.
*/
#ifndef H_COLDET
#define H_COLDET

#ifndef EXPORT
#define EXPORT
#endif

/** Collision Model.  Will represent the mesh to be tested for
    collisions.  It has to be notified of all triangles, via
    addTriangle()
    After all triangles are added, a call to finalize() will
    process the information and prepare for collision tests.
    Call collision() to check for a collision

    Note: Transformations must not contain scaling.
*/
class CollisionModel3D
{
public:
  virtual ~CollisionModel3D() {}

  /** Optional: Optimization for construction speed.
      If you know the number of triangles. */
  virtual void setTriangleNumber(int num) = 0;

  /** Use any of the forms of this functions to enter the coordinates
      of the model's triangles. */
  virtual void addTriangle(float x1, float y1, float z1,
                           float x2, float y2, float z2,
                           float x3, float y3, float z3) = 0;
  virtual void addTriangle(float v1[3], float v2[3], float v3[3]) = 0;

  /** All triangles have been added, process model. */
  virtual void finalize() = 0;

  /** The the current affine matrix for the model.
      See transform.txt for format information */
  virtual void setTransform(float m[16]) = 0;

  /** Check for collision with another model.
      Do not mix model types here.

      MaxProcessingTime determines the maximum time in milliseconds
      to check for collision.  If a rejection is not found by that
      time, the function will return true.

      AccuracyDepth is not yet supported.

      other_transform allows overriding the other model's 
      transform, by supplying an alternative one.
      This can be useful when testing a model against itself
      with different orientations.
  */
  virtual bool collision(CollisionModel3D* other,
                         int AccuracyDepth=-1,
                         int MaxProcessingTime=0,
                         float* other_transform=0) = 0;

  /** Returns true if the ray given in world space coordinates
      intersects with the object.  
      getCollidingTriangles() and getCollisionPoint() can be
      used to retrieve information about a collision.
      If closest if false, the first triangle that collides with
      the ray is used.  Otherwise the closest one will be used.
      Closest triangle searching will slow the test considerably.
      The default ray is a standard infinite ray.  However, using
      segmin and segmax you can define a line segment along the
      ray.
  */
  virtual bool rayCollision(float origin[3],
                            float direction[3],
                            bool closest=false,
                            float segmin=0.0f,
                            float segmax=3.4e+38F) = 0;

  /** Returns true if the given sphere collides with the model.
      getCollidingTriangles() and getCollisionPoint() can be
      used to retrieve information about a collision.
  */
  virtual bool sphereCollision(float origin[3],
                               float radius) = 0;

  /** Retrieve the pair of triangles that collided.
      Only valid after a call to collision() that returned true.
      t1 is this model's triangle and t2 is the other one.
      In case of ray or sphere collision, only t1 will be valid.
      The coordinates will be in _this_ model's coordinate space,
      unless ModelSpace is false, in which case, coordinates will
      be transformed by the model's current transform to world space.
  */
  virtual bool getCollidingTriangles(float t1[9], float t2[9], bool ModelSpace=true) = 0;

  /** Retrieve the pair of triangles indices that collided.
      Only valid after a call to collision() that returned true.
      t1 belongs to _this_ model, while t2 is in the other one. 
  */
  virtual bool getCollidingTriangles(int& t1, int& t2) = 0;

  /** Retrieve the detected collision point. 
      Only valid after a call to collision()
      that returned true.
      The coordinates will be in _this_ model's coordinate space,
      unless ModelSpace is false, in which case, coordinates will
      be transformed by the model's current transform to world space.
  */
  virtual bool getCollisionPoint(float p[3], bool ModelSpace=true) = 0;
};

/** Timeout exception class.  Exception will be thrown if
    the detection algorithm could not complete within
    the given time limit. */
class TimeoutExpired {};

/** Inconsistency exception. Exception will be thrown if
    the model is inconsistent.  
    Examples: 
      Checking for collisions before calling finalize()
      Trying to add triangles after calling finalize()  */
class Inconsistency {};

/** Create a new collision model object.
    Use delete when finished with it. 

    Setting Static to true indicates that the model does not
    move a lot, and certain calculations can be done every time
    its transform changes instead of every collision test. 
*/
EXPORT CollisionModel3D* newCollisionModel3D(bool Static=false);



//////////////////////////////////////////////
// Utility Functions
//////////////////////////////////////////////

/** Checks for intersection between a ray and a sphere.
    center, radius define the sphere
    origin, direction define the ray
    point will contain point of intersection, if one is found.
*/
bool SphereRayCollision(float center[3], float radius,
                        float origin[3], float direction[3],
                        float point[3]);

/** Checks for intersection between 2 spheres. */
bool SphereSphereCollision(float c1[3], float r1,
                           float c2[3], float r2);



#endif // H_COLDET

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合激情五月| 国产人妖乱国产精品人妖| 91麻豆精品国产91久久久久| 精品久久久久香蕉网| 久久久激情视频| 亚洲国产日韩av| 国产乱子伦一区二区三区国色天香| 成人爱爱电影网址| 日韩一级黄色大片| 中文字幕一区二区不卡| 日日欢夜夜爽一区| 不卡av电影在线播放| 欧美高清一级片在线| 中文字幕一区二区三区在线观看 | 国产亚洲人成网站| 日韩毛片精品高清免费| 激情丁香综合五月| 欧美色区777第一页| 国产精品久久久久毛片软件| 免费精品视频最新在线| 色综合激情久久| 国产亚洲成aⅴ人片在线观看| 亚洲综合在线视频| eeuss鲁一区二区三区| 日韩一二在线观看| 亚洲自拍欧美精品| 成人国产精品免费网站| 久久免费看少妇高潮| 亚洲地区一二三色| 91麻豆精品秘密| 国产欧美日韩激情| 极品少妇xxxx精品少妇| 欧美日本韩国一区二区三区视频| 国产精品传媒视频| 成人精品国产福利| 久久久久久久综合狠狠综合| 日韩成人精品在线| 欧美色网一区二区| 亚洲综合丁香婷婷六月香| 99久久婷婷国产综合精品 | 喷白浆一区二区| 欧美丝袜丝交足nylons| 一个色在线综合| 欧美性色欧美a在线播放| 亚洲欧美一区二区久久| 成人app在线| 亚洲欧洲日韩在线| 色噜噜狠狠一区二区三区果冻| 亚洲国产精品传媒在线观看| 国产99精品国产| 国产精品剧情在线亚洲| 成人激情校园春色| 国产精品的网站| 色综合久久88色综合天天免费| 综合亚洲深深色噜噜狠狠网站| 国产成人免费视频| 国产精品伦一区二区三级视频| 国产成人免费视| 亚洲日本在线视频观看| 欧洲一区在线电影| 午夜精品一区二区三区三上悠亚| 欧美日本在线观看| 奇米精品一区二区三区在线观看| 精品久久久网站| 成人国产免费视频| 亚洲综合在线第一页| 欧美吻胸吃奶大尺度电影 | 91精品办公室少妇高潮对白| 亚洲美女区一区| 在线不卡中文字幕播放| 青娱乐精品视频| 久久精品视频一区| 99国产精品国产精品久久| 国产精品网站导航| 欧美专区亚洲专区| 男人的天堂久久精品| 国产精品久久久久久久久免费相片| 欧美美女直播网站| 91在线无精精品入口| 韩国女主播一区二区三区| 亚洲精品五月天| 国产亚洲制服色| 日韩情涩欧美日韩视频| 91福利社在线观看| 国产suv精品一区二区三区| 免费人成在线不卡| 依依成人精品视频| 国产精品乱码一区二三区小蝌蚪| 91麻豆精品国产91久久久使用方法 | 毛片av一区二区| 久久久夜色精品亚洲| 欧美电影一区二区| 91国偷自产一区二区三区观看| 国产精品白丝av| 精品一区二区在线观看| 丝袜诱惑亚洲看片| 亚洲制服欧美中文字幕中文字幕| 欧美激情综合在线| 久久亚洲私人国产精品va媚药| 欧美狂野另类xxxxoooo| 欧美性感一类影片在线播放| 99久久免费精品| 99久久精品免费看| 成人aa视频在线观看| 成人动漫一区二区三区| 成人白浆超碰人人人人| 国产99精品国产| 成人一区二区在线观看| 国产91精品露脸国语对白| 国产成人一区二区精品非洲| 国产成人av电影| 成人短视频下载| va亚洲va日韩不卡在线观看| 波多野结衣精品在线| av影院午夜一区| 91麻豆福利精品推荐| 91香蕉视频污| 色婷婷激情久久| 欧美午夜在线观看| 欧美日韩精品专区| 欧美一区二区视频在线观看2020| 欧美精品日韩综合在线| 日韩欧美成人一区二区| 久久亚洲二区三区| 国产精品福利一区二区| 亚洲欧美另类综合偷拍| 亚洲激情成人在线| 天堂成人免费av电影一区| 久久精品国产网站| 国产白丝精品91爽爽久久| 一本色道综合亚洲| 欧美三级电影在线看| 欧美变态口味重另类| 欧美激情在线一区二区| 亚洲精品成人少妇| 日韩电影免费一区| 国产成人在线影院| 欧美性视频一区二区三区| 日韩无一区二区| 国产精品拍天天在线| 亚洲一区二区三区美女| 久久精品国产久精国产| 东方欧美亚洲色图在线| 在线精品视频免费观看| 日韩免费看网站| 亚洲欧洲日韩一区二区三区| 日韩中文字幕一区二区三区| 国产一区二三区| 欧美又粗又大又爽| 26uuu色噜噜精品一区二区| 亚洲人妖av一区二区| 美女视频网站久久| 色婷婷久久久亚洲一区二区三区| 欧美电影影音先锋| 亚洲欧洲国产日韩| 麻豆91在线播放免费| 色女孩综合影院| 久久色中文字幕| 亚洲图片欧美色图| 国产99一区视频免费| 制服丝袜一区二区三区| 日韩毛片精品高清免费| 国产最新精品精品你懂的| 欧洲一区二区三区免费视频| 久久久精品tv| 看电影不卡的网站| 精品视频在线视频| 成人欧美一区二区三区| 国产一区二区三区四区五区入口 | 男女性色大片免费观看一区二区 | 国产视频亚洲色图| 男女男精品视频| 91国产视频在线观看| 国产亚洲精品超碰| 久久99精品久久久久久| 欧美日高清视频| 一区二区三区自拍| 成人高清视频免费观看| 欧美xxx久久| 青青草成人在线观看| 欧美丝袜丝交足nylons| 国产精品免费免费| 国产成人av自拍| 久久综合九色综合欧美98| 天堂va蜜桃一区二区三区 | 国产高清不卡一区| 日韩欧美视频一区| 午夜亚洲国产au精品一区二区| 91日韩在线专区| 日韩毛片视频在线看| av成人动漫在线观看| 欧美韩国日本综合| 国产成a人亚洲| 中文字幕第一页久久| 成人av在线一区二区| 中文字幕一区二区日韩精品绯色| 成人激情校园春色| 亚洲色图色小说| 在线视频欧美精品| 亚洲国产精品久久人人爱蜜臀 |