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

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

?? simplex.java

?? 實(shí)現(xiàn)Delaunay三角網(wǎng)生成
?? JAVA
字號(hào):
/*
 * Copyright (c) 2005 by L. Paul Chew.
 * 
 * Permission is hereby granted, without written agreement and without
 * license or royalty fees, to use, copy, modify, and distribute this
 * software and its documentation for any purpose, subject to the following 
 * conditions:
 *
 * The above copyright notice and this permission notice shall be included 
 * in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 * DEALINGS IN THE SOFTWARE.
 */

import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

/**
 * A Simplex is an immutable set of vertices (usually Pnts).
 * 
 * @author Paul Chew
 * 
 * Created July 2005. Derived from an earlier, messier version.
 */
class Simplex<V> extends AbstractSet<V> implements Set<V> {
    
    private List<V> vertices;               // The simplex's vertices
    private long idNumber;                  // The id number
    private static long idGenerator = 0;    // Used to create id numbers
    public static boolean moreInfo = false; // True iff more info in toString
    
    /**
     * Constructor.
     * @param collection a Collection holding the Simplex vertices
     * @throws IllegalArgumentException if there are duplicate vertices
     */
    public Simplex (Collection<? extends V> collection) {
        this.vertices = Collections.unmodifiableList(new ArrayList<V>(collection));
        this.idNumber = idGenerator++;
        Set<V> noDups = new HashSet<V>(this);
        if (noDups.size() != this.vertices.size())
            throw new IllegalArgumentException("Duplicate vertices in Simplex");
    }
    
    /**
     * Constructor.
     * @param vertices the vertices of the Simplex.
     * @throws IllegalArgumentException if there are duplicate vertices
     */
    public Simplex (V... vertices) {
        this(Arrays.asList(vertices));
    }
    
    /**
     * String representation.
     * @return the String representation of this Simplex
     */
    public String toString () {
        if (!moreInfo) return "Simplex" + idNumber;
        return "Simplex" + idNumber + super.toString();
    }
    
    /**
     * Dimension of the Simplex.
     * @return dimension of Simplex (one less than number of vertices)
     */
    public int dimension () {
        return this.vertices.size() - 1;
    }
    
    /**
     * True iff simplices are neighbors.
     * Two simplices are neighbors if they are the same dimension and they share
     * a facet.
     * @param simplex the other Simplex
     * @return true iff this Simplex is a neighbor of simplex
     */
    public boolean isNeighbor (Simplex<V> simplex) {
        HashSet<V> h = new HashSet<V>(this);
        h.removeAll(simplex);
        return (this.size() == simplex.size()) && (h.size() == 1);
    }
    
    /**
     * Report the facets of this Simplex.
     * Each facet is a set of vertices <V>.
     * @return an Iterable for the facets of this Simplex
     */
    public List<Set<V>> facets () {
        List<Set<V>> theFacets = new LinkedList<Set<V>>();
        for (V v: this) {
            Set<V> facet = new HashSet<V>(this);
            facet.remove(v);
            theFacets.add(facet);
        }
        return theFacets;
    }
    
    /**
     * Report the boundary of a Set of Simplices.
     * The boundary is a Set of facets where each facet is a Set of vertices <V>.
     * @return an Iterator for the facets that make up the boundary
     */
    public static <V> Set<Set<V>> boundary (Set<? extends Simplex<V>> simplexSet) {
        Set<Set<V>> theBoundary = new HashSet<Set<V>>();
        for (Simplex<V> simplex: simplexSet) {
            for (Set<V> facet: simplex.facets()) {
                if (theBoundary.contains(facet)) theBoundary.remove(facet);
                else theBoundary.add(facet);
            }
        }
        return theBoundary;
    }
    
    /* Remaining methods are those required by AbstractSet */
    
    /**
     * @return Iterator for Simplex's vertices.
     */
    public Iterator<V> iterator () {
        return this.vertices.iterator();
    }
    
    /**
     * @return the size (# of vertices) of this Simplex
     */
    public int size () {
        return this.vertices.size();
    }
    
    /**
     * @return the hashCode of this Simplex
     */
    public int hashCode () {
        return (int)(idNumber^(idNumber>>>32));
    }
    
