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

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

?? polyhedralboundedsolidsetoperator.java

?? 基于java的3d開發庫。對坐java3d的朋友有很大的幫助。
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
        middle.normalize();        return middle;    }    /**    Following program [MANT1988].15.8.    */    private static    ArrayList<_PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex>    nbrpreproc(_PolyhedralBoundedSolidVertex v)    {        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex n, nold;        Vector3D bisec;        _PolyhedralBoundedSolidHalfEdge he;        ArrayList<_PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex> nb;        nb = new ArrayList<_PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex>();        he = v.emanatingHalfEdge;        Vector3D oldref2;        do {            n = new _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex();            n.he = he;            n.wide = false;            n.ref1 = he.previous().startingVertex.position.substract(                he.startingVertex.position);                n.ref2 = he.next().startingVertex.position.substract(                he.startingVertex.position);            n.ref12 = n.ref1.crossProduct(n.ref2);            if ( (n.ref12.length() < VSDK.EPSILON) ||                 (n.ref12.dotProduct(he.parentLoop.parentFace.containingPlane.getNormal()) > 0.0 ) ) {                // Inside this conditional means: current vertex is a wide one                if ( (n.ref12.length() < VSDK.EPSILON) ) {                    bisec = inside(he);                }                else {                    bisec = n.ref1.add(n.ref2);                    bisec = bisec.multiply(-1);                }                oldref2 = n.ref2;                n.ref2 = bisec;                n.ref12 = n.ref1.crossProduct(n.ref2);                nold = n;                nb.add(n);                n = new _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex();                n.he = he;                n.ref2 = oldref2;                n.ref1 = bisec;                n.ref12 = n.ref1.crossProduct(n.ref2);                n.wide = true;            }            nb.add(n);            he = (he.mirrorHalfEdge()).next();        } while( he != v.emanatingHalfEdge );        return nb;    }    private static double angleFromVectors(Vector3D u, Vector3D v, Vector3D a)    {        double x, y;        double an;        x = a.dotProduct(u);        y = a.dotProduct(v);        an = Math.acos(x);        if ( y < 0 ) an *= -1;        return an;    }    /**    Given two coplanar sectors that share a common edge, this method determine    if the sectors are edge neighbors (this case returs false) or overlaping    sectors (this case returns true).    */    private static boolean sectorOverSector(        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex na,        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex nb,        Vector3D commonEdge    )    {        Vector3D boundingEdgeA = null;        Vector3D boundingEdgeB = null;        if ( colinearVectorsWithDirection(na.ref1, commonEdge) ) {            boundingEdgeA = na.ref2;        }        else {            boundingEdgeA = na.ref1;        }        if ( colinearVectorsWithDirection(nb.ref1, commonEdge) ) {            boundingEdgeB = nb.ref2;        }        else {            boundingEdgeB = nb.ref1;        }        if ( colinearVectorsWithDirection(boundingEdgeA, boundingEdgeB) ) {            return true;        }        return false;    }    /**    Checks if two coplanar sectors overlaps, by doing a "sector within" test    for coplanar sectors: If the two given sectors are coplanar and with    overlaping faces:      - If sectors only intersects in one point returns false.      - If sectors intersects on a line or area returns true.    Following section [MANT1988].15.6.2. Note that this operation is not    elaborated on [MANT1988], but left as an excercise.    PRE: Given sectors are "coplanar".    */    private static boolean sectoroverlap(        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex na,        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex nb)    {        //- Convert side vectors of sectors into angles -------------------        double a1, a2;        double b1, b2;        Vector3D u, v, a, b, c, n;        n = na.he.parentLoop.parentFace.containingPlane.getNormal();        u = new Vector3D(na.ref1);        u.normalize();        v = n.crossProduct(u);        v.normalize();        a = new Vector3D(na.ref2);        a.normalize();        b = new Vector3D(nb.ref1);        b.normalize();        c = new Vector3D(nb.ref2);        c.normalize();        a1 = angleFromVectors(u, v, u);        a2 = angleFromVectors(u, v, a);        b1 = angleFromVectors(u, v, b);        b2 = angleFromVectors(u, v, c);        //- Order the angles in ascending order angle intervals -----------        // Given angles are between -180 and 180 degrees        double t;        if ( a1 > a2 ) {            t = a1;            a1 = a2;            a2 = t;        }        if ( b1 > b2 ) {            t = b1;            b1 = b2;            b2 = t;        }        //- Calculate interval intersection -------------------------------        if ( a2 + VSDK.EPSILON > b1 - VSDK.EPSILON ) {            if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {                System.out.print(" <TRUE>");            }            return true;        }        if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {            System.out.print(" <FALSE>");        }        return false;    }    /**    Following program [MANT1988].15.9. According to the sector intersection    test from section [MANT1988].15.6.2, the variables (with respect to    the central vertex on a given sector) are:      - dir is the vector from the starting vertex of the sector, pointing        on the direction of the intersection line with another sector, or        `int` in figure [MANT1988].15.8. and equation [MANT1988].15.5.      - ref1 and ref2 are the same as in figure [MANT1988].15.8. and        equation [MANT1988].15.5.      - ref12 is the cross product of ref1 and ref2, or `ref` in figure        [MANT1988].15.8. and equation [MANT1988].15.5.      - c1 is the cross product of ref1 and dir, or `test1` in figure        [MANT1988].15.8. and equation [MANT1988].15.5.      - c2 is the cross product of dir and ref2, or `test2` in figure        [MANT1988].15.8. and equation [MANT1988].15.5.    */    private static boolean sctrwitthin(Vector3D dir, Vector3D ref1,                            Vector3D ref2, Vector3D ref12)    {        Vector3D c1, c2;        int t1, t2;        c1 = dir.crossProduct(ref1);        if ( c1.length() < VSDK.EPSILON ) {            return (ref1.dotProduct(dir) > 0.0);        }        c2 = ref2.crossProduct(dir);        if ( c2.length() < VSDK.EPSILON ) {            return (ref2.dotProduct(dir) > 0.0);        }        t1 = PolyhedralBoundedSolid.compareValue(c1.dotProduct(ref12), 0.0, VSDK.EPSILON);        t2 = PolyhedralBoundedSolid.compareValue(c2.dotProduct(ref12), 0.0, VSDK.EPSILON);        return ( t1 < 0.0 && t2 < 0.0 );    }    private static boolean sctrwitthinProper(Vector3D dir, Vector3D ref1,                                             Vector3D ref2, Vector3D ref12)    {        if ( colinearVectors(dir, ref1) || colinearVectors(dir, ref2) ) {            return false;        }        return sctrwitthin(dir, ref1, ref2, ref12);    }    /**    Sector intersection test.    Following program [MANT1988].15.9. and section [MANT1988].15.6.2.    */    private static boolean vertexVertexSectorIntersectionTest(int i, int j)    {        //-----------------------------------------------------------------        _PolyhedralBoundedSolidHalfEdge h1, h2;        boolean c1, c2;        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex na, nb;        na = nba.get(i);        nb = nbb.get(j);        h1 = na.he;        h2 = nb.he;        //-----------------------------------------------------------------        // Here, n1 and n2 are the plane normals for containing faces of        // sectors i and j, as in figure [MANT1988].15.7.        Vector3D n1, n2;        Vector3D intrs;        n1 = h1.parentLoop.parentFace.containingPlane.getNormal();        n2 = h2.parentLoop.parentFace.containingPlane.getNormal();        intrs = n1.crossProduct(n2);        //-----------------------------------------------------------------        if ( intrs.length() < VSDK.EPSILON ) {            if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {                System.out.print(" <coplanar>");            }            return sectoroverlap(na, nb);        }        //-----------------------------------------------------------------        c1 = sctrwitthin(intrs, na.ref1, na.ref2, na.ref12);        c2 = sctrwitthin(intrs, nb.ref1, nb.ref2, nb.ref12);        if ( c1 && c2 ) {            if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {                System.out.print(" <TRUE>");            }            return true;        }        else {            intrs = intrs.multiply(-1);            c1 = sctrwitthin(intrs, na.ref1, na.ref2, na.ref12);            c2 = sctrwitthin(intrs, nb.ref1, nb.ref2, nb.ref12);            if ( c1 && c2 ) {                if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {                    System.out.print(" <TRUE>");                }                return true;            }        }        if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {            System.out.print(" <FALSE>");        }        return false;    }    /**    Given a pair of coincident vertices `va` (on solid A) and `vb` (on solid    B), this method creates the lists `nba`, `nbb` and `sectors`, as explained    in section [MANT1988].15.6.2. and program [MANT1988].15.7.    Note that from all possible sector pairs, this method does not include    in the `sectors` set any sector pair that touches just in one point.    */    private static void vertexVertexGetNeighborhood(        _PolyhedralBoundedSolidVertex va,        _PolyhedralBoundedSolidVertex vb)    {        //-----------------------------------------------------------------        int i;        nba = nbrpreproc(va);        nbb = nbrpreproc(vb);        sectors = new ArrayList<_PolyhedralBoundedSolidSetOperatorSectorClassificationOnSector>();        if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {            System.out.println("   - NBA list of neighbor sectors for vertex on {A}:");            for ( i = 0; i < nba.size(); i++ ) {                System.out.println("    . A[" + (i+1) + "]: " + nba.get(i));            }            System.out.println("   - NBB list of neighbor sectors for vertex on {B}:");            for ( i = 0; i < nbb.size(); i++ ) {                System.out.println("    . B[" + (i+1) + "]: " + nbb.get(i));            }        }        //-----------------------------------------------------------------        _PolyhedralBoundedSolidHalfEdge ha, hb;        double d1, d2, d3, d4;        int j;        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnSector s;        Vector3D na, nb;        _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex xa, xb;        if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {            System.out.println("   - Initial intersection tests between sectors (false intersections are sectors touching on a single point):");        }        for ( i = 0; i < nba.size(); i++ ) {            for ( j = 0; j < nbb.size(); j++ ) {                if ( (debugFlags & DEBUG_04_VERTEXVERTEXCLASIFFIER) != 0 ) {                    System.out.print("    . A[" + (i+1) + "] / B[" + (j+1) + "]:");                }                if ( vertexVertexSectorIntersectionTest(i, j) ) {                    s = new _PolyhedralBoundedSolidSetOperatorSectorClassificationOnSector();                    s.secta = i;                    s.sectb = j;                    xa = nba.get(i);                    xb = nbb.get(j);                    s.hea = xa.he;                    s.heb = xb.he;                    s.wa = xa.wide;                    s.wb = xb.wide;                    na = xa.he.parentLoop.parentFace.containingPlane.getNormal();                    nb = xb.he.parentLoop.parentFace.containingPlane.getNormal();                    d1 = nb.dotProduct(xa.ref1);                    d2 = nb.dotProduct(xa.ref2);                    d3 = na.dotProduct(xb.ref1);                    d4 = na.dotProduct(xb.ref2);                    s.s1a = PolyhedralBoundedSolid.compareValue(d1, 0.0, VSDK.EPSILON);                    s.s2a = PolyhedralBoundedSolid.compareValue(d2, 0.0, VSDK.EPSILON);                    s.s1b = PolyhedralBoundedSolid.comp

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色视频| 国模大尺度一区二区三区| 奇米色777欧美一区二区| 成人av一区二区三区| 欧美一区二区三区婷婷月色| 中文字幕在线不卡一区 | 欧美一区二区黄| 成人免费在线视频| 国产精品99久久久久久似苏梦涵| 91久久奴性调教| 国产精品三级在线观看| 美女视频网站黄色亚洲| 欧美羞羞免费网站| 亚洲男人的天堂在线aⅴ视频| 国产一区二区精品久久99| 宅男在线国产精品| 亚洲国产欧美在线人成| 97精品久久久午夜一区二区三区| 欧美成人一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 一本久久精品一区二区| 国产精品成人在线观看| 国产**成人网毛片九色| 久久久久久久久久久久电影 | 欧美日韩国产免费一区二区| 中文字幕一区二区5566日韩| 国产福利精品导航| 久久久久久久久久久久久女国产乱| 日本美女视频一区二区| 91麻豆精品国产无毒不卡在线观看| 一区二区三区加勒比av| 欧美中文字幕亚洲一区二区va在线| 18涩涩午夜精品.www| 国产suv精品一区二区三区| 久久久三级国产网站| 加勒比av一区二区| 欧美电影免费提供在线观看| 奇米影视在线99精品| 欧美一区二区三区视频免费| 三级影片在线观看欧美日韩一区二区| 欧美视频三区在线播放| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲成人av一区二区| 欧美性猛交xxxxxxxx| 香蕉加勒比综合久久| 2020国产精品| 国产999精品久久| 成人欧美一区二区三区小说| 欧美影院一区二区三区| 日日欢夜夜爽一区| 精品国产乱码久久久久久夜甘婷婷| 精品在线一区二区三区| 国产欧美日产一区| 色综合视频在线观看| 亚洲1区2区3区视频| 日韩精品一区二区三区三区免费| 激情综合色综合久久| 中文字幕免费不卡| 欧美午夜片在线看| 九九**精品视频免费播放| 国产精品美女久久久久久久 | 亚洲综合丁香婷婷六月香| 3d动漫精品啪啪一区二区竹菊| 国产自产2019最新不卡| 亚洲人成影院在线观看| 日韩小视频在线观看专区| 国产酒店精品激情| 亚洲一区二区不卡免费| 久久人人爽爽爽人久久久| 91国偷自产一区二区开放时间| 蜜桃久久久久久| 最新欧美精品一区二区三区| 宅男噜噜噜66一区二区66| 成人精品电影在线观看| 亚洲第四色夜色| 国产精品亲子乱子伦xxxx裸| 91精选在线观看| 99热精品国产| 成人免费毛片a| 蜜桃视频第一区免费观看| 亚洲日本在线视频观看| 精品乱码亚洲一区二区不卡| 色94色欧美sute亚洲线路二| 国模套图日韩精品一区二区 | 亚洲欧美偷拍三级| 欧美精品一区二区三区一线天视频 | 欧美三区在线视频| 成人在线视频首页| 九一久久久久久| 亚洲成av人片一区二区三区| 中文欧美字幕免费| www国产精品av| 91精品国产色综合久久不卡蜜臀| 91亚洲精华国产精华精华液| 国产精品综合久久| 开心九九激情九九欧美日韩精美视频电影| 国产精品美女一区二区三区| 精品国产三级电影在线观看| 欧美日本在线播放| 欧美做爰猛烈大尺度电影无法无天| 国产精品白丝jk白祙喷水网站| 蜜臀av在线播放一区二区三区| 亚洲乱码国产乱码精品精的特点 | 一区二区免费在线播放| 国产精品青草综合久久久久99| 26uuu久久天堂性欧美| 日韩一级在线观看| 91精品国产91久久久久久最新毛片 | 91日韩一区二区三区| 国产成人啪午夜精品网站男同| 精品制服美女久久| 经典三级视频一区| 国产乱码精品一区二区三区五月婷| 日韩国产欧美在线观看| 日本中文字幕一区二区视频| 午夜a成v人精品| 天天av天天翘天天综合网 | 国产精品1区2区3区| 国产一区二区视频在线| 久久99在线观看| 国产精品乡下勾搭老头1| 国产中文字幕一区| 国产精品69久久久久水密桃| 国产精品77777竹菊影视小说| 国产高清一区日本| 成人av网站在线观看免费| 91亚洲大成网污www| 在线观看亚洲精品视频| 欧美精品 日韩| 日韩精品中文字幕一区二区三区 | 久久天天做天天爱综合色| 精品少妇一区二区三区在线视频| 精品精品欲导航| 国产婷婷精品av在线| 亚洲色图欧洲色图婷婷| 亚洲高清免费在线| 精品一区二区免费视频| 国产一区 二区| 91麻豆蜜桃一区二区三区| 欧美日韩在线精品一区二区三区激情| 欧美精品自拍偷拍动漫精品| ww亚洲ww在线观看国产| 国产精品成人免费在线| 天堂久久一区二区三区| 日本欧美韩国一区三区| 成人午夜激情影院| 欧美日韩三级一区二区| xvideos.蜜桃一区二区| 亚洲综合偷拍欧美一区色| 久久99蜜桃精品| 91玉足脚交白嫩脚丫在线播放| 欧美一区二区视频免费观看| 中文字幕精品综合| 午夜精品久久久久久久蜜桃app| 精品一区二区三区日韩| 91在线国产福利| 精品动漫一区二区三区在线观看| 一区二区三区四区在线播放 | 在线中文字幕不卡| 亚洲精品在线观看视频| 亚洲一区二区三区免费视频| 国产91色综合久久免费分享| 在线不卡免费欧美| 亚洲特级片在线| 精品亚洲国产成人av制服丝袜| 99国产精品久| 日韩欧美在线影院| 亚洲国产精品成人综合| 麻豆国产一区二区| av亚洲精华国产精华精华| 欧美日韩电影在线播放| 综合久久给合久久狠狠狠97色| 天天av天天翘天天综合网色鬼国产 | 日本高清不卡视频| www国产亚洲精品久久麻豆| 欧美成人综合网站| 亚洲三级小视频| 国产综合久久久久久久久久久久| 91成人看片片| 久久综合国产精品| 激情文学综合网| 欧美午夜精品久久久久久超碰 | 国产一区在线不卡| 国产成人午夜视频| 欧美精品久久一区| 中文字幕永久在线不卡| 国内精品伊人久久久久影院对白| 欧美丝袜自拍制服另类| 日本一区二区免费在线| 日产国产高清一区二区三区| 99久久精品国产导航| 国产精品久久99| 极品少妇一区二区| 欧美精品久久一区| 首页欧美精品中文字幕| 91国偷自产一区二区三区成为亚洲经典 | 成人综合激情网| 精品日韩在线一区| 七七婷婷婷婷精品国产| 91高清在线观看|