ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

reader.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.