1 /* 2 * Copyright (C) 1998 Janne Löf <jlof@mail.student.oulu.fi> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library; if not, write to the Free 16 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 */ 18 19 20 #ifndef LW_H 21 #define LW_H 22 23 #include <glib.h> 24 #include <gtkgl/gdkgl.h> 25 #include <GL/gl.h> 26 27 #define LW_MAX_POINTS 200 28 #define LW_MAX_NAME_LEN 500 29 30 typedef struct { 31 char name[LW_MAX_NAME_LEN]; 32 GLfloat r,g,b; 33 } lwMaterial; 34 35 typedef struct { 36 int material; /* material of this face */ 37 int index_cnt; /* number of vertices */ 38 int *index; /* index to vertex */ 39 float *texcoord; /* u,v texture coordinates */ 40 } lwFace; 41 42 typedef struct { 43 int face_cnt; 44 lwFace *face; 45 46 int material_cnt; 47 lwMaterial *material; 48 49 int vertex_cnt; 50 GLfloat *vertex; 51 52 } lwObject; 53 54 55 gint lw_is_lwobject(const char *lw_file); 56 lwObject *lw_object_read(const char *lw_file); 57 void lw_object_free( lwObject *lw_object); 58 void lw_object_show(const lwObject *lw_object); 59 60 GLfloat lw_object_radius(const lwObject *lw_object); 61 void lw_object_scale (lwObject *lw_object, GLfloat scale); 62 63 #endif /* LW_H */ 64 65