1 /* Copyright (C) 1992-1998 The Geometry Center 2 * Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips 3 * 4 * This file is part of Geomview. 5 * 6 * Geomview is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU Lesser General Public License as published 8 * by the Free Software Foundation; either version 2, or (at your option) 9 * any later version. 10 * 11 * Geomview is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with Geomview; see the file COPYING. If not, write 18 * to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, 19 * USA, or visit http://www.gnu.org. 20 */ 21 22 23 /* Authors: Charlie Gunn, Stuart Levy, Tamara Munzner, Mark Phillips */ 24 25 #ifndef BEZIERDEFS 26 #define BEZIERDEFS 27 28 #include "mesh.h" 29 #include "list.h" 30 #include "bsptree.h" 31 32 #define BEZIERMAGIC GeomMagic ('b', 1) 33 34 #define BEZ_ST VERT_ST 35 #define BEZ_C VERT_C 36 #define BEZ_4D VERT_4D 37 #define BEZ_BINARY GEOMFLAG(0x01) 38 #define BEZ_REMESH GEOMFLAG(0x02) /* need to recompute mesh */ 39 40 #define MAX_BEZ_DEGREE 12 41 #define MAX_BEZ_DIMN 4 42 #define BEZ_DEFAULT_MESH_SIZE 10 43 44 typedef struct Bezier Bezier; 45 46 GeomClass *BezierMethods(), *BezierListMethods(); 47 Mesh *BezierReDice( Bezier * ); 48 Bezier *BezierDice( Bezier *, int nu, int nv ); 49 char *BezierListName(); 50 List *BezierListLoad(); 51 List *BezierListFLoad(); 52 List *BezierListSave(); 53 List *BezierListFSave(); 54 char *BezierName(); 55 BBox *BezierBound(); 56 Geom *BezierBoundSphere( Bezier *, 57 Transform T, TransformN *TN, int *axes, 58 int ); 59 Bezier *BezierEvert(); 60 Bezier *BezierDraw( Bezier *bezier ); 61 Bezier *BezierBSPTree(Bezier *bezier, BSPTree *tree, int action); 62 Geom *BezierPick( Bezier *, Pick *, Appearance *, Transform, TransformN *, int *axes ); 63 Bezier *BezierTransform( Bezier *, Transform, TransformN * ); 64 65 int BezierExport(); 66 int BezierUnexport(); 67 Bezier *BezierImport(); 68 69 #endif /* ! BEZIERDEFS */ 70