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

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

?? qhull.h

?? 關(guān)于網(wǎng)格剖分的
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*<html><pre>  -<a                             href="qh-c.htm#qhull"
  >-------------------------------</a><a name="TOP">-</a>

   qhull.h
   user-level header file for using qhull.a library

   see qh-c.htm, qhull_a.h

   copyright (c) 1993-1999, The Geometry Center

   defines qh_qh, global data structure for qhull.  
   
   NOTE: access to qh_qh is via the 'qh' macro.  This allows
   qh_qh to be either a pointer or a structure.  An example
   of using qh is "qh DROPdim" which accesses the DROPdim
   field of qh_qh.  Similarly, access to qh_qhstat is via
   the 'qhstat' macro.
   
   includes function prototypes for qhull.c, geom.c, global.c, io.c, user.c

   use mem.h for mem.c
   use qset.h for qset.c
   
   see unix.c for an example of using qhull.h
   
   recompile qhull if you change this file
*/

#ifndef qhDEFqhull
#define qhDEFqhull 1

/*=========================== -included files ==============*/

#include <setjmp.h>
#include <float.h>
#include <time.h>

#if __MWERKS__ && __POWERPC__
#include  <SIOUX.h>
#include  <Files.h>
#include	<Desk.h>
#endif

#ifndef __STDC__ 
#ifndef __cplusplus
#if     !_MSC_VER
#error  Neither __STDC__ nor __cplusplus is defined.  Please use strict ANSI C or C++ to compile
#error  Qhull.  You may need to turn off compiler extensions in your project configuration.  If 
#error  your compiler is a standard C compiler, you can delete this warning from qhull.h
#endif
#endif
#endif

#include "user.h"      /* user defineable constants */

/*============ constants and basic types ====================*/

/*-<a                             href="qh-c.htm#geom"
  >--------------------------------</a><a name="coordT">-</a>
  
  coordT
    coordinates and coefficients are stored as realT (i.e., double)

  notes:
    could use 'float' for data and 'double' for calculations (realT vs. coordT)
      This requires many type casts, and adjusted error bounds.
      Also C compilers may do expressions in double anyway.
*/
#define coordT realT
/*-<a                             href="qh-c.htm#geom"
  >--------------------------------</a><a name="pointT">-</a>
  
  pointT
    a point is an array of DIM3 coordinates
*/
#define pointT coordT

/*-<a                             href="qh-c.htm#qhull"
  >--------------------------------</a><a name="flagT">-</a>

  flagT
    Boolean flag as a bit
*/
#define flagT unsigned int

/*-<a                             href="qh-c.htm#qhull"
  >--------------------------------</a><a name="boolT">-</a>
  
  boolT
    boolean value, either True or False

  notes:
    needed for portability
*/
#define boolT unsigned int
#ifdef False
#undef False
#endif
#ifdef True
#undef True
#endif
#define False 0
#define True 1

/*-<a                             href="qh-c.htm#qhull"
  >--------------------------------</a><a name="CENTERtype">-</a>
  
  qh_CENTER
    to distinguish facet->center
*/
typedef enum
{
    qh_ASnone = 0, qh_ASvoronoi, qh_AScentrum
}
qh_CENTER;

/*-<a                             href="qh-c.htm#qhull"
  >--------------------------------</a><a name="qh_PRINT">-</a>
  
  qh_PRINT
    output formats for printing (qh.PRINTout).

   notes:
   some of these names are similar to qh names.  The similar names are only
   used in switch statements in qh_printbegin() etc.
*/
typedef enum {qh_PRINTnone= 0, qh_PRINTarea, qh_PRINTaverage, 
  qh_PRINTcoplanars, qh_PRINTcentrums, 
  qh_PRINTfacets, qh_PRINTfacets_xridge, 
  qh_PRINTgeom, qh_PRINTids, qh_PRINTinner, qh_PRINTneighbors, 
  qh_PRINTnormals, qh_PRINTouter, qh_PRINTincidences, 
  qh_PRINTmathematica, qh_PRINTmerges, qh_PRINToff, 
  qh_PRINToptions, qh_PRINTpointintersect, qh_PRINTpointnearest,
  qh_PRINTpoints, qh_PRINTqhull, qh_PRINTsize, qh_PRINTsummary, 
  qh_PRINTtriangles, qh_PRINTvertices, qh_PRINTvneighbors, qh_PRINTextremes,
  qh_PRINTEND} qh_PRINT;

