Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > DoxygensampleMonoPoly.h
Go to the documentation of this file.
00001 /* 00002 ** License Applicability. Except to the extent portions of this file are 00003 ** made subject to an alternative license as permitted in the SGI Free 00004 ** Software License B, Version 1.1 (the "License"), the contents of this 00005 ** file are subject only to the provisions of the License. You may not use 00006 ** this file except in compliance with the License. You may obtain a copy 00007 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 00008 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: 00009 ** 00010 ** http://oss.sgi.com/projects/FreeB 00011 ** 00012 ** Note that, as provided in the License, the Software is distributed on an 00013 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS 00014 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND 00015 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A 00016 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. 00017 ** 00018 ** Original Code. The Original Code is: OpenGL Sample Implementation, 00019 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, 00020 ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. 00021 ** Copyright in any portions created by third parties is as indicated 00022 ** elsewhere herein. All Rights Reserved. 00023 ** 00024 ** Additional Notice Provisions: The application programming interfaces 00025 ** established by SGI in conjunction with the Original Code are The 00026 ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released 00027 ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version 00028 ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X 00029 ** Window System(R) (Version 1.3), released October 19, 1998. This software 00030 ** was created using the OpenGL(R) version 1.2.1 Sample Implementation 00031 ** published by SGI, but has not been independently verified as being 00032 ** compliant with the OpenGL(R) version 1.2.1 Specification. 00033 ** 00034 ** $Date: 2007-10-19 23:21:45 +0000 (Fri, 19 Oct 2007) $ $Revision: 1.1 $ 00035 */ 00036 /* 00037 ** $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/lib/glu32/libnurbs/nurbtess/sampleMonoPoly.h,v 1.1 2004/02/02 16:39:15 navaraf Exp $ 00038 */ 00039 00040 #ifndef _SAMPLEMONOPOLY_H 00041 #define _SAMPLEMONOPOLY_H 00042 00043 #include "monoTriangulation.h" 00044 #include "gridWrap.h" 00045 #include "rectBlock.h" 00046 00047 00048 void triangulateXYMono(Int n_upper, Real upperVerts[][2], 00049 Int n_lower, Real lowerVerts[][2], 00050 primStream* pStream); 00051 00052 void stripOfFanLeft(vertexArray* leftChain, 00053 Int largeIndex, 00054 Int smallIndex, 00055 gridWrap* grid, 00056 Int vlineIndex, 00057 Int ulineSmallIndex, 00058 Int ulineLargeIndex, 00059 primStream* pStream, 00060 Int gridLineUp 00061 ); 00062 void sampleLeftOneGridStep(vertexArray* leftChain, 00063 Int beginLeftIndex, 00064 Int endLeftIndex, 00065 gridBoundaryChain* leftGridChain, 00066 Int leftGridChainStartIndex, 00067 primStream* pStream 00068 ); 00069 00070 void sampleLeftSingleTrimEdgeRegion(Real upperVert[2], Real lowerVert[2], 00071 gridBoundaryChain* gridChain, 00072 Int beginIndex, 00073 Int endIndex, 00074 primStream* pStream); 00075 00076 void sampleLeftStripRec(vertexArray* leftChain, 00077 Int topLeftIndex, 00078 Int botLeftIndex, 00079 gridBoundaryChain* leftGridChain, 00080 Int leftGridChainStartIndex, 00081 Int leftGridChainEndIndex, 00082 primStream* pStream 00083 ); 00084 00085 void sampleLeftStrip(vertexArray* leftChain, 00086 Int topLeftIndex, 00087 Int botLeftIndex, 00088 gridBoundaryChain* leftGridChain, 00089 Int leftGridChainStartIndex, 00090 Int leftGridChainEndIndex, 00091 primStream* pStream 00092 ); 00093 00094 void findLeftGridIndices(directedLine* topEdge, Int firstGridIndex, Int lastGridIndex, gridWrap* grid, Int* ret_indices, Int* ret_inner); 00095 00096 void findRightGridIndices(directedLine* topEdge, Int firstGridIndex, Int lastGridIndex, gridWrap* grid, Int* ret_indices, Int* ret_inner); 00097 00098 void sampleMonoPoly(directedLine* polygon, gridWrap* grid, Int ulinear, Int vlinear, primStream *pStream, rectBlockArray* rbArray); 00099 00100 void sampleMonoPolyRec( 00101 Real* topVertex, 00102 Real* botVertex, 00103 vertexArray* leftChain, 00104 Int leftStartIndex, 00105 vertexArray* rightChain, 00106 Int rightStartIndex, 00107 gridBoundaryChain* leftGridChain, 00108 gridBoundaryChain* rightGridChain, 00109 Int gridStartIndex, 00110 primStream* pStream, 00111 rectBlockArray* rbArray 00112 ); 00113 00114 void sampleLeftStripRecF(vertexArray* leftChain, 00115 Int topLeftIndex, 00116 Int botLeftIndex, 00117 gridBoundaryChain* leftGridChain, 00118 Int leftGridChainStartIndex, 00119 Int leftGridChainEndIndex, 00120 primStream* pStream 00121 ); 00122 00123 void findUpCorners(Real *topVertex, 00124 vertexArray *leftChain, 00125 Int leftChainStartIndex, Int leftChainEndIndex, 00126 vertexArray *rightChain, 00127 Int rightChainStartIndex, Int rightChainEndIndex, 00128 Real v, 00129 Real uleft, 00130 Real uright, 00131 Int& ret_leftCornerWhere, 00132 Int& ret_leftCornerIndex, 00133 Int& ret_rightCornerWhere, 00134 Int& ret_rightCornerIndex 00135 ); 00136 void findDownCorners(Real *botVertex, 00137 vertexArray *leftChain, Int leftChainStartIndex, Int leftChainEndIndex, 00138 vertexArray *rightChain, Int rightChainStartIndex, Int rightChainEndIndex, 00139 Real v, 00140 Real uleft, 00141 Real uright, 00142 Int& ret_leftCornerWhere, 00143 Int& ret_leftCornerIndex, 00144 Int& ret_rightCornerWhere, 00145 Int& ret_rightCornerIndex 00146 ); 00147 void findNeck(vertexArray *leftChain, Int botLeftIndex, 00148 vertexArray *rightChain, Int botRightIndex, 00149 Int& leftLastIndex, /*left point of the neck*/ 00150 Int& rightLastIndex /*right point of the neck*/ 00151 ); 00152 00153 Int findNeckF(vertexArray *leftChain, Int botLeftIndex, 00154 vertexArray *rightChain, Int botRightIndex, 00155 gridBoundaryChain* leftGridChain, 00156 gridBoundaryChain* rightGridChain, 00157 Int gridStartIndex, 00158 Int& neckLeft, 00159 Int& neckRight); 00160 00161 void findTopAndBot(directedLine* polygon, 00162 directedLine*& topV, 00163 directedLine*& botV); 00164 void findGridChains(directedLine* top, directedLine* bot, 00165 gridWrap* grid, 00166 gridBoundaryChain*& leftGridChain, 00167 gridBoundaryChain*& rightGridChain); 00168 void toVertexArrays(directedLine* topV, directedLine* botV, vertexArray& leftChain, vertexArray& rightChain); 00169 00170 void drawCorners( 00171 Real* topV, Real* botV, 00172 vertexArray* leftChain, 00173 vertexArray* rightChain, 00174 gridBoundaryChain* leftGridChain, 00175 gridBoundaryChain* rightGridChain, 00176 Int gridIndex1, 00177 Int gridIndex2, 00178 Int leftCornerWhere, 00179 Int leftCornerIndex, 00180 Int rightCornerWhere, 00181 Int rightCornerIndex, 00182 Int bot_leftCornerWhere, 00183 Int bot_leftCornerIndex, 00184 Int bot_rightCornerWhere, 00185 Int bot_rightCornerIndex); 00186 00187 Int checkMiddle(vertexArray* chain, Int begin, Int end, 00188 Real vup, Real vbelow); 00189 00190 #endif 00191 Generated on Fri May 25 2012 04:21:57 for ReactOS by
1.7.6.1
|