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.
57 lines
1.8 KiB
57 lines
1.8 KiB
#ifndef __gluarctess_h_
|
|
#define __gluarctess_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. *
|
|
* *
|
|
**************************************************************************/
|
|
|
|
/*
|
|
* arctess.h - $Revision: 1.1 $
|
|
*/
|
|
|
|
#include "defines.h"
|
|
#include "types.h"
|
|
#include "arc.h"
|
|
|
|
class BezierArc;
|
|
class Pool;
|
|
class TrimVertexPool;
|
|
|
|
class ArcTessellator {
|
|
public:
|
|
ArcTessellator( TrimVertexPool&, Pool& );
|
|
~ArcTessellator( void );
|
|
void bezier( Arc *, REAL, REAL, REAL, REAL );
|
|
void pwl( Arc *, REAL, REAL, REAL, REAL, REAL );
|
|
void pwl_left( Arc *, REAL, REAL, REAL, REAL );
|
|
void pwl_right( Arc *, REAL, REAL, REAL, REAL );
|
|
void pwl_top( Arc *, REAL, REAL, REAL, REAL );
|
|
void pwl_bottom( Arc *, REAL, REAL, REAL, REAL );
|
|
void tessellateLinear( Arc *, REAL, REAL, int );
|
|
void tessellateNonlinear( Arc *, REAL, REAL, int );
|
|
|
|
private:
|
|
//mf
|
|
#ifdef NT
|
|
static REAL gl_Bernstein[][MAXORDER][MAXORDER];
|
|
#else
|
|
static const REAL gl_Bernstein[][MAXORDER][MAXORDER];
|
|
#endif
|
|
Pool& pwlarcpool;
|
|
TrimVertexPool& trimvertexpool;
|
|
#ifdef NT
|
|
static void trim_power_coeffs( BezierArc *, REAL *, int );
|
|
#else
|
|
static void trim_power_coeffs( BezierArc *, REAL[MAXORDER], int );
|
|
#endif
|
|
};
|
|
|
|
#endif /* __gluarctess_h_ */
|