/usr/include/lib3ds/node.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 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | /* -*- c -*- */
#ifndef INCLUDED_LIB3DS_NODE_H
#define INCLUDED_LIB3DS_NODE_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: node.h,v 1.12 2007/06/20 17:04:09 jeh Exp $
*/
#ifndef INCLUDED_LIB3DS_TRACKS_H
#include <lib3ds/tracks.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/**
* Scene graph ambient color node data
* \ingroup node
*/
typedef struct Lib3dsAmbientData {
Lib3dsRgb col;
Lib3dsLin3Track col_track;
} Lib3dsAmbientData;
/**
* Scene graph object instance node data
* \ingroup node
*/
typedef struct Lib3dsObjectData {
Lib3dsVector pivot;
char instance[64];
Lib3dsVector bbox_min;
Lib3dsVector bbox_max;
Lib3dsVector pos;
Lib3dsLin3Track pos_track;
Lib3dsQuat rot;
Lib3dsQuatTrack rot_track;
Lib3dsVector scl;
Lib3dsLin3Track scl_track;
Lib3dsFloat morph_smooth;
char morph[64];
Lib3dsMorphTrack morph_track;
Lib3dsBool hide;
Lib3dsBoolTrack hide_track;
} Lib3dsObjectData;
/**
* Scene graph camera node data
* \ingroup node
*/
typedef struct Lib3dsCameraData {
Lib3dsVector pos;
Lib3dsLin3Track pos_track;
Lib3dsFloat fov;
Lib3dsLin1Track fov_track;
Lib3dsFloat roll;
Lib3dsLin1Track roll_track;
} Lib3dsCameraData;
/**
* Scene graph camera target node data
* \ingroup node
*/
typedef struct Lib3dsTargetData {
Lib3dsVector pos;
Lib3dsLin3Track pos_track;
} Lib3dsTargetData;
/**
* Scene graph light node data
* \ingroup node
*/
typedef struct Lib3dsLightData {
Lib3dsVector pos;
Lib3dsLin3Track pos_track;
Lib3dsRgb col;
Lib3dsLin3Track col_track;
Lib3dsFloat hotspot;
Lib3dsLin1Track hotspot_track;
Lib3dsFloat falloff;
Lib3dsLin1Track falloff_track;
Lib3dsFloat roll;
Lib3dsLin1Track roll_track;
} Lib3dsLightData;
/**
* Scene graph spotlight target node data
* \ingroup node
*/
typedef struct Lib3dsSpotData {
Lib3dsVector pos;
Lib3dsLin3Track pos_track;
} Lib3dsSpotData;
/**
* Scene graph node data union
* \ingroup node
*/
typedef union Lib3dsNodeData {
Lib3dsAmbientData ambient;
Lib3dsObjectData object;
Lib3dsCameraData camera;
Lib3dsTargetData target;
Lib3dsLightData light;
Lib3dsSpotData spot;
} Lib3dsNodeData;
/*!
* \ingroup node
*/
#define LIB3DS_NO_PARENT 65535
/**
* Scene graph node
* \ingroup node
*/
struct Lib3dsNode {
Lib3dsUserData user;
Lib3dsNode *next;
Lib3dsNode *childs;
Lib3dsNode *parent;
Lib3dsNodeTypes type;
Lib3dsWord node_id;
char name[64];
Lib3dsWord flags1;
Lib3dsWord flags2;
Lib3dsWord parent_id;
Lib3dsMatrix matrix;
Lib3dsNodeData data;
};
/**
* Node flags #1
* \ingroup node
*/
typedef enum {
LIB3DS_HIDDEN = 0x800
} Lib3dsNodeFlags1;
/**
* Node flags #2
* \ingroup node
*/
typedef enum {
LIB3DS_SHOW_PATH = 0x1,
LIB3DS_SMOOTHING = 0x2,
LIB3DS_MOTION_BLUR = 0x10,
LIB3DS_MORPH_MATERIALS = 0x40
} Lib3dsNodeFlags2;
extern LIB3DSAPI Lib3dsNode* lib3ds_node_new_ambient();
extern LIB3DSAPI Lib3dsNode* lib3ds_node_new_object();
extern LIB3DSAPI Lib3dsNode* lib3ds_node_new_camera();
extern LIB3DSAPI Lib3dsNode* lib3ds_node_new_target();
extern LIB3DSAPI Lib3dsNode* lib3ds_node_new_light();
extern LIB3DSAPI Lib3dsNode* lib3ds_node_new_spot();
extern LIB3DSAPI void lib3ds_node_free(Lib3dsNode *node);
extern LIB3DSAPI void lib3ds_node_eval(Lib3dsNode *node, Lib3dsFloat t);
extern LIB3DSAPI Lib3dsNode* lib3ds_node_by_name(Lib3dsNode *node, const char* name,
Lib3dsNodeTypes type);
extern LIB3DSAPI Lib3dsNode* lib3ds_node_by_id(Lib3dsNode *node, Lib3dsWord node_id);
extern LIB3DSAPI void lib3ds_node_dump(Lib3dsNode *node, Lib3dsIntd level);
extern LIB3DSAPI Lib3dsBool lib3ds_node_read(Lib3dsNode *node, Lib3dsFile *file, Lib3dsIo *io);
extern LIB3DSAPI Lib3dsBool lib3ds_node_write(Lib3dsNode *node, Lib3dsFile *file, Lib3dsIo *io);
#ifdef __cplusplus
}
#endif
#endif
|