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

bin.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  * bin.h
00037  *
00038  * $Date: 2009-08-30 15:53:16 +0000 (Sun, 30 Aug 2009) $ $Revision: 1.1 $
00039  * $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/lib/glu32/libnurbs/internals/bin.h,v 1.1 2004/02/02 16:39:11 navaraf Exp $
00040  */
00041 
00042 #ifndef __glubin_h_
00043 #define __glubin_h_
00044 
00045 #include "myassert.h"
00046 #include "arc.h"
00047 #include "defines.h"
00048 
00049 class Bin
00050 { /* a linked list of jordan arcs */
00051 private:
00052     Arc_ptr head;/*first arc on list */
00053     Arc_ptr     current;    /* current arc on list */
00054 public:
00055                 Bin();
00056             ~Bin();
00057     inline Arc_ptr  firstarc( void );
00058     inline Arc_ptr  nextarc( void );
00059     inline Arc_ptr  removearc( void );
00060     inline int      isnonempty( void ) { return (head ? 1 : 0); }
00061     inline void     addarc( Arc_ptr );
00062     void        remove_this_arc( Arc_ptr );
00063     int         numarcs( void );
00064     void        adopt( void );
00065     void        markall( void );
00066     void        show( const char * );
00067     void        listBezier( void );
00068 };
00069 
00070 /*----------------------------------------------------------------------------
00071  * Bin::addarc - add an Arc_ptr to head of linked list of Arc_ptr
00072  *----------------------------------------------------------------------------
00073  */
00074 
00075 inline void
00076 Bin::addarc( Arc_ptr jarc )
00077 {
00078    jarc->link = head;
00079    head = jarc;
00080 }
00081 
00082 /*----------------------------------------------------------------------------
00083  * Bin::removearc - remove first Arc_ptr from bin
00084  *----------------------------------------------------------------------------
00085  */
00086 
00087 inline Arc_ptr
00088 Bin::removearc( void )
00089 {
00090     Arc_ptr jarc = head;
00091 
00092     if( jarc ) head = jarc->link;
00093     return jarc;
00094 }
00095 
00096 
00097 /*----------------------------------------------------------------------------
00098  * BinIter::nextarc - return current arc in bin and advance pointer to next arc
00099  *----------------------------------------------------------------------------
00100  */
00101 
00102 inline Arc_ptr
00103 Bin::nextarc( void )
00104 {
00105     Arc_ptr jarc = current;
00106 
00107 #ifdef DEBUG
00108     assert( jarc->check() != 0 );
00109 #endif
00110 
00111     if( jarc ) current = jarc->link;
00112     return jarc;
00113 }
00114 
00115 /*----------------------------------------------------------------------------
00116  * BinIter::firstarc - set current arc to first arc of bin advance to next arc
00117  *----------------------------------------------------------------------------
00118  */
00119 
00120 inline Arc_ptr
00121 Bin::firstarc( void )
00122 {
00123     current = head;
00124     return nextarc( );
00125 }
00126 
00127 #endif /* __glubin_h_ */

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