zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lib3ds.h File Reference
#include <stddef.h>

Go to the source code of this file.

Classes

struct  Lib3dsAmbientColorNode
 
struct  Lib3dsAtmosphere
 
struct  Lib3dsBackground
 
struct  Lib3dsCamera
 
struct  Lib3dsCameraNode
 
struct  Lib3dsFace
 
struct  Lib3dsFile
 
struct  Lib3dsIo
 
struct  Lib3dsKey
 
struct  Lib3dsLight
 
struct  Lib3dsMaterial
 
struct  Lib3dsMesh
 
struct  Lib3dsMeshInstanceNode
 
struct  Lib3dsNode
 
struct  Lib3dsOmnilightNode
 
struct  Lib3dsShadow
 
struct  Lib3dsSpotlightNode
 
struct  Lib3dsTargetNode
 
struct  Lib3dsTextureMap
 
struct  Lib3dsTrack
 
struct  Lib3dsView
 
struct  Lib3dsViewport
 

Macros

#define LIB3DS_LAYOUT_MAX_VIEWS   32
 
#define LIB3DSAPI
 

Typedefs

typedef struct
Lib3dsAmbientColorNode 
Lib3dsAmbientColorNode
 
typedef struct Lib3dsAtmosphere Lib3dsAtmosphere
 
typedef enum Lib3dsAutoReflMapFlags Lib3dsAutoReflMapFlags
 
typedef struct Lib3dsBackground Lib3dsBackground
 
typedef struct Lib3dsCamera Lib3dsCamera
 
typedef struct Lib3dsCameraNode Lib3dsCameraNode
 
typedef struct Lib3dsFace Lib3dsFace
 
typedef enum Lib3dsFaceFlags Lib3dsFaceFlags
 
typedef struct Lib3dsFile Lib3dsFile
 
typedef struct Lib3dsIo Lib3dsIo
 
typedef enum Lib3dsIoSeek Lib3dsIoSeek
 
typedef struct Lib3dsKey Lib3dsKey
 
typedef enum Lib3dsKeyFlags Lib3dsKeyFlags
 
typedef enum Lib3dsLayoutStyle Lib3dsLayoutStyle
 
typedef struct Lib3dsLight Lib3dsLight
 
typedef enum Lib3dsLogLevel Lib3dsLogLevel
 
typedef struct Lib3dsMaterial Lib3dsMaterial
 
typedef struct Lib3dsMesh Lib3dsMesh
 
typedef struct
Lib3dsMeshInstanceNode 
Lib3dsMeshInstanceNode
 
typedef struct Lib3dsNode Lib3dsNode
 
typedef enum Lib3dsNodeFlags Lib3dsNodeFlags
 
typedef enum Lib3dsNodeType Lib3dsNodeType
 
typedef enum Lib3dsObjectFlags Lib3dsObjectFlags
 
typedef struct Lib3dsOmnilightNode Lib3dsOmnilightNode
 
typedef enum Lib3dsShading Lib3dsShading
 
typedef struct Lib3dsShadow Lib3dsShadow
 
typedef struct Lib3dsSpotlightNode Lib3dsSpotlightNode
 
typedef struct Lib3dsTargetNode Lib3dsTargetNode
 
typedef struct Lib3dsTextureMap Lib3dsTextureMap
 
typedef enum Lib3dsTextureMapFlags Lib3dsTextureMapFlags
 
typedef struct Lib3dsTrack Lib3dsTrack
 
typedef enum Lib3dsTrackType Lib3dsTrackType
 
typedef struct Lib3dsView Lib3dsView
 
typedef struct Lib3dsViewport Lib3dsViewport
 
typedef enum Lib3dsViewType Lib3dsViewType
 

Enumerations

enum  Lib3dsAutoReflMapFlags { LIB3DS_AUTOREFL_USE = 0x0001, LIB3DS_AUTOREFL_READ_FIRST_FRAME_ONLY = 0x0004, LIB3DS_AUTOREFL_FLAT_MIRROR = 0x0008 }
 
