FreeWRL/FreeX3D  3.0.0
sampleCompBot.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 */
32 
33 #ifndef _SAMPLECOMPBOT_H
34 #define _SAMPLECOMPBOT_H
35 
36 #include "sampleMonoPoly.h"
37 
38 void findBotLeftSegment(vertexArray* leftChain,
39  Int leftEnd,
40  Int leftCorner,
41  Real u,
42  Int& ret_index_mono,
43  Int& ret_index_pass);
44 
45 void findBotRightSegment(vertexArray* rightChain,
46  Int rightEnd,
47  Int rightCorner,
48  Real u,
49  Int& ret_index_mono,
50  Int& ret_index_pass);
51 
52 
53 void sampleBotRightWithGridLinePost(Real* botVertex,
54  vertexArray* rightChain,
55  Int rightEnd,
56  Int segIndexMono,
57  Int segIndexPass,
58  Int rightCorner,
59  gridWrap* grid,
60  Int gridV,
61  Int leftU,
62  Int rightU,
63  primStream* pStream);
64 
65 
66 void sampleBotRightWithGridLine(Real* botVertex,
67  vertexArray* rightChain,
68  Int rightEnd,
69  Int rightCorner,
70  gridWrap* grid,
71  Int gridV,
72  Int leftU,
73  Int rightU,
74  primStream* pStream);
75 
76 
77 void sampleBotLeftWithGridLinePost(Real* botVertex,
78  vertexArray* leftChain,
79  Int leftEnd,
80  Int segIndexMono,
81  Int segIndexPass,
82  Int leftCorner,
83  gridWrap* grid,
84  Int gridV,
85  Int leftU,
86  Int rightU,
87  primStream* pStream);
88 
89 
90 void sampleBotLeftWithGridLine(Real* botVertex,
91  vertexArray* leftChain,
92  Int leftEnd,
93  Int leftCorner,
94  gridWrap* grid,
95  Int gridV,
96  Int leftU,
97  Int rightU,
98  primStream* pStream);
99 
100 
101 Int findBotSeparator(vertexArray* leftChain,
102  Int leftEnd,
103  Int leftCorner,
104  vertexArray* rightChain,
105  Int rightEnd,
106  Int rightCorner,
107  Int& ret_sep_left,
108  Int& ret_sep_right);
109 
110 void sampleCompBot(Real* botVertex,
111  vertexArray* leftChain,
112  Int leftEnd,
113  vertexArray* rightChain,
114  Int rightEnd,
115  gridBoundaryChain* leftGridChain,
116  gridBoundaryChain* rightGridChain,
117  Int gridIndex,
118  Int down_leftCornerWhere,
119  Int down_leftCornerIndex,
120  Int down_rightCornerWhere,
121  Int down_rightCornerIndex,
122  primStream* pStream);
123 
124 void sampleCompBotSimple(Real* botVertex,
125  vertexArray* leftChain,
126  Int leftEnd,
127  vertexArray* rightChain,
128  Int rightEnd,
129  gridBoundaryChain* leftGridChain,
130  gridBoundaryChain* rightGridChain,
131  Int gridIndex,
132  Int down_leftCornerWhere,
133  Int down_leftCornerIndex,
134  Int down_rightCornerWhere,
135  Int down_rightCornerIndex,
136  primStream* pStream);
137 
138 #endif