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

dataTransform.cc
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: 2006-03-12 00:07:02 +0000 (Sun, 12 Mar 2006) $ $Revision: 1.1 $
00035 */
00036 /*
00037 ** $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/lib/glu32/libnurbs/internals/dataTransform.cc,v 1.1 2004/02/02 16:39:11 navaraf Exp $
00038 */
00039 
00040 #include <stdlib.h>
00041 #include <stdio.h>
00042 #include "glimports.h"
00043 #include "myassert.h"
00044 #include "nurbsconsts.h"
00045 #include "trimvertex.h"
00046 #include "dataTransform.h"
00047 
00048 extern directedLine* arcLoopToDLineLoop(Arc_ptr loop);
00049 
00050 directedLine* bin_to_DLineLoops(Bin& bin)
00051 {
00052   directedLine *ret=NULL;
00053   directedLine *temp;
00054   bin.markall();
00055   for(Arc_ptr jarc=bin.firstarc(); jarc; jarc=bin.nextarc()){
00056     if(jarc->ismarked()) {
00057       assert(jarc->check() != 0);
00058       Arc_ptr jarchead = jarc;
00059       do {
00060     jarc->clearmark();
00061     jarc = jarc->next;
00062       } while(jarc != jarchead);
00063       temp =  arcLoopToDLineLoop(jarc);
00064       ret = temp->insertPolygon(ret);
00065     }
00066   }
00067   return ret;
00068 }
00069 
00070 directedLine* o_pwlcurve_to_DLines(directedLine* original, O_pwlcurve* pwl)
00071 {
00072   directedLine* ret = original;
00073   for(Int i=0; i<pwl->npts-1; i++)
00074     {
00075       sampledLine* sline = new sampledLine(2);
00076       sline->setPoint(0, pwl->pts[i].param);
00077       sline->setPoint(1, pwl->pts[i+1].param);
00078       directedLine* dline = new directedLine(INCREASING, sline);
00079       if(ret == NULL)
00080     ret = dline;
00081       else
00082     ret->insert(dline);
00083     }
00084   return ret;      
00085 }
00086 
00087 directedLine* o_curve_to_DLineLoop(O_curve* cur)
00088 {
00089   directedLine *ret;
00090   if(cur == NULL)
00091     return NULL;
00092   assert(cur->curvetype == ct_pwlcurve);
00093   ret = o_pwlcurve_to_DLines(NULL, cur->curve.o_pwlcurve);
00094   for(O_curve* temp = cur->next; temp != NULL; temp = temp->next)
00095     {
00096       assert(temp->curvetype == ct_pwlcurve);
00097       ret = o_pwlcurve_to_DLines(ret, temp->curve.o_pwlcurve);
00098     }
00099   return ret;
00100 }
00101 
00102 directedLine* o_trim_to_DLineLoops(O_trim* trim)
00103 {
00104   O_trim* temp;
00105   directedLine *ret;
00106   if(trim == NULL)
00107     return NULL;
00108   ret = o_curve_to_DLineLoop(trim->o_curve);
00109 
00110   for(temp=trim->next; temp != NULL; temp = temp->next)
00111     {
00112       ret = ret->insertPolygon(o_curve_to_DLineLoop(temp->o_curve));
00113     }
00114   return ret;
00115 }

Generated on Sun May 27 2012 04:23:39 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.