enum  Lib3dsFaceFlags {
  LIB3DS_FACE_VIS_AC = 0x01, LIB3DS_FACE_VIS_BC = 0x02, LIB3DS_FACE_VIS_AB = 0x04, LIB3DS_FACE_WRAP_U = 0x08,
  LIB3DS_FACE_WRAP_V = 0x10, LIB3DS_FACE_SELECT_3 = (1<<13), LIB3DS_FACE_SELECT_2 = (1<<14), LIB3DS_FACE_SELECT_1 = (1<<15)
}
 
enum  Lib3dsIoSeek { LIB3DS_SEEK_SET = 0, LIB3DS_SEEK_CUR = 1, LIB3DS_SEEK_END = 2 }
 
enum  Lib3dsKeyFlags {
  LIB3DS_KEY_USE_TENS = 0x01, LIB3DS_KEY_USE_CONT = 0x02, LIB3DS_KEY_USE_BIAS = 0x04, LIB3DS_KEY_USE_EASE_TO = 0x08,
  LIB3DS_KEY_USE_EASE_FROM = 0x10
}
 
enum  Lib3dsLayoutStyle {
  LIB3DS_LAYOUT_SINGLE = 0, LIB3DS_LAYOUT_TWO_PANE_VERT_SPLIT = 1, LIB3DS_LAYOUT_TWO_PANE_HORIZ_SPLIT = 2, LIB3DS_LAYOUT_FOUR_PANE = 3,
  LIB3DS_LAYOUT_THREE_PANE_LEFT_SPLIT = 4, LIB3DS_LAYOUT_THREE_PANE_BOTTOM_SPLIT = 5, LIB3DS_LAYOUT_THREE_PANE_RIGHT_SPLIT = 6, LIB3DS_LAYOUT_THREE_PANE_TOP_SPLIT = 7,
  LIB3DS_LAYOUT_THREE_PANE_VERT_SPLIT = 8, LIB3DS_LAYOUT_THREE_PANE_HORIZ_SPLIT = 9, LIB3DS_LAYOUT_FOUR_PANE_LEFT_SPLIT = 10, LIB3DS_LAYOUT_FOUR_PANE_RIGHT_SPLIT = 11
}
 
enum  Lib3dsLogLevel { LIB3DS_LOG_ERROR = 0, LIB3DS_LOG_WARN = 1, LIB3DS_LOG_INFO = 2, LIB3DS_LOG_DEBUG = 3 }
 
enum  Lib3dsMapType { LIB3DS_MAP_NONE = -1, LIB3DS_MAP_PLANAR = 0, LIB3DS_MAP_CYLINDRICAL = 1, LIB3DS_MAP_SPHERICAL = 2 }
 
enum  Lib3dsNodeFlags {
  LIB3DS_NODE_HIDDEN = 0x000800, LIB3DS_NODE_SHOW_PATH = 0x010000, LIB3DS_NODE_SMOOTHING = 0x020000, LIB3DS_NODE_MOTION_BLUR = 0x100000,
  LIB3DS_NODE_MORPH_MATERIALS = 0x400000
}
 
enum  Lib3dsNodeType {
  LIB3DS_NODE_AMBIENT_COLOR = 0, LIB3DS_NODE_MESH_INSTANCE = 1, LIB3DS_NODE_CAMERA = 2, LIB3DS_NODE_CAMERA_TARGET = 3,
  LIB3DS_NODE_OMNILIGHT = 4, LIB3DS_NODE_SPOTLIGHT = 5, LIB3DS_NODE_SPOTLIGHT_TARGET = 6
}
 
