Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenreader.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 00035 /* 00036 * reader.h 00037 * 00038 * $Date: 2007-10-19 23:21:45 +0000 (Fri, 19 Oct 2007) $ $Revision: 1.1 $ 00039 * $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/lib/glu32/libnurbs/internals/reader.h,v 1.1 2004/02/02 16:39:12 navaraf Exp $ 00040 */ 00041 00042 #ifndef __glureader_h_ 00043 #define __glureader_h_ 00044 00045 #include "bufpool.h" 00046 #include "types.h" 00047 00048 enum Curvetype { ct_nurbscurve, ct_pwlcurve, ct_none }; 00049 00050 struct Property; 00051 struct O_surface; 00052 struct O_nurbssurface; 00053 struct O_trim; 00054 class O_pwlcurve; 00055 struct O_nurbscurve; 00056 struct O_curve; 00057 class Quilt; 00058 class TrimVertex; 00059 00060 00061 struct O_curve : public PooledObj { 00062 union { 00063 O_nurbscurve *o_nurbscurve; 00064 O_pwlcurve *o_pwlcurve; 00065 } curve; 00066 Curvetype curvetype; /* arc type: pwl or nurbs */ 00067 O_curve * next; /* next arc in loop */ 00068 O_surface * owner; /* owning surface */ 00069 int used; /* curve called in cur surf */ 00070 int save; /* 1 if in display list */ 00071 long nuid; 00072 O_curve() { next = 0; used = 0; owner = 0; 00073 curve.o_pwlcurve = 0; } 00074 }; 00075 00076 struct O_nurbscurve : public PooledObj { 00077 Quilt *bezier_curves; /* array of bezier curves */ 00078 long type; /* range descriptor */ 00079 REAL tesselation; /* tesselation tolerance */ 00080 int method; /* tesselation method */ 00081 O_nurbscurve * next; /* next curve in list */ 00082 int used; /* curve called in cur surf */ 00083 int save; /* 1 if in display list */ 00084 O_curve * owner; /* owning curve */ 00085 O_nurbscurve( long _type ) 00086 { type = _type; owner = 0; next = 0; used = 0; } 00087 }; 00088 00089 class O_pwlcurve : public PooledObj { 00090 public: 00091 TrimVertex *pts; /* array of trim vertices */ 00092 int npts; /* number of trim vertices */ 00093 O_pwlcurve * next; /* next curve in list */ 00094 int used; /* curve called in cur surf */ 00095 int save; /* 1 if in display list */ 00096 O_curve * owner; /* owning curve */ 00097 O_pwlcurve( long, long, INREAL *, long, TrimVertex * ); 00098 }; 00099 00100 struct O_trim : public PooledObj { 00101 O_curve *o_curve; /* closed trim loop */ 00102 O_trim * next; /* next loop along trim */ 00103 int save; /* 1 if in display list */ 00104 O_trim() { next = 0; o_curve = 0; } 00105 }; 00106 00107 struct O_nurbssurface : public PooledObj { 00108 Quilt * bezier_patches;/* array of bezier patches */ 00109 long type; /* range descriptor */ 00110 O_surface * owner; /* owning surface */ 00111 O_nurbssurface * next; /* next surface in chain */ 00112 int save; /* 1 if in display list */ 00113 int used; /* 1 if prev called in block */ 00114 O_nurbssurface( long _type ) 00115 { type = _type; owner = 0; next = 0; used = 0; } 00116 }; 00117 00118 struct O_surface : public PooledObj { 00119 O_nurbssurface * o_nurbssurface; /* linked list of surfaces */ 00120 O_trim * o_trim; /* list of trim loops */ 00121 int save; /* 1 if in display list */ 00122 long nuid; 00123 O_surface() { o_trim = 0; o_nurbssurface = 0; } 00124 }; 00125 00126 struct Property : public PooledObj { 00127 long type; 00128 long tag; 00129 REAL value; 00130 int save; /* 1 if in display list */ 00131 Property( long _type, long _tag, INREAL _value ) 00132 { type = _type; tag = _tag; value = (REAL) _value; } 00133 Property( long _tag, INREAL _value ) 00134 { type = 0; tag = _tag; value = (REAL) _value; } 00135 }; 00136 00137 class NurbsTessellator; 00138 #endif /* __glureader_h_ */ Generated on Sun May 27 2012 04:23:40 for ReactOS by
1.7.6.1
|