ROOT
v6-20
Reference Guide
tessmono.h
Go to the documentation of this file.
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 __tessmono_h_
36
#define __tessmono_h_
37
38
/* __gl_meshTessellateMonoRegion( face ) tessellates a monotone region
39
* (what else would it do??) The region must consist of a single
40
* loop of half-edges (see mesh.h) oriented CCW. "Monotone" in this
41
* case means that any vertical line intersects the interior of the
42
* region in a single interval.
43
*
44
* Tessellation consists of adding interior edges (actually pairs of
45
* half-edges), to split the region into non-overlapping triangles.
46
*
47
* __gl_meshTessellateInterior( mesh ) tessellates each region of
48
* the mesh which is marked "inside" the polygon. Each such region
49
* must be monotone.
50
*
51
* __gl_meshDiscardExterior( mesh ) zaps (ie. sets to NULL) all faces
52
* which are not marked "inside" the polygon. Since further mesh operations
53
* on NULL faces are not allowed, the main purpose is to clean up the
54
* mesh so that exterior loops are not represented in the data structure.
55
*
56
* __gl_meshSetWindingNumber( mesh, value, keepOnlyBoundary ) resets the
57
* winding numbers on all edges so that regions marked "inside" the
58
* polygon have a winding number of "value", and regions outside
59
* have a winding number of 0.
60
*
61
* If keepOnlyBoundary is TRUE, it also deletes all edges which do not
62
* separate an interior region from an exterior one.
63
*/
64
65
int
__gl_meshTessellateMonoRegion
(
GLUface
*face );
66
int
__gl_meshTessellateInterior
(
GLUmesh
*mesh );
67
void
__gl_meshDiscardExterior
(
GLUmesh
*mesh );
68
int
__gl_meshSetWindingNumber
(
GLUmesh
*mesh,
int
value,
69
GLboolean
keepOnlyBoundary );
70
71
#endif
GLboolean
unsigned char GLboolean
Definition:
GL_glu.h:267
GLUface
Definition:
mesh.h:126
GLUmesh
Definition:
mesh.h:168
__gl_meshTessellateMonoRegion
int __gl_meshTessellateMonoRegion(GLUface *face)
Definition:
tessmono.c:72
__gl_meshSetWindingNumber
int __gl_meshSetWindingNumber(GLUmesh *mesh, int value, GLboolean keepOnlyBoundary)
Definition:
tessmono.c:179
__gl_meshDiscardExterior
void __gl_meshDiscardExterior(GLUmesh *mesh)
Definition:
tessmono.c:155
__gl_meshTessellateInterior
int __gl_meshTessellateInterior(GLUmesh *mesh)
Definition:
tessmono.c:133
graf3d
eve7
glu
tessmono.h
ROOT v6-20 - Reference Guide Generated on Fri Apr 1 2022 00:20:30 (GVA Time) using Doxygen 1.9.4