enum  Lib3dsObjectFlags {
  LIB3DS_OBJECT_HIDDEN = 0x01, LIB3DS_OBJECT_VIS_LOFTER = 0x02, LIB3DS_OBJECT_DOESNT_CAST = 0x04, LIB3DS_OBJECT_MATTE = 0x08,
  LIB3DS_OBJECT_DONT_RCVSHADOW = 0x10, LIB3DS_OBJECT_FAST = 0x20, LIB3DS_OBJECT_FROZEN = 0x40
}
 
enum  Lib3dsShading {
  LIB3DS_SHADING_WIRE_FRAME = 0, LIB3DS_SHADING_FLAT = 1, LIB3DS_SHADING_GOURAUD = 2, LIB3DS_SHADING_PHONG = 3,
  LIB3DS_SHADING_METAL = 4
}
 
enum  Lib3dsTextureMapFlags {
  LIB3DS_TEXTURE_DECALE = 0x0001, LIB3DS_TEXTURE_MIRROR = 0x0002, LIB3DS_TEXTURE_NEGATE = 0x0008, LIB3DS_TEXTURE_NO_TILE = 0x0010,
  LIB3DS_TEXTURE_SUMMED_AREA = 0x0020, LIB3DS_TEXTURE_ALPHA_SOURCE = 0x0040, LIB3DS_TEXTURE_TINT = 0x0080, LIB3DS_TEXTURE_IGNORE_ALPHA = 0x0100,
  LIB3DS_TEXTURE_RGB_TINT = 0x0200
}
 
enum  Lib3dsTrackFlags {
  LIB3DS_TRACK_REPEAT = 0x0001, LIB3DS_TRACK_SMOOTH = 0x0002, LIB3DS_TRACK_LOCK_X = 0x0008, LIB3DS_TRACK_LOCK_Y = 0x0010,
  LIB3DS_TRACK_LOCK_Z = 0x0020, LIB3DS_TRACK_UNLINK_X = 0x0100, LIB3DS_TRACK_UNLINK_Y = 0x0200, LIB3DS_TRACK_UNLINK_Z = 0x0400
}
 
enum  Lib3dsTrackType { LIB3DS_TRACK_BOOL = 0, LIB3DS_TRACK_FLOAT = 1, LIB3DS_TRACK_VECTOR = 3, LIB3DS_TRACK_QUAT = 4 }
 
enum  Lib3dsViewType {
  LIB3DS_VIEW_NOT_USED = 0, LIB3DS_VIEW_TOP = 1, LIB3DS_VIEW_BOTTOM = 2, LIB3DS_VIEW_LEFT = 3,
  LIB3DS_VIEW_RIGHT = 4, LIB3DS_VIEW_FRONT = 5, LIB3DS_VIEW_BACK = 6, LIB3DS_VIEW_USER = 7,
  LIB3DS_VIEW_SPOTLIGHT = 18, LIB3DS_VIEW_CAMERA = 65535
}
 

Functions

LIB3DSAPI void lib3ds_camera_free (Lib3dsCamera *mesh)
 
LIB3DSAPI Lib3dsCameralib3ds_camera_new (const char *name)
 
LIB3DSAPI void lib3ds_file_append_node (Lib3dsFile *file, Lib3dsNode *node, Lib3dsNode *parent)
 
LIB3DSAPI void lib3ds_file_bounding_box_of_nodes (Lib3dsFile *file, int include_meshes, int include_cameras, int include_lights, float bmin[3], float bmax[3], float matrix[4][4])
 
LIB3DSAPI void lib3ds_file_bounding_box_of_objects (Lib3dsFile *file, int include_meshes, int include_cameras, int include_lights, float bmin[3], float bmax[3])
 
LIB3DSAPI int lib3ds_file_camera_by_name (Lib3dsFile *file, const char *name)
 
LIB3DSAPI void lib3ds_file_create_nodes_for_meshes (Lib3dsFile *file)
 
LIB3DSAPI void lib3ds_file_eval (Lib3dsFile *file, float t)
 
