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

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

?? polyhedralboundedsolidsetoperator.java

?? 基于java的3d開發庫。對坐java3d的朋友有很大的幫助。
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
//===========================================================================//=-------------------------------------------------------------------------=//= Module history:                                                         =//= - April 1 2008 - Oscar Chavarro: Original base version                  =//=-------------------------------------------------------------------------=//= References:                                                             =//= [MANT1986] Mantyla Martti. "Boolean Operations of 2-Manifolds through   =//=     Vertex Neighborhood Classification". ACM Transactions on Graphics,  =//=     Vol. 5, No. 1, January 1986, pp. 1-29.                              =//= [MANT1988] Mantyla Martti. "An Introduction To Solid Modeling",         =//=     Computer Science Press, 1988.                                       =//= [.wMANT2008] Mantyla Martti. "Personal Home Page", <<shar>> archive     =//=     containing the C programs from [MANT1988]. Available at             =//=     http://www.cs.hut.fi/~mam . Last visited April 12 / 2008.           =//===========================================================================package vsdk.toolkit.processing;// Java classesimport java.util.ArrayList;import java.util.Collections;// VitralSDK classesimport vsdk.toolkit.common.VSDK;import vsdk.toolkit.common.ColorRgb;import vsdk.toolkit.common.Vector3D;import vsdk.toolkit.common.Matrix4x4;import vsdk.toolkit.environment.geometry.Geometry;import vsdk.toolkit.environment.geometry.InfinitePlane;import vsdk.toolkit.environment.geometry.PolyhedralBoundedSolid;import vsdk.toolkit.environment.geometry.polyhedralBoundedSolidNodes._PolyhedralBoundedSolidFace;import vsdk.toolkit.environment.geometry.polyhedralBoundedSolidNodes._PolyhedralBoundedSolidLoop;import vsdk.toolkit.environment.geometry.polyhedralBoundedSolidNodes._PolyhedralBoundedSolidEdge;import vsdk.toolkit.environment.geometry.polyhedralBoundedSolidNodes._PolyhedralBoundedSolidHalfEdge;import vsdk.toolkit.environment.geometry.polyhedralBoundedSolidNodes._PolyhedralBoundedSolidVertex;/**Class `_PolyhedralBoundedSolidSplitterNullEdge` plays a role of a decoratordesign patern for class `_PolyhedralBoundedSolidEdge`, and adds sort-ability.*/class _PolyhedralBoundedSolidSetOperatorNullEdge extends PolyhedralBoundedSolidOperator implements Comparable <_PolyhedralBoundedSolidSetOperatorNullEdge>{    public _PolyhedralBoundedSolidEdge e;    public _PolyhedralBoundedSolidSetOperatorNullEdge(_PolyhedralBoundedSolidEdge e)    {        this.e = e;    }    public int compareTo(_PolyhedralBoundedSolidSetOperatorNullEdge other)    {        Vector3D a;        Vector3D b;        a = this.e.rightHalf.startingVertex.position;        b = other.e.rightHalf.startingVertex.position;        if ( PolyhedralBoundedSolid.compareValue(a.x, b.x, 10*VSDK.EPSILON) != 0 ) {            if ( a.x < b.x ) {                return -1;            }            return 1;        }        else {            if ( PolyhedralBoundedSolid.compareValue(a.y, b.y, 10*VSDK.EPSILON) != 0 ) {                if ( a.y < b.y ) {                    return -1;                }                return 1;            }            else {                if ( a.z < b.z ) {                    return -1;                }                return 1;            }        }    }    public String toString()    {        return e.toString() + " (sorted with respect to position " + this.e.rightHalf.startingVertex.position + ")";    }}/**This class is used to store vertex / halfedge neigborhood information for thevertex/vertex classifier as proposed on section [MANT1988].15.5. and program[MANT1988].15.6.*/class _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex extends PolyhedralBoundedSolidOperator implements Comparable <_PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex>{    public _PolyhedralBoundedSolidHalfEdge he;    public Vector3D ref1;    public Vector3D ref2;    public Vector3D ref12;    public Vector3D referenceLine;    public Vector3D referenceU;    public Vector3D referenceV;    public boolean wide;    public _PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex()    {        referenceLine = null;        referenceU = null;        referenceV = null;    }    public double getAngle()    {        if ( referenceLine == null || referenceU == null || referenceV == null ) {            return -1000;        }        double x, y;        double an;        Vector3D a = ref1;        if ( PolyhedralBoundedSolidSetOperator.colinearVectorsWithDirection(ref1, referenceLine) ) {            a = ref2;        }        Vector3D u, v;        u = new Vector3D(referenceU);        u.normalize();        v = new Vector3D(referenceV);        v.normalize();        a.normalize();        x = a.dotProduct(u);        y = a.dotProduct(v);        an = Math.acos(x);        if ( y < 0 ) an *= -1;        return an;    }    public String toString()    {        String msg;        msg = "R1: " + ref1 + " R2: " + ref2 + " HE " + he.startingVertex.id + "/" + he.next().startingVertex.id + (wide?"(W)":"(nw)");        return msg;    }    public int compareTo(_PolyhedralBoundedSolidSetOperatorSectorClassificationOnVertex other)    {        double a, b;        a = this.getAngle();        b = other.getAngle();        if ( a > b) return 1;        if ( a < b) return -1;        return 0;    }}/**This class is used to store sector / sector neigborhood information for thevertex/vertex classifier as proposed on section [MANT1988].15.5. and program[MANT1988].15.6.*/class _PolyhedralBoundedSolidSetOperatorSectorClassificationOnSector extends PolyhedralBoundedSolidOperator{    public int secta;    public int sectb;    public int s1a;    public int s2a;    public int s1b;    public int s2b;    public boolean intersect;    public _PolyhedralBoundedSolidHalfEdge hea;    public _PolyhedralBoundedSolidHalfEdge heb;    public boolean wa;    public boolean wb;    public static final int ON = 0;    public static final int OUT = 1;    public static final int IN = -1;    private String label(int i)    {        String msg = "<Unknown>";        switch ( i ) {          case ON: msg = "on"; break;          case OUT: msg = "OUT"; break;          case IN: msg = "IN"; break;        }        return msg;    }    public void fillCases()    {        if ( s1a == ON ) {            switch ( s2a ) {            case IN: s1a = OUT; break;            case OUT: s1a = IN; break;            }        }        if ( s2a == ON ) {            switch ( s1a ) {            case IN: s2a = OUT; break;            case OUT: s2a = IN; break;            }        }        if ( s1b == ON ) {            switch ( s2b ) {            case IN: s1b = OUT; break;            case OUT: s1b = IN; break;            }        }        if ( s2b == ON ) {            switch ( s1b ) {            case IN: s2b = OUT; break;            case OUT: s2b = IN; break;            }        }    }    public String toString()    {        String msg = "Sector pair ";        msg = msg + "A[" + (secta+1) + "] / B[" + (sectb+1) + "]: ";        msg = msg + "VERTICES ( " +             hea.startingVertex.id + "-" +             (hea.next()).startingVertex.id + (wa?"(W)":"(nw)") + " / " +             heb.startingVertex.id + "-" +            (heb.next()).startingVertex.id + (wb?"(W)":"(nw)") + " ) - ";        msg = msg + "[" + label(s1a) + "/" + label(s2a) + ", " + label(s1b) + "/" + label(s2b) + "] ";        if ( intersect ) {            msg = msg + "intersecting";        }        else {            msg = msg + "(droped)";        }        if ( s1a != 0 && s1b != 0 && s2a != 0 && s2b != 0 && intersect ) {            msg += " (**) ";        }        return msg;    }}/**This class is used to store vertex / halfedge neigborhood information for thevertex/face classifier, in a similar fashion to as presented in section[MANT1988].14.5, and program [MANT1988].14.3., but biased for the setoperation algorithm as proposed on section [MANT1988].15..1. and problem[MANT1988].15.4.*/class _PolyhedralBoundedSolidSetOperatorSectorClassificationOnFace extends PolyhedralBoundedSolidOperator{    public static final int ABOVE = 1;    public static final int BELOW = -1;    public static final int ON = 0;    public static final int AinB = 11;    public static final int AoutB = 12;    public static final int BinA = 13;    public static final int BoutA = 14;    public static final int AonBplus = 15;    public static final int AonBminus = 16;    public static final int BonAplus = 17;    public static final int BonAminus = 18;    public static final int COPLANAR_FACE = 10;    public static final int INPLANE_EDGE = 20;    public static final int CROSSING_EDGE = 30;    public static final int UNDEFINED = 40;    public _PolyhedralBoundedSolidHalfEdge sector;    public InfinitePlane referencePlane;    public int cl;    // Following attributes are not taken from [MANT1988], and all operations    // on them are fine tunning options aditional to original algorithm.    public boolean isWide = false;    public Vector3D position;    public int situation = UNDEFINED;    public boolean reverse = false;    public _PolyhedralBoundedSolidSetOperatorSectorClassificationOnFace()    {        ;    }    public _PolyhedralBoundedSolidSetOperatorSectorClassificationOnFace(_PolyhedralBoundedSolidSetOperatorSectorClassificationOnFace other)    {        this.sector = other.sector;        this.referencePlane = other.referencePlane;        this.cl = other.cl;        this.isWide = other.isWide;        this.position = other.position;        this.situation = other.situation;            this.reverse = other.reverse;    }    /**    Current method implements the set of changes from table [MANT1988].15.3.    for the edge reclassification rules for the third stage of a vertex/face    classifier.    */    public void applyRules(int op)    {        if ( op == UNION ) {            switch ( cl ) {              case AonBplus:     cl = AoutB;    break;              case AonBminus:    cl = AinB;    break;              case BonAplus:     cl = BinA;    break;              case BonAminus:    cl = BinA;    break;            }        }        else if ( op == INTERSECTION ) {            switch ( cl ) {              case AonBplus:     cl = AinB;    break;              case AonBminus:    cl = AoutB;    break;              case BonAplus:     cl = BoutA;    break;              case BonAminus:    cl = BoutA;    break;            }        }        else if ( op == DIFFERENCE ) {            switch ( cl ) {              case AonBplus:     cl = AinB;    break;              case AonBminus:    cl = AoutB;    break;              case BonAplus:     cl = BoutA;    break;              case BonAminus:    cl = BoutA;    break;            }        }    }    public void updateLabel(int BvsA)    {        InfinitePlane a = sector.parentLoop.parentFace.containingPlane;        InfinitePlane b = referencePlane;        if ( BvsA == 0 ) {            switch ( cl ) {              case ABOVE: cl = AoutB; break;              case BELOW: cl = AinB; break;              case ON:                if ( a.overlapsWith(b, VSDK.EPSILON) ) {                    cl = AonBplus;                }                else {                    cl = AonBminus;                }                break;            }        }        else {            switch ( cl ) {              case ABOVE: cl = BoutA; break;              case BELOW: cl = BinA; break;              case ON:                if ( a.overlapsWith(b, VSDK.EPSILON) ) {                    cl = BonAplus;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲mv在线观看| 一区二区三区日韩欧美| 欧美日韩在线播放一区| av资源网一区| av中文字幕在线不卡| 成人在线视频一区| 粉嫩aⅴ一区二区三区四区| 狠狠色丁香婷婷综合久久片| 黄色日韩三级电影| 国产河南妇女毛片精品久久久| 精彩视频一区二区| 国产福利一区二区| 91女厕偷拍女厕偷拍高清| 日本韩国精品在线| 777色狠狠一区二区三区| 日韩欧美高清在线| 国产三级一区二区三区| 最新国产成人在线观看| 一区二区三区产品免费精品久久75| 亚洲综合在线五月| 亚洲v精品v日韩v欧美v专区 | 精品一区二区三区不卡| 美女一区二区三区在线观看| 国产精品系列在线观看| 91性感美女视频| 日韩三级中文字幕| 国产午夜精品美女毛片视频| 亚洲人成在线观看一区二区| 偷拍一区二区三区| 国产精品一区二区你懂的| 一本一本大道香蕉久在线精品 | 日本不卡一二三区黄网| 国产精选一区二区三区| 91丨九色丨黑人外教| 91精品欧美综合在线观看最新| 欧美精品一区二区三区久久久| 欧美国产日韩a欧美在线观看| 亚洲午夜电影网| 国产不卡高清在线观看视频| 在线看国产一区| 久久欧美中文字幕| 午夜婷婷国产麻豆精品| 成人高清伦理免费影院在线观看| 欧美日韩一区二区三区在线| 久久久久九九视频| 婷婷丁香久久五月婷婷| av亚洲精华国产精华精华| 欧美日韩国产在线观看| 日韩一区日韩二区| 久久99国产精品成人| 欧美日韩精品三区| 国产免费久久精品| 久久精品国产澳门| 欧美日韩一二三区| 亚洲人成人一区二区在线观看| 六月丁香婷婷色狠狠久久| 欧美私人免费视频| 亚洲男人电影天堂| 国产盗摄一区二区| 91精品国产色综合久久不卡蜜臀 | 91香蕉视频mp4| 久久久国产一区二区三区四区小说 | 精品免费日韩av| 亚洲图片欧美色图| 成人禁用看黄a在线| 久久久国产综合精品女国产盗摄| 免费人成黄页网站在线一区二区| 欧美日韩国产美| 亚洲影视在线观看| 91福利小视频| 亚洲图片欧美视频| 欧美日韩精品一区视频| 亚洲国产成人91porn| 欧美亚洲尤物久久| 一区二区三区久久| 欧美熟乱第一页| 亚洲一区视频在线| 欧美日韩国产不卡| 日韩在线a电影| 日韩一区二区三区在线视频| 免费在线观看视频一区| 欧美大片日本大片免费观看| 久久激五月天综合精品| 久久综合狠狠综合久久激情| 久久 天天综合| 久久精品一区四区| 成人看片黄a免费看在线| 国产精品九色蝌蚪自拍| 99精品国产热久久91蜜凸| 国产精品久久网站| caoporn国产一区二区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 美女脱光内衣内裤视频久久影院| 国产精品全国免费观看高清 | 欧洲视频一区二区| 一区二区在线观看不卡| 欧美亚洲免费在线一区| 午夜精品在线视频一区| 欧美一级爆毛片| 国产精品一区二区免费不卡| 中文字幕亚洲视频| 欧美日韩色一区| 国产一区二区h| 亚洲男人天堂av| 欧美一区二区视频在线观看 | 欧美日韩国产123区| 午夜在线成人av| 久久久久久久久99精品| 色噜噜偷拍精品综合在线| 日本欧美肥老太交大片| 国产精品久久久久aaaa| 欧美丰满一区二区免费视频| 国产资源精品在线观看| 亚洲色图视频网| 精品欧美久久久| 99精品在线免费| 久久www免费人成看片高清| 国产精品毛片a∨一区二区三区| 在线观看网站黄不卡| 精品在线视频一区| 亚洲曰韩产成在线| 国产日韩亚洲欧美综合| 欧美久久高跟鞋激| 不卡的av在线| 狠狠色丁香久久婷婷综| 亚洲亚洲精品在线观看| 国产精品免费看片| 欧美成va人片在线观看| 色素色在线综合| 国产成人午夜片在线观看高清观看| 亚洲女与黑人做爰| 欧美激情资源网| 久久久久久一级片| 欧美一级二级三级蜜桃| 欧美日韩亚洲另类| 91小视频免费观看| 国产精品影视在线| 美女视频黄 久久| 亚洲午夜在线视频| 一区二区三区精品视频在线| 欧美韩国日本不卡| 久久综合色鬼综合色| 欧美伦理电影网| 欧美亚洲动漫另类| 91福利在线看| 欧美在线观看视频一区二区| 91国在线观看| 91尤物视频在线观看| 国产精品一二三在| 国产精品一区二区视频| 国产一区二区在线观看视频| 蜜臀av一级做a爰片久久| 日韩精品一级二级 | 国产色综合一区| 久久久国产精品午夜一区ai换脸| 精品乱码亚洲一区二区不卡| 日韩精品资源二区在线| 精品国产一区二区三区忘忧草| 精品国产露脸精彩对白| 精品福利视频一区二区三区| 久久久久久毛片| 中文乱码免费一区二区| 国产精品国产自产拍高清av| 亚洲激情成人在线| 亚洲成国产人片在线观看| 日本最新不卡在线| 精品亚洲porn| 高清日韩电视剧大全免费| 成人午夜激情在线| 在线观看免费成人| 欧美美女bb生活片| 精品久久人人做人人爰| 日本一区二区三区四区在线视频| 国产精品不卡在线观看| 亚洲日本丝袜连裤袜办公室| 香蕉久久夜色精品国产使用方法 | 一级女性全黄久久生活片免费| 亚洲成人av免费| 蜜臀av一区二区在线免费观看| 国内精品久久久久影院薰衣草| 国产91精品一区二区麻豆网站| 97久久人人超碰| 欧美老人xxxx18| 久久精品夜夜夜夜久久| 亚洲欧美日韩成人高清在线一区| 婷婷成人激情在线网| 国产乱子伦视频一区二区三区| 91视频国产观看| 欧美一级视频精品观看| 国产人成一区二区三区影院| 一区二区三区四区在线| 久久99在线观看| 日本精品一区二区三区四区的功能| 欧美一区二区私人影院日本| 18成人在线视频| 久久激情综合网| 在线视频中文字幕一区二区| 久久综合九色综合欧美亚洲| 亚洲国产综合视频在线观看| 国产91丝袜在线播放九色|