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

primitiveStream.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 ** $Date: 2007-10-19 23:21:45 +0000 (Fri, 19 Oct 2007) $ $Revision: 1.1 $
00035 */
00036 /*
00037 ** $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/lib/glu32/libnurbs/nurbtess/primitiveStream.h,v 1.1 2004/02/02 16:39:13 navaraf Exp $
00038 */
00039 
00040 /*we do not use the constans GL_... so that this file is independent of
00041  *<GL/gl.h>
00042  */
00043 
00044 #ifndef _PRIMITIVE_STREAM_H
00045 #define _PRIMITIVE_STREAM_H
00046 
00047 enum {PRIMITIVE_STREAM_FAN, PRIMITIVE_STREAM_STRIP};
00048 
00049 #include "definitions.h"
00050 
00051 class primStream {
00052   Int *lengths; /*length[i]=number of vertices of ith primitive*/
00053   Int *types; /*each primive has a type: FAN or STREAM*/
00054   Real *vertices; /*the size >= 2 * num_vertices, each vertex (u,v)*/
00055 
00056   /*the following size information are used for dynamic arrays*/
00057   Int index_lengths; /*the current available entry*/
00058   Int size_lengths; /*the allocated size of the array: lengths*/
00059   Int index_vertices;
00060   Int size_vertices;
00061 
00062   /*the vertex is inserted one by one. counter is used to
00063    *count the number of vertices which have been inserted so far in
00064    *the current primitive
00065    */
00066   Int counter;
00067 
00068 public:
00069   primStream(Int sizeLengths, Int sizeVertices);
00070   ~primStream();
00071 
00072   Int get_n_prims() //num of primitives
00073     {
00074       return index_lengths;
00075     }
00076   Int get_type(Int i)  //the type of ith primitive
00077     {
00078       return  types[i];
00079     }
00080   Int get_length(Int i) //the length of the ith primitive
00081     {
00082       return lengths[i];
00083     }
00084   Real* get_vertices() {return vertices;}
00085 
00086   /*the begining of inserting a new primitive.
00087    *reset counter to be 0.
00088    */
00089   void begin();
00090   void insert(Real u, Real v);
00091   void insert(Real v[2]) {insert(v[0], v[1]);}
00092   void end(Int type);
00093 
00094   Int num_triangles();
00095 
00096   void triangle(Real A[2], Real B[2], Real C[2])
00097     {
00098       begin();
00099       insert(A);
00100       insert(B);
00101       insert(C);
00102       end(PRIMITIVE_STREAM_FAN);
00103     }
00104   void print();
00105   void draw(); /*using GL to draw the primitives*/
00106 };
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 #endif
00116 

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