LIB3DSAPI void lib3ds_file_free (Lib3dsFile *file)
 
LIB3DSAPI void lib3ds_file_insert_camera (Lib3dsFile *file, Lib3dsCamera *camera, int index)
 
LIB3DSAPI void lib3ds_file_insert_light (Lib3dsFile *file, Lib3dsLight *light, int index)
 
LIB3DSAPI void lib3ds_file_insert_material (Lib3dsFile *file, Lib3dsMaterial *material, int index)
 
LIB3DSAPI void lib3ds_file_insert_mesh (Lib3dsFile *file, Lib3dsMesh *mesh, int index)
 
LIB3DSAPI void lib3ds_file_insert_node (Lib3dsFile *file, Lib3dsNode *node, Lib3dsNode *at)
 
LIB3DSAPI int lib3ds_file_light_by_name (Lib3dsFile *file, const char *name)
 
LIB3DSAPI int lib3ds_file_material_by_name (Lib3dsFile *file, const char *name)
 
LIB3DSAPI int lib3ds_file_mesh_by_name (Lib3dsFile *file, const char *name)
 
LIB3DSAPI Lib3dsMeshlib3ds_file_mesh_for_node (Lib3dsFile *file, Lib3dsNode *node)
 
LIB3DSAPI void lib3ds_file_minmax_node_id (Lib3dsFile *file, unsigned short *min_id, unsigned short *max_id)
 
LIB3DSAPI Lib3dsFilelib3ds_file_new ()
 
LIB3DSAPI Lib3dsNodelib3ds_file_node_by_id (Lib3dsFile *file, unsigned short node_id)
 
LIB3DSAPI Lib3dsNodelib3ds_file_node_by_name (Lib3dsFile *file, const char *name, Lib3dsNodeType type)
 
LIB3DSAPI Lib3dsFilelib3ds_file_open (const char *filename)
 
LIB3DSAPI int lib3ds_file_read (Lib3dsFile *file, Lib3dsIo *io)
 
LIB3DSAPI void lib3ds_file_remove_camera (Lib3dsFile *file, int index)
 
LIB3DSAPI void lib3ds_file_remove_light (Lib3dsFile *file, int index)
 
LIB3DSAPI void lib3ds_file_remove_material (Lib3dsFile *file, int index)
 
LIB3DSAPI void lib3ds_file_remove_mesh (Lib3dsFile *file, int index)
 
LIB3DSAPI void lib3ds_file_remove_node (Lib3dsFile *file, Lib3dsNode *node)
 
LIB3DSAPI void lib3ds_file_reserve_cameras (Lib3dsFile *file, int size, int force)
 
LIB3DSAPI void lib3ds_file_reserve_lights (Lib3dsFile *file, int size, int force)
 
LIB3DSAPI void lib3ds_file_reserve_materials (Lib3dsFile *file, int size, int force)
 
LIB3DSAPI void lib3ds_file_reserve_meshes (Lib3dsFile *file, int size, int force)
 
LIB3DSAPI int lib3ds_file_save (Lib3dsFile *file, const char *filename)
 
LIB3DSAPI int lib3ds_file_write (Lib3dsFile *file, Lib3dsIo *io)
 
LIB3DSAPI void lib3ds_light_free (Lib3dsLight *mesh)
 
LIB3DSAPI Lib3dsLightlib3ds_light_new (const char *name)
 
LIB3DSAPI void lib3ds_material_free (Lib3dsMaterial *material)
 
LIB3DSAPI Lib3dsMateriallib3ds_material_new (const char *name)
 
LIB3DSAPI void lib3ds_math_cubic_interp (float *v, float *a, float *p, float *q, float *b, int n, float t)
 
LIB3DSAPI float lib3ds_math_ease (float fp, float fc, float fn, float ease_from, float ease_to)
 
LIB3DSAPI void lib3ds_matrix_add (float m[4][4], float a[4][4], float b[4][4])
 