/*-<a                             href="qh-c.htm#qhull"
  >--------------------------------</a><a name="qh_ALL">-</a>
  
  qh_ALL
    argument flag for selecting everything
*/
#define qh_ALL      True
#define qh_NOupper  True     /* argument for qh_findbest */

/*-<a                             href="qh-c.htm#qhull"
  >--------------------------------</a><a name="qh_ERR">-</a>

  qh_ERR
    Qhull exit codes, for indicating errors
*/
#define qh_ERRnone  0    /* no error occurred during qhull */
#define qh_ERRinput 1    /* input inconsistency */
#define qh_ERRsingular 2 /* singular input data */
#define qh_ERRprec  3    /* precision error */
#define qh_ERRmem   4    /* insufficient memory, matches mem.h */
#define qh_ERRqhull 5    /* internal error detected, matches mem.h */

/* ============ -structures- ====================
   each of the following structures is defined by a typedef
   all realT and coordT fields occur at the beginning of a structure
        (otherwise space may be wasted due to alignment)
   define all flags together and pack into 32-bit number
*/

typedef struct vertexT vertexT;
typedef struct ridgeT ridgeT;
typedef struct facetT facetT;
#ifndef DEFsetT
#define DEFsetT 1
typedef struct setT setT;          /* defined in qset.h */
#endif

