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

trimline.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  * trimline.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/trimline.h,v 1.1 2004/02/02 16:39:13 navaraf Exp $
00040  */
00041 
00042 #ifndef __glutrimline_h_
00043 #define __glutrimline_h_
00044 
00045 class Arc;
00046 class Backend;
00047 
00048 #include "trimvertex.h"
00049 #include "jarcloc.h"
00050 
00051 
00052 class Trimline {
00053 private:
00054     TrimVertex**    pts;
00055     long        numverts;
00056     long        i;
00057     long        size;
00058     Jarcloc     jarcl;
00059     TrimVertex      t, b;
00060     TrimVertex      *tinterp, *binterp;
00061     void        reset( void ) { numverts = 0; }
00062     inline void     grow( long );
00063     inline void     swap( void );
00064     inline void     append( TrimVertex * );
00065     static long     interpvert( TrimVertex *, TrimVertex *, TrimVertex *, REAL );
00066 
00067 
00068 
00069 public:
00070             Trimline();
00071             ~Trimline();
00072     void        init( TrimVertex * );
00073     void        init( long, Arc_ptr, long );
00074     void        getNextPt( void );
00075     void        getPrevPt( void );
00076     void        getNextPts( REAL, Backend & );
00077     void        getPrevPts( REAL, Backend & );
00078     void        getNextPts( Arc_ptr );
00079     void        getPrevPts( Arc_ptr );
00080     inline TrimVertex * next( void );
00081     inline TrimVertex * prev( void );
00082     inline TrimVertex * first( void );
00083     inline TrimVertex * last( void );
00084 };
00085 
00086 inline TrimVertex *
00087 Trimline::next( void )
00088 {
00089     if( i < numverts) return pts[i++]; else return 0;
00090 }
00091 
00092 inline TrimVertex *
00093 Trimline::prev( void )
00094 {
00095     if( i >= 0 ) return pts[i--]; else return 0;
00096 }
00097 
00098 inline TrimVertex *
00099 Trimline::first( void )
00100 {
00101     i = 0; return pts[i];
00102 }
00103 
00104 inline TrimVertex *
00105 Trimline::last( void )
00106 {
00107     i = numverts; return pts[--i];
00108 }
00109 #endif /* __glutrimline_h_ */

Generated on Sat May 26 2012 04:22:18 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.