LIB3DSAPI void lib3ds_matrix_camera (float m[4][4], float pos[3], float tgt[3], float roll)
 
LIB3DSAPI void lib3ds_matrix_copy (float dest[4][4], float src[4][4])
 
LIB3DSAPI float lib3ds_matrix_det (float m[4][4])
 
LIB3DSAPI void lib3ds_matrix_identity (float m[4][4])
 
LIB3DSAPI int lib3ds_matrix_inv (float m[4][4])
 
LIB3DSAPI void lib3ds_matrix_mult (float m[4][4], float a[4][4], float b[4][4])
 
LIB3DSAPI void lib3ds_matrix_neg (float m[4][4])
 
LIB3DSAPI void lib3ds_matrix_rotate (float m[4][4], float angle, float ax, float ay, float az)
 
LIB3DSAPI void lib3ds_matrix_rotate_quat (float m[4][4], float q[4])
 
LIB3DSAPI void lib3ds_matrix_scalar (float m[4][4], float k)
 
LIB3DSAPI void lib3ds_matrix_scale (float m[4][4], float x, float y, float z)
 
LIB3DSAPI void lib3ds_matrix_sub (float m[4][4], float a[4][4], float b[4][4])
 
LIB3DSAPI void lib3ds_matrix_translate (float m[4][4], float x, float y, float z)
 
LIB3DSAPI void lib3ds_matrix_transpose (float m[4][4])
 
LIB3DSAPI void lib3ds_matrix_zero (float m[4][4])
 
LIB3DSAPI void lib3ds_mesh_bounding_box (Lib3dsMesh *mesh, float bmin[3], float bmax[3])
 
LIB3DSAPI void lib3ds_mesh_calculate_face_normals (Lib3dsMesh *mesh, float(*face_normals)[3])
 
LIB3DSAPI void lib3ds_mesh_calculate_vertex_normals (Lib3dsMesh *mesh, float(*normals)[3])
 
LIB3DSAPI void lib3ds_mesh_free (Lib3dsMesh *mesh)
 
LIB3DSAPI Lib3dsMeshlib3ds_mesh_new (const char *name)
 
LIB3DSAPI void lib3ds_mesh_resize_faces (Lib3dsMesh *mesh, int nfaces)
 
LIB3DSAPI void lib3ds_mesh_resize_vertices (Lib3dsMesh *mesh, int nvertices, int use_texcos, int use_flags)
 
LIB3DSAPI Lib3dsNodelib3ds_node_by_id (Lib3dsNode *node, unsigned short node_id)
 
LIB3DSAPI Lib3dsNodelib3ds_node_by_name (Lib3dsNode *node, const char *name, Lib3dsNodeType type)
 
LIB3DSAPI void lib3ds_node_eval (Lib3dsNode *node, float t)
 
LIB3DSAPI void lib3ds_node_free (Lib3dsNode *node)
 
LIB3DSAPI Lib3dsNodelib3ds_node_new (Lib3dsNodeType type)
 
LIB3DSAPI Lib3dsAmbientColorNodelib3ds_node_new_ambient_color (float color0[3])
 
LIB3DSAPI Lib3dsCameraNodelib3ds_node_new_camera (Lib3dsCamera *camera)
 
LIB3DSAPI Lib3dsTargetNodelib3ds_node_new_camera_target (Lib3dsCamera *camera)
 
LIB3DSAPI Lib3dsMeshInstanceNodelib3ds_node_new_mesh_instance (Lib3dsMesh *mesh, const char *instance_name, float pos0[3], float scl0[3], float rot0[4])
 
LIB3DSAPI Lib3dsOmnilightNodelib3ds_node_new_omnilight (Lib3dsLight *light)
 
LIB3DSAPI Lib3dsSpotlightNodelib3ds_node_new_spotlight (Lib3dsLight *light)
 