/*-<a                             href="qh-c.htm#poly"
  >--------------------------------</a><a name="facetT">-</a>
     
  facetT
    defines a facet

  notes:
   qhull() generates the hull as a list of facets.  

  topological information:
    f.previous,next     doubly-linked list of facets
    f.vertices          set of vertices
    f.ridges            set of ridges
    f.neighbors         set of neighbors
    f.toporient         True if facet has top-orientation (else bottom)
  
  geometric information:
    f.offset,normal     hyperplane equation
    f.maxoutside        offset to outer plane -- all points inside
    f.center            centrum for testing convexity
    f.simplicial        True if facet is simplicial
    f.flipped           True if facet does not include qh.interior_point
  
  for constructing hull:
    f.visible           True if facet on list of visible facets (will be deleted)
    f.newfacet          True if facet on list of newly created facets
    f.coplanarset       set of points coplanar with this facet
                        (includes near-inside points for later testing)
    f.outsideset        set of points outside of this facet
    f.furthestdist      distance to furthest point of outside set
    f.visitid           marks visited facets during a loop
    f.replace           replacement facet for to-be-deleted, visible facets
    f.samecycle,newcycle cycle of facets for merging into horizon facet
    
  see below for other flags and fields
*/
struct facetT {
#if !qh_COMPUTEfurthest
  coordT   furthestdist;/* distance to furthest point of outsideset */
#endif
#if qh_MAXoutside
  coordT   maxoutside;  /* max computed distance of point to facet
  			Before QHULLfinished this is an approximation
  			since maxdist not always set for mergefacet
			Actual outer plane is +DISTround and
			computed outer plane is +2*DISTround */
#endif
  coordT   offset;      /* exact offset of hyperplane from origin */ 
  coordT  *normal;      /* normal of hyperplane, hull_dim coefficients */
  union {               /* in order of testing */
   realT   area;        /* area of facet, only in io.c if  ->isarea */
   facetT *replace;	/*  replacement facet if ->visible and NEWfacets
  			     is NULL only if qh_mergedegen_redundant or interior */
   facetT *samecycle;   /*  cycle of facets from the same visible/horizon intersection,
   			     if ->newfacet */
   facetT *newcycle;    /*  in horizon facet, current samecycle of new facets */ 
  }f;
  coordT  *center;      /*  centrum for convexity, qh CENTERtype == qh_AScentrum */
      			/*  Voronoi center, qh CENTERtype == qh_ASvoronoi */
  facetT  *previous;    /* previous facet in the facet_list */
  facetT  *next;        /* next facet in the facet_list */
  setT    *vertices;    /* vertices for this facet, inverse sorted by id 
                           if simplicial, 1st vertex was apex/furthest */
  setT    *ridges;      /* explicit ridges for nonsimplicial facets.
  			   for simplicial facets, neighbors defines ridge */
  setT    *neighbors;   /* neighbors of the facet.  If simplicial, the kth 
			   neighbor is opposite the kth vertex, and the first
			   neighbor is the horizon facet for the first vertex*/
  setT    *outsideset;  /* set of points outside this facet
		           if non-empty, last point is furthest
			   if NARROWhull, includes coplanars for partitioning*/
  setT    *coplanarset; /* set of points coplanar with this facet
  			   > qh.min_vertex and <= facet->max_outside
                           a point is assigned to the furthest facet
		           if non-empty, last point is furthest away */
  unsigned visitid;     /* visit_id, for visiting all neighbors,
			   all uses are independent */
  unsigned id;	        /* unique identifier from qh facet_id */
  unsigned nummerge:9;  /* number of merges */
#define qh_MAXnummerge 511 /*     2^9-1 */
  flagT	   newfacet:1;  /* True if facet on qh newfacet_list (new or merged) */
  flagT	   visible:1;   /* True if visible facet (will be deleted) */
  flagT    toporient:1; /* True if created with top orientation
			   after merging, use ridge orientation */
  flagT    simplicial:1;/* True if simplicial facet, ->ridges may be implicit */
  flagT    seen:1;      /* used to perform operations only once, like visitid */
  flagT    seen2:1;     /* used to perform operations only once, like visitid */
  flagT	   flipped:1;   /* True if facet is flipped */
  flagT    upperdelaunay:1; /* True if facet is upper envelope of Delaunay triangulation */
  flagT    notfurthest:1; /* True if last point of outsideset is not furthest*/

/*-------- flags primarily for output ---------*/
  flagT	   good:1;      /* True if a facet marked good for output */
  flagT    isarea:1;    /* True if facet->f.area is defined */

/*-------- flags for merging ------------------*/
  flagT    dupridge:1;  /* True if duplicate ridge in facet */
  flagT    mergeridge:1; /* True if facet or neighbor contains a qh_MERGEridge
                            ->normal defined (also defined for mergeridge2) */
  flagT    mergeridge2:1; /* True if neighbor contains a qh_MERGEridge (mark_dupridges */
  flagT    coplanar:1;  /* True if horizon facet is coplanar at last use */
  flagT     mergehorizon:1; /* True if will merge into horizon (->coplanar) */
  flagT	    cycledone:1;/* True if mergecycle_all already done */
  flagT    tested:1;    /* True if facet convexity has been tested (false after merge */
  flagT    keepcentrum:1; /* True if keep old centrum after a merge */
  flagT	   newmerge:1;  /* True if facet is newly merged for reducevertices */
  flagT	   degenerate:1; /* True if facet is degenerate (degen_mergeset) */
  flagT	   redundant:1;  /* True if facet is redundant (degen_mergeset) */
};


/*-<a                             href="qh-c.htm#poly"
  >--------------------------------</a><a name="ridgeT">-</a>

  ridgeT
    defines a ridge
 
  notes:
  a ridge is DIM3-1 simplex between two neighboring facets.  If the
  facets are non-simplicial, there may be more than one ridge between
  two facets.  E.G. a 4-d hypercube has two triangles between each pair
  of neighboring facets.

  topological information:
    vertices            a set of vertices
    top,bottom          neighboring facets with orientation
 
  geometric information:
    tested              True if ridge is clearly convex
    nonconvex           True if ridge is non-convex 
*/
struct ridgeT {
  setT    *vertices;    /* vertices belonging to this ridge, inverse sorted by id 
                           NULL if a degen ridge (matchsame) */
  facetT  *top;         /* top facet this ridge is part of */
  facetT  *bottom;      /* bottom facet this ridge is part of */
  unsigned id:24;       /* unique identifier, =>room for 8 flags */
  flagT    seen:1;      /* used to perform operations only once */
  flagT    tested:1;    /* True when ridge is tested for convexity */
  flagT    nonconvex:1; /* True if getmergeset detected a non-convex neighbor 
			   only one ridge between neighbors may have nonconvex */
};

