/usr/include/lib3ds/material.h is in lib3ds-dev 1.3.0-8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | /* -*- c -*- */
#ifndef INCLUDED_LIB3DS_MATERIAL_H
#define INCLUDED_LIB3DS_MATERIAL_H
/*
* The 3D Studio File Format Library
* Copyright (C) 1996-2007 by Jan Eric Kyprianidis <www.kyprianidis.com>
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: material.h,v 1.18 2007/06/20 17:04:08 jeh Exp $
*/
#ifndef INCLUDED_LIB3DS_TYPES_H
#include <lib3ds/types.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/**
* \ingroup material
*/
typedef enum Lib3dsTextureMapFlags {
LIB3DS_DECALE =0x0001,
LIB3DS_MIRROR =0x0002,
LIB3DS_NEGATE =0x0008,
LIB3DS_NO_TILE =0x0010,
LIB3DS_SUMMED_AREA =0x0020,
LIB3DS_ALPHA_SOURCE =0x0040,
LIB3DS_TINT =0x0080,
LIB3DS_IGNORE_ALPHA =0x0100,
LIB3DS_RGB_TINT =0x0200
} Lib3dsTextureMapFlags;
/**
* Mateial texture map
* \ingroup material
*/
typedef struct Lib3dsTextureMap {
Lib3dsUserData user;
char name[64];
Lib3dsDword flags;
Lib3dsFloat percent;
Lib3dsFloat blur;
Lib3dsFloat scale[2];
Lib3dsFloat offset[2];
Lib3dsFloat rotation;
Lib3dsRgb tint_1;
Lib3dsRgb tint_2;
Lib3dsRgb tint_r;
Lib3dsRgb tint_g;
Lib3dsRgb tint_b;
} Lib3dsTextureMap;
/**
* \ingroup material
*/
typedef enum Lib3dsAutoReflMapFlags {
LIB3DS_USE_REFL_MAP =0x0001,
LIB3DS_READ_FIRST_FRAME_ONLY =0x0004,
LIB3DS_FLAT_MIRROR =0x0008
} Lib3dsAutoReflectionMapFlags;
/**
* \ingroup material
*/
typedef enum Lib3dsAutoReflMapAntiAliasLevel {
LIB3DS_ANTI_ALIAS_NONE =0,
LIB3DS_ANTI_ALIAS_LOW =1,
LIB3DS_ANTI_ALIAS_MEDIUM =2,
LIB3DS_ANTI_ALIAS_HIGH =3
} Lib3dsAutoReflMapAntiAliasLevel;
/**
* Auto reflection map settings
* \ingroup material
*/
typedef struct Lib3dsAutoReflMap {
Lib3dsDword flags;
Lib3dsIntd level;
Lib3dsIntd size;
Lib3dsIntd frame_step;
} Lib3dsAutoReflMap;
/**
* \ingroup material
*/
typedef enum Lib3dsMaterialShading {
LIB3DS_WIRE_FRAME =0,
LIB3DS_FLAT =1,
LIB3DS_GOURAUD =2,
LIB3DS_PHONG =3,
LIB3DS_METAL =4
} Lib3dsMaterialShading;
/**
* Material
* \ingroup material
*/
struct Lib3dsMaterial {
Lib3dsUserData user; /*! Arbitrary user data */
Lib3dsMaterial *next;
char name[64]; /*! Material name */
Lib3dsRgba ambient; /*! Material ambient reflectivity */
Lib3dsRgba diffuse; /*! Material diffuse reflectivity */
Lib3dsRgba specular; /*! Material specular reflectivity */
Lib3dsFloat shininess; /*! Material specular exponent */
Lib3dsFloat shin_strength;
Lib3dsBool use_blur;
Lib3dsFloat blur;
Lib3dsFloat transparency;
Lib3dsFloat falloff;
Lib3dsBool additive;
Lib3dsFloat self_ilpct;
Lib3dsBool use_falloff;
Lib3dsBool self_illum;
Lib3dsIntw shading;
Lib3dsBool soften;
Lib3dsBool face_map;
Lib3dsBool two_sided; /*! Material visible from back */
Lib3dsBool map_decal;
Lib3dsBool use_wire;
Lib3dsBool use_wire_abs;
Lib3dsFloat wire_size;
Lib3dsTextureMap texture1_map;
Lib3dsTextureMap texture1_mask;
Lib3dsTextureMap texture2_map;
Lib3dsTextureMap texture2_mask;
Lib3dsTextureMap opacity_map;
Lib3dsTextureMap opacity_mask;
Lib3dsTextureMap bump_map;
Lib3dsTextureMap bump_mask;
Lib3dsTextureMap specular_map;
Lib3dsTextureMap specular_mask;
Lib3dsTextureMap shininess_map;
Lib3dsTextureMap shininess_mask;
Lib3dsTextureMap self_illum_map;
Lib3dsTextureMap self_illum_mask;
Lib3dsTextureMap reflection_map;
Lib3dsTextureMap reflection_mask;
Lib3dsAutoReflMap autorefl_map;
};
extern LIB3DSAPI Lib3dsMaterial* lib3ds_material_new();
extern LIB3DSAPI void lib3ds_material_free(Lib3dsMaterial *material);
extern LIB3DSAPI void lib3ds_material_dump(Lib3dsMaterial *material);
extern LIB3DSAPI Lib3dsBool lib3ds_material_read(Lib3dsMaterial *material, Lib3dsIo *io);
extern LIB3DSAPI Lib3dsBool lib3ds_material_write(Lib3dsMaterial *material, Lib3dsIo *io);
#ifdef __cplusplus
}
#endif
#endif
|