You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.5 KiB
74 lines
2.5 KiB
#ifndef __gluquilt_h_
|
|
#define __gluquilt_h_
|
|
/**************************************************************************
|
|
* *
|
|
* Copyright (C) 1992, Silicon Graphics, Inc. *
|
|
* *
|
|
* These coded instructions, statements, and computer programs contain *
|
|
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
|
* are protected by Federal copyright law. They may not be disclosed *
|
|
* to third parties or copied or duplicated in any form, in whole or *
|
|
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
|
* *
|
|
**************************************************************************/
|
|
|
|
/*
|
|
* quilt.h - $Revision: 1.1 $
|
|
*/
|
|
|
|
#include "defines.h"
|
|
#include "bufpool.h"
|
|
#include "types.h"
|
|
|
|
class Backend;
|
|
class Mapdesc;
|
|
class Flist;
|
|
class Knotvector;
|
|
|
|
/* constants for memory allocation of NURBS to Bezier conversion */
|
|
#define MAXDIM 2
|
|
|
|
struct Quiltspec { /* a specification for a dimension of a quilt */
|
|
int stride; /* words between points */
|
|
int width; /* number of segments */
|
|
int offset; /* words to first point */
|
|
int order; /* order */
|
|
int index; /* current segment number */
|
|
int bdry[2]; /* boundary edge flag */
|
|
REAL step_size;
|
|
Knot * breakpoints;
|
|
};
|
|
|
|
typedef Quiltspec *Quiltspec_ptr;
|
|
|
|
#ifdef NT
|
|
class Quilt : public PooledObj { public: /* an array of bezier patches */
|
|
#else
|
|
struct Quilt : PooledObj { /* an array of bezier patches */
|
|
#endif
|
|
Quilt( Mapdesc * );
|
|
Mapdesc * mapdesc; /* map descriptor */
|
|
REAL * cpts; /* control points */
|
|
Quiltspec qspec[MAXDIM]; /* the dimensional data */
|
|
Quiltspec_ptr eqspec; /* qspec trailer */
|
|
Quilt *next; /* next quilt in linked list */
|
|
|
|
void deleteMe( Pool& );
|
|
void toBezier( Knotvector &, INREAL *, long );
|
|
void toBezier( Knotvector &, Knotvector &, INREAL *, long );
|
|
void select( REAL *, REAL * );
|
|
int getDimension( void ) { return eqspec - qspec; }
|
|
void download( Backend & );
|
|
void downloadAll( REAL *, REAL *, Backend & );
|
|
int isCulled( void );
|
|
void getRange( REAL *, REAL *, Flist&, Flist & );
|
|
void getRange( REAL *, REAL *, int, Flist & );
|
|
void getRange( REAL *, REAL *, Flist& );
|
|
void findRates( Flist& slist, Flist& tlist, REAL[2] );
|
|
void findSampleRates( Flist& slist, Flist& tlist );
|
|
void show();
|
|
};
|
|
|
|
typedef Quilt *Quilt_ptr;
|
|
|
|
#endif /* __gluquilt_h_ */
|