Stellarium 0.15.2
Main Page
Modules
Namespaces
Classes
Coding Style
Scripting
Plugins
File Structure
Files
File List
File Members
src
external
glues_stel
source
libtess
sweep.h
1
/*
2
* SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
3
* Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
4
*
5
* Permission is hereby granted, free of charge, to any person obtaining a
6
* copy of this software and associated documentation files (the "Software"),
7
* to deal in the Software without restriction, including without limitation
8
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
9
* and/or sell copies of the Software, and to permit persons to whom the
10
* Software is furnished to do so, subject to the following conditions:
11
*
12
* The above copyright notice including the dates of first publication and
13
* either this permission notice or a reference to
14
* http://oss.sgi.com/projects/FreeB/
15
* shall be included in all copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20
* SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
22
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
* SOFTWARE.
24
*
25
* Except as contained in this notice, the name of Silicon Graphics, Inc.
26
* shall not be used in advertising or otherwise to promote the sale, use or
27
* other dealings in this Software without prior written authorization from
28
* Silicon Graphics, Inc.
29
*/
30
/*
31
** Author: Eric Veach, July 1994.
32
**
33
*/
34
35
#ifndef __sweep_h_
36
#define __sweep_h_
37
38
#include "mesh.h"
39
40
/* __gl_computeInterior( tess ) computes the planar arrangement specified
41
* by the given contours, and further subdivides this arrangement
42
* into regions. Each region is marked "inside" if it belongs
43
* to the polygon, according to the rule given by tess->windingRule.
44
* Each interior region is guaranteed be monotone.
45
*/
46
int
__gl_computeInterior(
GLUEStesselator
* tess);
47
48
/* The following is here *only* for access by debugging routines */
49
50
#include "dict.h"
51
52
/* For each pair of adjacent edges crossing the sweep line, there is
53
* an ActiveRegion to represent the region between them. The active
54
* regions are kept in sorted order in a dynamic dictionary. As the
55
* sweep line crosses each vertex, we update the affected regions.
56
*/
57
58
struct
ActiveRegion
59
{
60
GLUEShalfEdge
* eUp;
/* upper edge, directed right to left */
61
DictNode
* nodeUp;
/* dictionary node corresponding to eUp */
62
int
windingNumber;
/* used to determine which regions are
63
* inside the polygon */
64
GLboolean inside;
/* is this region inside the polygon? */
65
GLboolean sentinel;
/* marks fake edges at t = +/-infinity */
66
GLboolean dirty;
/* marks regions where the upper or lower
67
* edge has changed, but we haven't checked
68
* whether they intersect yet */
69
GLboolean fixUpperEdge;
/* marks temporary edges introduced when
70
* we process a "right vertex" (one without
71
* any edges leaving to the right) */
72
};
73
74
#define RegionBelow(r) ((ActiveRegion*)dictKey(dictPred((r)->nodeUp)))
75
#define RegionAbove(r) ((ActiveRegion*)dictKey(dictSucc((r)->nodeUp)))
76
77
#endif
/* __sweep_h_ */
DictNode
Definition:
dict-list.h:83
GLUEStesselator
Definition:
tess.h:60
ActiveRegion
Definition:
sweep.h:58
GLUEShalfEdge
Definition:
mesh.h:140
Generated on Tue Mar 21 2017 14:15:14 for Stellarium by
1.8.11