root/OpenSceneGraph/trunk/src/osgPlugins/3ds/light.h @ 10076

Revision 10076, 2.2 kB (checked in by robert, 5 years ago)

From Neil Hughes, converted across to use istream for reading data from file to enable reading .3ds files over http (use OSG's libcurl plugin).

From Robert Osfield, ammendments of the above to better support reading of files from local directories.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[8]1/* -*- c -*- */
2#ifndef INCLUDED_LIB3DS_LIGHT_H
3#define INCLUDED_LIB3DS_LIGHT_H
4/*
5 * The 3D Studio File Format Library
6 * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net>
7 * All rights reserved.
8 *
9 * This program is  free  software;  you can redistribute it and/or modify it
10 * under the terms of the  GNU Lesser General Public License  as published by
11 * the  Free Software Foundation;  either version 2.1 of the License,  or (at
12 * your option) any later version.
13 *
14 * This  program  is  distributed in  the  hope that it will  be useful,  but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 * or  FITNESS FOR A  PARTICULAR PURPOSE.  See the  GNU Lesser General Public 
17 * License for more details.
18 *
19 * You should  have received  a copy of the GNU Lesser General Public License
20 * along with  this program;  if not, write to the  Free Software Foundation,
21 * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 * $Id$
24 */
25
26#ifndef INCLUDED_LIB3DS_TYPES_H
[1563]27#include "types.h"
[8]28#endif
29
[10076]30#include <iostream>
31using namespace std;
32
[8]33#ifdef __cplusplus
34extern "C" {
35#endif
36
[10076]37
[8]38/*!
39 * Light
40 * \ingroup light
41 */
42struct _Lib3dsLight {
43    Lib3dsLight *next;
44    char name[64];
45    Lib3dsBool spot_light;
46    Lib3dsBool see_cone;
47    Lib3dsRgb color;
48    Lib3dsVector position;
49    Lib3dsVector spot;
50    Lib3dsFloat roll;
51    Lib3dsBool off;
52    Lib3dsFloat outer_range;
53    Lib3dsFloat inner_range;
54    Lib3dsFloat multiplier;
55    /*const char** excludes;*/
56    Lib3dsFloat attenuation;
57    Lib3dsBool rectangular_spot;
58    Lib3dsBool shadowed;
59    Lib3dsFloat shadow_bias;
60    Lib3dsFloat shadow_filter;
61    Lib3dsIntw shadow_size;
62    Lib3dsFloat spot_aspect;
63    Lib3dsBool use_projector;
64    char projector[64];
65    Lib3dsIntd spot_overshoot;
66    Lib3dsBool ray_shadows;
67    Lib3dsFloat ray_bias;
68    Lib3dsFloat hot_spot;
69    Lib3dsFloat fall_off;
70};
71
72extern LIB3DSAPI Lib3dsLight* lib3ds_light_new(const char *name);
73extern LIB3DSAPI void lib3ds_light_free(Lib3dsLight *mesh);
[151]74extern LIB3DSAPI void lib3ds_light_dump(Lib3dsLight *light);
[10076]75extern LIB3DSAPI Lib3dsBool lib3ds_light_read(Lib3dsLight *light, iostream *strm);
76extern LIB3DSAPI Lib3dsBool lib3ds_light_write(Lib3dsLight *light, iostream *strm);
[8]77
78#ifdef __cplusplus
[6461]79}
[8]80#endif
81#endif
Note: See TracBrowser for help on using the browser.