/*-<a                             href="qh-c.htm#poly"
  >--------------------------------</a><a name="vertexT">-</a>
     
  vertexT
     defines a vertex
      
  topological information:
    next,previous       doubly-linked list of all vertices
    neighbors           set of adjacent facets (only if qh.VERTEXneighbors)
    
  geometric information:
    point               array of DIM3 coordinates
*/
struct vertexT {
  vertexT *next;        /* next vertex in vertex_list */
  vertexT *previous;    /* previous vertex in vertex_list */
  pointT  *point;       /* hull_dim coordinates (coordT) */
  setT    *neighbors;   /* neighboring facets of vertex, qh_vertexneighbors()
			   inits in io.c or after first merge */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看视频一区二区欧美日韩| 色菇凉天天综合网| 亚洲精品成人精品456| 欧美r级电影在线观看| 色婷婷综合视频在线观看| 久久99久国产精品黄毛片色诱| 国产精品热久久久久夜色精品三区 | 在线观看中文字幕不卡| 久久成人久久鬼色| 亚洲五月六月丁香激情| 国产精品欧美一区喷水| 欧美一级xxx| 欧美日韩在线三区| 91原创在线视频| 国产成人免费在线| 蜜臂av日日欢夜夜爽一区| 中文字幕中文乱码欧美一区二区| 精品国产一区二区三区av性色| 在线观看日韩电影| av男人天堂一区| 国产精品一区二区三区乱码| 日韩影院免费视频| 亚洲国产日韩a在线播放| 国产精品初高中害羞小美女文 | 亚洲摸摸操操av| 久久久不卡网国产精品二区| 91精品国产综合久久精品图片| 日本乱人伦一区| 91婷婷韩国欧美一区二区| 国产精品资源网| 国产一级精品在线| 国内精品在线播放| 久久精品国产精品亚洲精品| 日韩av在线播放中文字幕| 一区二区久久久久| 亚洲最大成人综合| 亚洲成a人片在线不卡一二三区| 亚洲日本免费电影| 亚洲自拍欧美精品| 亚洲高清免费视频| 日韩综合小视频| 日韩电影免费在线看| 午夜精品123| 日韩av一区二区三区四区| 免费黄网站欧美| 老司机精品视频导航| 久久精品国产免费看久久精品| 久久精品久久99精品久久| 美腿丝袜亚洲色图| 精品在线你懂的| 国内不卡的二区三区中文字幕| 久久电影网站中文字幕| 精品在线一区二区三区| 国产精品一区专区| 成人av中文字幕| 91福利国产精品| 欧美精品欧美精品系列| 欧美一区欧美二区| 精品蜜桃在线看| 国产精品嫩草影院av蜜臀| 国产精品久久久久7777按摩| 亚洲欧美成人一区二区三区| 亚洲一二三区视频在线观看| 日韩在线卡一卡二| 国产乱色国产精品免费视频| 成人性生交大片免费看在线播放 | 免费成人在线网站| 国产99久久久久久免费看农村| 波多野结衣中文字幕一区| 色域天天综合网| 91精选在线观看| 久久精品无码一区二区三区| 亚洲欧洲精品天堂一级| 亚洲va欧美va天堂v国产综合| 久久精品av麻豆的观看方式| 国产精品综合在线视频| 一本大道综合伊人精品热热| 777欧美精品| 亚洲国产成人在线| 亚洲一二三区不卡| 国产在线不卡一区| 91在线观看高清| 51久久夜色精品国产麻豆| 久久久午夜精品理论片中文字幕| 亚洲免费毛片网站| 伦理电影国产精品| 一本到三区不卡视频| 欧美成人免费网站| 一区二区三区免费看视频| 捆绑调教一区二区三区| av中文字幕不卡| 日韩一区二区三区电影在线观看| 国产精品国产三级国产有无不卡 | 9i看片成人免费高清| 91精选在线观看| 最近日韩中文字幕| 精彩视频一区二区| 欧美日韩在线亚洲一区蜜芽| 中文一区二区完整视频在线观看| 天堂资源在线中文精品| av资源网一区| 久久精品一区二区三区四区| 亚洲成av人片一区二区三区 | 日韩欧美电影在线| 一区二区三区在线看| 国产精品一区二区久久精品爱涩 | 韩国女主播成人在线观看| 欧美日韩一区二区三区在线| 国产精品国产三级国产有无不卡 | 9久草视频在线视频精品| 欧美精品一区二区久久婷婷| 亚洲va欧美va天堂v国产综合| 北岛玲一区二区三区四区| 精品黑人一区二区三区久久| 一区二区三区在线观看国产| 国产成人激情av| 精品久久一区二区| 日韩高清在线一区| 欧美吞精做爰啪啪高潮| 国产精品久久久久久久久动漫 | 欧美日韩激情一区二区三区| 国产喷白浆一区二区三区| 久久国产精品72免费观看| 欧美一区国产二区| 日韩在线播放一区二区| 欧美视频一区二区三区四区| 亚洲精品视频在线观看网站| www.欧美亚洲| 日本一区二区三区免费乱视频 | 91色.com| 亚洲三级免费观看| av激情综合网| 1024国产精品| 91麻豆国产香蕉久久精品| 国产精品毛片大码女人| 成人a免费在线看| 最新国产成人在线观看| 91在线高清观看| 亚洲码国产岛国毛片在线| 91在线看国产| 亚洲自拍偷拍麻豆| 欧美乱熟臀69xxxxxx| 免费在线观看视频一区| 精品日韩在线观看| 国产精品一区久久久久| 欧美国产激情一区二区三区蜜月| 成人性视频网站| 亚洲视频你懂的| 欧美午夜理伦三级在线观看| 亚洲动漫第一页| 日韩一级成人av| 国产成人在线看| 亚洲桃色在线一区| 欧美日韩成人综合在线一区二区 | 午夜精品久久久久久久久| 欧美精选一区二区| 九九国产精品视频| 国产精品天美传媒沈樵| 91久久精品网| 日本欧美在线看| 国产日产亚洲精品系列| 99久久99精品久久久久久| 亚洲二区在线观看| 精品卡一卡二卡三卡四在线| 成人av电影在线网| 亚洲一区二区欧美| 精品国产凹凸成av人导航| 韩国v欧美v日本v亚洲v| 亚洲欧洲精品一区二区三区不卡| 欧美日韩日本视频| 国产精一区二区三区| 一区二区三区四区高清精品免费观看| 欧美性猛交xxxx乱大交退制版| 另类综合日韩欧美亚洲| 国产精品久久久久婷婷| 欧美久久一二三四区| 国产一二精品视频| 亚洲五码中文字幕| 国产婷婷色一区二区三区四区 | 亚洲成av人影院在线观看网| 日韩一区二区在线观看| 97久久人人超碰| 日本免费新一区视频| 国产精品久久久久影院老司 | 91麻豆免费看| 久久国产精品区| 悠悠色在线精品| 久久综合久久综合九色| 日本久久一区二区三区| 黑人精品欧美一区二区蜜桃| 亚洲人成7777| 久久精品免费在线观看| 欧美图区在线视频| 不卡一区在线观看| 狠狠久久亚洲欧美| 亚洲午夜精品网| 中文字幕中文在线不卡住| 精品国产不卡一区二区三区| 欧美日韩视频在线观看一区二区三区| 国产精品一区二区在线观看网站|