1 /* $Id: clip.h,v 1.3 1998/02/03 23:45:36 brianp Exp $ */ 2 3 /* 4 * Mesa 3-D graphics library 5 * Version: 2.6 6 * Copyright (C) 1995-1996 Brian Paul 7 * 8 * This library is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Library General Public 10 * License as published by the Free Software Foundation; either 11 * version 2 of the License, or (at your option) any later version. 12 * 13 * This library is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Library General Public License for more details. 17 * 18 * You should have received a copy of the GNU Library General Public 19 * License along with this library; if not, write to the Free 20 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21 */ 22 23 24 /* 25 * $Log: clip.h,v $ 26 * Revision 1.3 1998/02/03 23:45:36 brianp 27 * added space parameter to clip interpolation functions 28 * 29 * Revision 1.2 1998/01/06 02:40:52 brianp 30 * added DavidB's clipping interpolation optimization 31 * 32 * Revision 1.1 1996/09/13 01:38:16 brianp 33 * Initial revision 34 * 35 */ 36 37 38 #ifndef CLIP_H 39 #define CLIP_H 40 41 42 #include "types.h" 43 44 45 46 #ifdef DEBUG 47 # define GL_VIEWCLIP_POINT( V ) gl_viewclip_point( V ) 48 #else 49 # define GL_VIEWCLIP_POINT( V ) \ 50 ( (V)[0] <= (V)[3] && (V)[0] >= -(V)[3] \ 51 && (V)[1] <= (V)[3] && (V)[1] >= -(V)[3] \ 52 && (V)[2] <= (V)[3] && (V)[2] >= -(V)[3] ) 53 #endif 54 55 56 57 58 extern GLuint gl_viewclip_point( const GLfloat v[] ); 59 60 extern GLuint gl_viewclip_line( GLcontext* ctx, GLuint *i, GLuint *j ); 61 62 extern GLuint gl_viewclip_polygon( GLcontext* ctx, GLuint n, GLuint vlist[] ); 63 64 65 66 extern GLuint gl_userclip_point( GLcontext* ctx, const GLfloat v[] ); 67 68 extern GLuint gl_userclip_line( GLcontext* ctx, GLuint *i, GLuint *j ); 69 70 extern GLuint gl_userclip_polygon( GLcontext* ctx, GLuint n, GLuint vlist[] ); 71 72 73 extern void gl_ClipPlane( GLcontext* ctx, 74 GLenum plane, const GLfloat *equation ); 75 76 extern void gl_GetClipPlane( GLcontext* ctx, 77 GLenum plane, GLdouble *equation ); 78 79 80 /* 81 * Clipping interpolation functions 82 */ 83 84 extern void interpolate_aux( GLcontext *ctx, GLuint space, 85 GLuint dst, GLfloat t, GLuint in, GLuint out ); 86 87 extern void interpolate_aux_color_tex2( GLcontext *ctx, GLuint space, 88 GLuint dst, GLfloat t, GLuint in, GLuint out ); 89 90 extern void interpolate_aux_tex2( GLcontext *ctx, GLuint space, 91 GLuint dst, GLfloat t, GLuint in, GLuint out ); 92 93 extern void interpolate_aux_color( GLcontext *ctx, GLuint space, 94 GLuint dst, GLfloat t, GLuint in, GLuint out ); 95 96 97 #endif 98 99