    /**
     * We want to allow for different simplices that share the same vertex set.
     * @return true for equal Simplices
     */
    public boolean equals (Object o) {
        return (this == o);
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人超碰人人澡人人澡| 国产一区二区影院| 美女国产一区二区三区| 大胆欧美人体老妇| 欧美一区二区三区视频在线| 国产精品色呦呦| 天天色 色综合| 99热这里都是精品| 精品福利一二区| 亚洲精品日日夜夜| 国产一区美女在线| 欧美日韩久久久一区| 中文字幕 久热精品 视频在线 | 在线观看日韩高清av| 精品国精品国产| 午夜精品视频一区| av欧美精品.com| 国产日产欧美一区二区视频| 丝袜美腿亚洲色图| 欧洲视频一区二区| 国产亚洲精品7777| 看国产成人h片视频| 91豆麻精品91久久久久久| 久久精品亚洲精品国产欧美kt∨| 五月天丁香久久| 91色.com| 久久久一区二区三区| 亚洲国产视频一区二区| 成人丝袜18视频在线观看| 日韩一区二区三区视频| 亚洲乱码国产乱码精品精98午夜| 国产成人在线观看| 久久综合国产精品| 国产一区二区福利视频| 久久综合给合久久狠狠狠97色69| 美女www一区二区| 日韩一区和二区| 亚洲成人一区二区| 91网站在线播放| 亚洲精品日韩专区silk | 蜜臀国产一区二区三区在线播放| 欧美日韩日日夜夜| 天天色综合天天| 欧美日韩国产中文| 日韩福利视频导航| 亚洲精品在线免费播放| 日本sm残虐另类| 91精选在线观看| 石原莉奈在线亚洲三区| 91久久精品一区二区| 亚洲欧美电影院| 在线视频欧美区| 日韩电影一区二区三区四区| 久久丝袜美腿综合| 成人理论电影网| 亚洲人成网站精品片在线观看 | 麻豆一区二区三| 2024国产精品| 99免费精品在线观看| 伊人一区二区三区| 欧美日韩国产天堂| 久久国产日韩欧美精品| 精品久久久久久久久久久久包黑料| 视频在线观看91| 国产999精品久久| 欧美国产97人人爽人人喊| av电影在线不卡| 亚洲乱码国产乱码精品精的特点| 欧美少妇一区二区| 人人超碰91尤物精品国产| 欧美成人艳星乳罩| 国产成人在线免费观看| 综合在线观看色| 91麻豆国产自产在线观看| 亚洲成年人影院| 在线播放91灌醉迷j高跟美女| 午夜激情久久久| 久久久噜噜噜久久人人看| 99久久精品免费| 国产精品国产自产拍高清av | 亚洲欧美日韩一区二区 | 成人国产免费视频| 亚洲一本大道在线| 欧美xxxx在线观看| 麻豆久久一区二区| 国产无人区一区二区三区| 99国产精品国产精品久久| 亚洲一区成人在线| 精品视频在线免费| 国产福利精品导航| 亚洲国产欧美在线| 久久久精品影视| 欧美影院一区二区三区| 精品一区二区三区日韩| 亚洲日穴在线视频| 久久综合99re88久久爱| 欧美色图激情小说| 国产91丝袜在线18| 免费在线看成人av| 亚洲美女视频在线| 欧美va亚洲va香蕉在线| 国产乱码精品一区二区三区五月婷| 日韩毛片高清在线播放| 日韩欧美成人午夜| 欧美日韩一区久久| 99久久久久免费精品国产 | 欧美日韩国产一区| 丁香婷婷综合网| 久久99久国产精品黄毛片色诱| 一区二区在线看| 国产精品视频免费| 久久网站最新地址| 91精品国产麻豆国产自产在线| 国产精品一二三区在线| 国产精品亚洲人在线观看| 日本三级亚洲精品| 亚洲狠狠丁香婷婷综合久久久| 国产三级一区二区| 日韩欧美视频一区| 欧美精品一级二级三级| 欧美日韩国产片| 北岛玲一区二区三区四区| 久久丁香综合五月国产三级网站| 亚洲国产精品一区二区久久恐怖片| 欧美韩国一区二区| 日韩天堂在线观看| 久久综合av免费| 精品久久久久久亚洲综合网 | 日韩国产精品91| 日韩精品国产精品| 亚洲国产综合视频在线观看| 日韩美女啊v在线免费观看| 亚洲精品在线电影| 欧美变态凌虐bdsm| 欧美精品在线视频| 91精品国产色综合久久不卡电影| av影院午夜一区| 成人h精品动漫一区二区三区| 成人一级片在线观看| 成人一道本在线| 大胆欧美人体老妇| 成av人片一区二区| 色婷婷综合中文久久一本| 99久久久无码国产精品| www.久久精品| 成人激情校园春色| 97se狠狠狠综合亚洲狠狠| 91免费国产视频网站| 欧美专区日韩专区| 69久久夜色精品国产69蝌蚪网| 欧美一区二区大片| 国产日韩欧美电影| 欧美福利电影网| 久久免费精品国产久精品久久久久| 日韩一区二区三区观看| 国产亚洲视频系列| 亚洲欧洲av一区二区三区久久| 亚洲精品国产高清久久伦理二区| 亚洲另类在线一区| 日本91福利区| 蜜桃视频一区二区三区| 91麻豆精品在线观看| 欧美日韩国产一级| 国产亚洲一本大道中文在线| 亚洲免费观看高清完整版在线| 亚洲成av人综合在线观看| 国产在线一区观看| 久久99精品久久久| 色欧美片视频在线观看在线视频| 欧美精品18+| 欧美极品美女视频| 亚洲成人av电影在线| 国产乱码字幕精品高清av| 一本到不卡精品视频在线观看| 欧美色爱综合网| 欧美日韩一区小说| 综合av第一页| 狠狠色丁香九九婷婷综合五月 | 亚洲欧美日韩综合aⅴ视频| 亚洲激情在线激情| 亚洲亚洲人成综合网络| 国产精品一品视频| 91精品国产高清一区二区三区蜜臀 | 在线观看日韩国产| 精品日韩欧美在线| 亚洲一区二区三区四区在线观看 | 成人黄色av电影| 成人的网站免费观看| 精品少妇一区二区三区免费观看 | 亚洲黄色录像片| 狠狠久久亚洲欧美| 欧美男同性恋视频网站| 成人免费小视频| 一区二区免费看| 精品视频在线视频| 亚洲精品大片www| 国产+成+人+亚洲欧洲自线| 日韩免费观看2025年上映的电影| 亚洲精品美国一| 91麻豆自制传媒国产之光|