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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? quad.c

?? [Game.Programming].Academic - Graphics Gems (6 books source code)
?? C
字號(hào):
/* ------------------------------------------------------------------------- *\   QUAD.C :   by Christophe Schlick and Gilles Subrenat (15 May 1994)   "Ray Intersection of Tessellated Surfaces : Quadrangles versus Triangles"   in Graphics Gems V (edited by A. Paeth), Academic Press\* ------------------------------------------------------------------------- */#include "quad.h"/*** Macro definitions*/#define MY_TOL                ((real) 0.0001)#define LARGEST_COMPONENT(A)  (ABS((A).x) > ABS((A).y) ? \                              (ABS((A).x) > ABS((A).z) ? 'x' : 'z') : \                              (ABS((A).y) > ABS((A).z) ? 'y' : 'z'))/*** Check if the point is in the quadrangle*/static bool point_in_quad (QUAD *Quad, HIT *Hit){    char       LargestComponent;             /* of the normal vector         */    realvec2   A, B, C, D;                   /* Projected vertices           */    realvec2   M;                            /* Projected intersection point */    realvec2   AB, BC, CD, AD, AM, AE;       /* Miscellanous 3D-vectors      */    real       u, v;                         /* Parametric coordinates       */    real       a, b, c, SqrtDelta;           /* Quadratic equation           */    bool       Intersection = FALSE;         /* Intersection flag            */    realvec2   Vector;                       /* Temporary 2D-vector          */    /*    ** Projection on the plane that is most parallel to the facet    */    LargestComponent = LARGEST_COMPONENT(Quad->Normal);    if (LargestComponent == 'x') {        A.x = Quad->A.y; B.x = Quad->B.y; C.x = Quad->C.y; D.x = Quad->D.y;        M.x = Hit->Point.y;    }    else {        A.x = Quad->A.x; B.x = Quad->B.x; C.x = Quad->C.x; D.x = Quad->D.x;        M.x = Hit->Point.x;    }    if (LargestComponent == 'z') {        A.y = Quad->A.y; B.y = Quad->B.y; C.y = Quad->C.y; D.y = Quad->D.y;        M.y = Hit->Point.y;    }    else {        A.y = Quad->A.z; B.y = Quad->B.z; C.y = Quad->C.z; D.y = Quad->D.z;        M.y = Hit->Point.z;    }    SUB_VEC2 (AB, B, A); SUB_VEC2 (BC, C, B);    SUB_VEC2 (CD, D, C); SUB_VEC2 (AD, D, A);    ADD_VEC2 (AE, CD, AB); NEG_VEC2 (AE, AE); SUB_VEC2 (AM, M, A);    if (ZERO_TOL (DELTA_VEC2(AB, CD), MY_TOL))             /* case AB // CD */    {        SUB_VEC2 (Vector, AB, CD);        v = DELTA_VEC2(AM, Vector) / DELTA_VEC2(AD, Vector);        if ((v >= 0.0) && (v <= 1.0)) {            b = DELTA_VEC2(AB, AD) - DELTA_VEC2(AM, AE);            c = DELTA_VEC2 (AM, AD);            u = ZERO_TOL(b, MY_TOL) ? -1.0 : c/b;            Intersection = ((u >= 0.0) && (u <= 1.0));        }    }    else if (ZERO_TOL(DELTA_VEC2(BC, AD), MY_TOL))         /* case AD // BC */    {        ADD_VEC2 (Vector, AD, BC);        u = DELTA_VEC2(AM, Vector) / DELTA_VEC2(AB, Vector);        if ((u >= 0.0) && (u <= 1.0)) {            b = DELTA_VEC2(AD, AB) - DELTA_VEC2(AM, AE);            c = DELTA_VEC2 (AM, AB);            v = ZERO_TOL(b, MY_TOL) ? -1.0 : c/b;            Intersection = ((v >= 0.0) && (v <= 1.0));        }    }    else                                                    /* general case */    {        a = DELTA_VEC2(AB, AE); c = - DELTA_VEC2 (AM,AD);        b = DELTA_VEC2(AB, AD) - DELTA_VEC2(AM, AE);        a = -0.5/a; b *= a; c *= (a + a); SqrtDelta = b*b + c;        if (SqrtDelta >= 0.0) {            SqrtDelta = sqrt(SqrtDelta);            u = b - SqrtDelta;            if ((u < 0.0) || (u > 1.0))        /* we want u between 0 and 1 */                u = b + SqrtDelta;            if ((u >= 0.0) && (u <= 1.0)) {                v = AD.x + u * AE.x;                if (ZERO_TOL(v, MY_TOL))                    v = (AM.y - u * AB.y) / (AD.y + u * AE.y);                else                    v = (AM.x - u * AB.x) / v;                Intersection = ((v >= 0.0) && (v <= 1.0));            }        }    }    if (Intersection) {        Hit->u = u;        Hit->v = v;    }    return (Intersection);}/*** Search for an intersection between a quadrangle and a ray*/bool hit_ray_quad (RAY *Ray, QUAD *Quad, HIT *Hit){    realvec3     Point;    /* if the ray is parallel to the quadrangle, there is no intersection */    Hit->Distance = DOT_VEC3 (Ray->Vector, Quad->Normal);    if (ZERO_TOL(Hit->Distance, MY_TOL)) return (FALSE);    /* compute ray intersection with the plane of the quadrangle */    SUB_VEC3 (Point, Quad->A, Ray->Point);    Hit->Distance = DOT_VEC3 (Point, Quad->Normal) / Hit->Distance;    MULS_VEC3 (Hit->Point, Ray->Vector, Hit->Distance);    INC_VEC3 (Hit->Point, Ray->Point);    /* is the point in the quadrangle ? */    return (point_in_quad(Quad, Hit));}/* ------------------------------------------------------------------------- */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费亚洲电影| 亚洲一区欧美一区| 欧美精品少妇一区二区三区| 亚洲精品视频在线| 欧美日韩成人在线| eeuss鲁片一区二区三区| 国产一区在线观看视频| 亚洲欧美日韩中文播放| 精品久久久久久久久久久久久久久久久 | 亚洲精品一卡二卡| 国产精品沙发午睡系列990531| 久久婷婷成人综合色| 精品国产91久久久久久久妲己| 亚洲国产成人精品视频| 日韩欧美专区在线| 精品国产三级a在线观看| 日韩一区二区电影| 精品国精品自拍自在线| 67194成人在线观看| 欧美一区二区国产| 精品成人免费观看| 一色屋精品亚洲香蕉网站| 亚洲欧洲www| 视频一区视频二区中文字幕| 亚洲五码中文字幕| 日韩中文字幕麻豆| 国产传媒欧美日韩成人| 97精品国产露脸对白| 欧美日韩高清影院| 久久久久久久久99精品| 亚洲乱码精品一二三四区日韩在线| 亚洲欧美激情插| 日日欢夜夜爽一区| 成人免费高清在线| 日韩欧美电影在线| 亚洲精品国产第一综合99久久| 国产 日韩 欧美大片| 欧美性xxxxx极品少妇| 久久久精品天堂| 午夜欧美视频在线观看| 成人性生交大片免费| 6080yy午夜一二三区久久| 国产精品嫩草99a| 美女免费视频一区二区| 色猫猫国产区一区二在线视频| 精品日韩在线一区| 一区二区三区在线不卡| 成人在线综合网站| 久久在线观看免费| 久久精品久久精品| 91精品国产福利在线观看| 一区二区国产盗摄色噜噜| 成人综合在线网站| 欧美激情中文不卡| 国产在线视频一区二区三区| 欧美一区二区视频免费观看| 亚洲综合丁香婷婷六月香| 高清beeg欧美| 国产精品久久久久久久久快鸭| 久久99这里只有精品| 精品捆绑美女sm三区| 美腿丝袜亚洲一区| 日韩精品一区二区三区蜜臀| 美国av一区二区| 精品欧美久久久| 国产一区二区在线影院| 久久久精品国产99久久精品芒果| 色婷婷av一区二区三区之一色屋| 国产精品色婷婷久久58| 国产宾馆实践打屁股91| 日韩久久一区二区| 99re66热这里只有精品3直播| 亚洲精品乱码久久久久久| 色综合久久久网| 亚洲国产精品自拍| 制服丝袜日韩国产| 国产成人一区在线| 一区二区三区av电影| 日韩欧美www| 成人性视频免费网站| 亚洲一区影音先锋| 精品1区2区在线观看| 色综合久久天天综合网| 日韩电影一二三区| 欧美激情资源网| 欧美精品xxxxbbbb| 成人午夜av在线| 亚洲一区日韩精品中文字幕| 精品国产乱码久久久久久老虎| 欧美日韩黄色一区二区| 国产一区91精品张津瑜| 亚洲国产精品自拍| 国产精品乱人伦| 欧美日韩不卡在线| 97精品超碰一区二区三区| 激情成人午夜视频| 亚洲一区影音先锋| 国产精品亲子伦对白| 日韩你懂的电影在线观看| 91在线无精精品入口| 大桥未久av一区二区三区中文| 亚洲女同一区二区| 国产精品国产三级国产| 欧美电影免费提供在线观看| 日本福利一区二区| av电影在线不卡| 不卡一区二区三区四区| 国产激情视频一区二区在线观看 | 日韩国产一二三区| 麻豆国产精品777777在线| 国产精品久久久久毛片软件| 欧美精品一区二区三| 成人永久aaa| a美女胸又www黄视频久久| 97精品国产97久久久久久久久久久久 | 黄色日韩三级电影| 成人的网站免费观看| 99国产精品久| 欧美日韩在线播放三区四区| 91麻豆精品国产91久久久久久久久 | 亚洲人一二三区| 亚洲1区2区3区视频| 亚洲午夜一区二区三区| 青青草国产精品亚洲专区无| 久久国产麻豆精品| eeuss鲁一区二区三区| 欧美揉bbbbb揉bbbbb| 久久亚洲捆绑美女| 一区二区三区不卡在线观看| 日韩福利视频网| 91浏览器在线视频| 国产精品免费久久久久| 亚洲自拍都市欧美小说| 黑人精品欧美一区二区蜜桃 | 国产乱码精品一区二区三区av| 国产69精品久久久久777| 91精品蜜臀在线一区尤物| 国产精品伦理在线| 久久精品国产亚洲高清剧情介绍| 欧美成人精品福利| 亚洲男人天堂一区| 极品少妇一区二区| 欧美精品久久久久久久多人混战| 国产精品亲子乱子伦xxxx裸| 日韩电影免费在线看| 日本精品一级二级| 国产三级精品三级在线专区| 日韩影院精彩在线| 欧美性高清videossexo| 怡红院av一区二区三区| 成人丝袜18视频在线观看| 久久久精品中文字幕麻豆发布| 色噜噜狠狠成人中文综合| 欧美三级乱人伦电影| 中文字幕va一区二区三区| 偷拍亚洲欧洲综合| 色欧美日韩亚洲| 亚洲欧美日韩在线播放| 91亚洲国产成人精品一区二三| 日本一区二区三区久久久久久久久不| 久久99在线观看| 久久精品夜夜夜夜久久| 不卡视频在线观看| 亚洲欧美国产高清| 欧美日韩中文另类| 免费在线欧美视频| 欧美精品一区二区在线观看| 国产麻豆精品视频| 国产精品美女久久久久高潮| 91美女在线视频| 石原莉奈在线亚洲二区| 精品久久久久99| youjizz国产精品| 五月天激情综合| 国产丝袜在线精品| 在线观看日韩国产| 国内久久精品视频| 国产精品成人免费精品自在线观看| 色综合久久天天| 国产精品综合在线视频| 亚洲精品高清在线| 91日韩一区二区三区| 日韩高清不卡一区二区三区| 日韩欧美国产综合| 精久久久久久久久久久| 91麻豆文化传媒在线观看| 国产精品色哟哟网站| 粉嫩aⅴ一区二区三区四区 | 99re这里只有精品视频首页| 午夜久久久久久久久久一区二区| 日韩欧美一区二区视频| 国产成人精品免费| 久久99久久精品| 亚洲资源中文字幕| 国产亚洲短视频| 日韩一区二区免费视频| 91丨porny丨国产入口| 国产一区二区在线免费观看| 日韩中文字幕一区二区三区| 亚洲精品免费在线|