LIB3DSAPI Lib3dsTargetNodelib3ds_node_new_spotlight_target (Lib3dsLight *light)
 
LIB3DSAPI void lib3ds_quat_axis_angle (float c[4], float axis[3], float angle)
 
LIB3DSAPI void lib3ds_quat_cnj (float c[4])
 
LIB3DSAPI void lib3ds_quat_copy (float dest[4], float src[4])
 
LIB3DSAPI float lib3ds_quat_dot (float a[4], float b[4])
 
LIB3DSAPI void lib3ds_quat_exp (float c[4])
 
LIB3DSAPI void lib3ds_quat_identity (float c[4])
 
LIB3DSAPI void lib3ds_quat_inv (float c[4])
 
LIB3DSAPI void lib3ds_quat_ln (float c[4])
 
LIB3DSAPI void lib3ds_quat_ln_dif (float c[4], float a[4], float b[4])
 
LIB3DSAPI void lib3ds_quat_mul (float c[4], float a[4], float b[4])
 
LIB3DSAPI void lib3ds_quat_neg (float c[4])
 
LIB3DSAPI float lib3ds_quat_norm (float c[4])
 
LIB3DSAPI void lib3ds_quat_normalize (float c[4])
 
LIB3DSAPI void lib3ds_quat_scalar (float c[4], float k)
 
LIB3DSAPI void lib3ds_quat_slerp (float c[4], float a[4], float b[4], float t)
 
LIB3DSAPI void lib3ds_quat_squad (float c[4], float a[4], float p[4], float q[4], float b[4], float t)
 
LIB3DSAPI void lib3ds_quat_tangent (float c[4], float p[4], float q[4], float n[4])
 
LIB3DSAPI void lib3ds_track_eval_bool (Lib3dsTrack *track, int *b, float t)
 
LIB3DSAPI void lib3ds_track_eval_float (Lib3dsTrack *track, float *f, float t)
 
LIB3DSAPI void lib3ds_track_eval_quat (Lib3dsTrack *track, float q[4], float t)
 
LIB3DSAPI void lib3ds_track_eval_vector (Lib3dsTrack *track, float v[3], float t)
 
LIB3DSAPI void lib3ds_track_free (Lib3dsTrack *track)
 
LIB3DSAPI Lib3dsTracklib3ds_track_new (Lib3dsTrackType type, int nkeys)
 
LIB3DSAPI void lib3ds_track_resize (Lib3dsTrack *track, int nkeys)
 
LIB3DSAPI void lib3ds_vector_add (float c[3], float a[3], float b[3])
 
LIB3DSAPI void lib3ds_vector_copy (float dst[3], float src[3])
 
LIB3DSAPI void lib3ds_vector_cross (float c[3], float a[3], float b[3])
 
LIB3DSAPI float lib3ds_vector_dot (float a[3], float b[3])
 
LIB3DSAPI float lib3ds_vector_length (float c[3])
 
LIB3DSAPI void lib3ds_vector_make (float c[3], float x, float y, float z)
 
LIB3DSAPI void lib3ds_vector_max (float c[3], float a[3])
 
LIB3DSAPI void lib3ds_vector_min (float c[3], float a[3])
 
LIB3DSAPI void lib3ds_vector_neg (float c[3])
 
LIB3DSAPI void lib3ds_vector_normal (float n[3], float a[3], float b[3], float c[3])
 
LIB3DSAPI void lib3ds_vector_normalize (float c[3])
 
LIB3DSAPI void lib3ds_vector_scalar_mul (float c[3], float a[3], float k)
 
LIB3DSAPI void lib3ds_vector_sub (float c[3], float a[3], float b[3])
 
LIB3DSAPI void lib3ds_vector_transform (float c[3], float m[4][4], float a[3])
 
LIB3DSAPI void lib3ds_vector_zero (float c[3])
 

Macro Definition Documentation

#define LIB3DSAPI

Definition at line 32 of file lib3ds.h.