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