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

patch.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  * patch.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/patch.h,v 1.1 2004/02/02 16:39:12 navaraf Exp $
00040  */
00041 
00042 #ifndef __glupatch_h_
00043 #define __glupatch_h_
00044 
00045 #include "types.h"
00046 #include "defines.h"
00047 
00048 class Quilt;
00049 class Mapdesc;
00050 
00051 
00052 struct Pspec {
00053     REAL        range[3];
00054     REAL        sidestep[2];
00055     REAL        stepsize;
00056     REAL        minstepsize;
00057     int         needsSubdivision;
00058 };
00059 
00060 struct Patchspec : public Pspec {
00061     int         order;
00062     int         stride;
00063     void        clamp( REAL );
00064     void        getstepsize( REAL );
00065     void        singleStep( void );
00066 };
00067 
00068 class Patch {
00069 public:
00070 friend class Subdivider;
00071 friend class Quilt;
00072 friend class Patchlist;
00073                 Patch( Quilt *, REAL*, REAL *, Patch * );
00074                 Patch( Patch &, int, REAL, Patch * );
00075     void        bbox( void );
00076     void        clamp( void );
00077     void        getstepsize( void );
00078     int         cullCheck( void );
00079     int         needsSubdivision( int );
00080     int         needsSamplingSubdivision( void );
00081     int         needsNonSamplingSubdivision( void );
00082 
00083     int                 get_uorder() {return pspec[0].order;}
00084     int                 get_vorder() {return pspec[1].order;}
00085 
00086 private:
00087 
00088     Mapdesc*        mapdesc;
00089     Patch*      next;
00090     int         cullval;
00091     int         notInBbox;
00092     int         needsSampling;
00093     REAL        cpts[MAXORDER*MAXORDER*MAXCOORDS]; //culling pts
00094     REAL        spts[MAXORDER*MAXORDER*MAXCOORDS]; //sampling pts
00095     REAL        bpts[MAXORDER*MAXORDER*MAXCOORDS]; //bbox pts
00096     Patchspec       pspec[2];
00097     void        checkBboxConstraint( void );
00098     REAL        bb[2][MAXCOORDS];
00099 };
00100 #endif /* __glupatch_h_ */

Generated on Mon May 28 2012 04:23:32 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.