Tachyon (current)  Current Main Branch
Macros | Functions | Variables
ac3dparse.c File Reference
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include "tachyon.h"
#include "ac3dparse.h"

Go to the source code of this file.

Macros

#define PARSE_INTERNAL
 

Functions

static int stringcmp (char *a, char *b)
 
static void GetAC3DString (FILE *dfile, char *str)
 
static void reset_tex_table (void)
 
static errcode add_texture (void *tex, char name[TEXNAMELEN])
 
static errcode GetString (FILE *dfile, char *string)
 
unsigned int ParseAC3D (char *modelfile, SceneHandle scene)
 
static errcode GetScenedefs (FILE *dfile, SceneHandle scene)
 
static errcode GetScene (FILE *dfile, SceneHandle scene)
 
static errcode GetMaterial (FILE *dfile, SceneHandle scene)
 
static void RmatIdentity (RotMat rmat)
 
static void RmatMult (RotMat A, RotMat B, RotMat C)
 
static void RmatTmatMult (TransMat NT, RotMat R, TransMat T)
 
static void tlist_add_tri (tri_list **tlist, int v0, int v1, int v2, int smooth, int texnum)
 
static void tlist_delete (tri_list **tlist)
 
static void clear_normals (apivector *normals, int numverts)
 
static void normalize (apivector *vec)
 
static void renormalize_normals (apivector *normals, int numverts)
 
static apivector tri_normal (apivector *v0, apivector *v1, apivector *v2)
 
static void gen_triangles (SceneHandle scene, tri_list *tlist, apivector *vertex, apivector *normal)
 
static errcode GetRecurseObject (SceneHandle scene, FILE *dfile, RotMat rmat, TransMat tmat)
 
static errcode GetObject (FILE *dfile, SceneHandle scene)
 

Variables

static texentry textable [NUMTEXS]
 
static int numtextures
 
static int numobjectsparsed
 
static apicolor scenebackcol
 

Macro Definition Documentation

◆ PARSE_INTERNAL

#define PARSE_INTERNAL

Definition at line 24 of file ac3dparse.c.

Function Documentation

◆ add_texture()

static errcode add_texture ( void *  tex,
char  name[TEXNAMELEN] 
)
static

Definition at line 71 of file ac3dparse.c.

References numtextures, PARSEALLOCERR, PARSENOERR, and textable.

Referenced by GetMaterial().

◆ clear_normals()

static void clear_normals ( apivector normals,
int  numverts 
)
static

Definition at line 312 of file ac3dparse.c.

References apivector::x, apivector::y, and apivector::z.

Referenced by GetRecurseObject().

◆ gen_triangles()

static void gen_triangles ( SceneHandle  scene,
tri_list *  tlist,
apivector vertex,
apivector normal 
)
static

Definition at line 361 of file ac3dparse.c.

References rt_stri(), rt_tri(), and textable.

Referenced by GetRecurseObject().

◆ GetAC3DString()

static void GetAC3DString ( FILE *  dfile,
char *  str 
)
static

Definition at line 51 of file ac3dparse.c.

Referenced by GetRecurseObject().

◆ GetMaterial()

static errcode GetMaterial ( FILE *  dfile,
SceneHandle  scene 
)
static

◆ GetObject()

static errcode GetObject ( FILE *  dfile,
SceneHandle  scene 
)
static

Definition at line 586 of file ac3dparse.c.

References GetRecurseObject(), and RmatIdentity().

Referenced by GetScene().

◆ GetRecurseObject()

static errcode GetRecurseObject ( SceneHandle  scene,
FILE *  dfile,
RotMat  rmat,
TransMat  tmat 
)
static

◆ GetScene()

static errcode GetScene ( FILE *  dfile,
SceneHandle  scene 
)
static

Definition at line 189 of file ac3dparse.c.

References GetMaterial(), GetObject(), PARSEBADSYNTAX, PARSEEOF, and stringcmp().

Referenced by ParseAC3D().

◆ GetScenedefs()

static errcode GetScenedefs ( FILE *  dfile,
SceneHandle  scene 
)
static

◆ GetString()

static errcode GetString ( FILE *  dfile,
char *  string 
)
static

Definition at line 85 of file ac3dparse.c.

References numobjectsparsed, PARSEBADSYNTAX, PARSENOERR, and stringcmp().

Referenced by GetMaterial(), and GetRecurseObject().

◆ normalize()

static void normalize ( apivector vec)
static

Definition at line 324 of file ac3dparse.c.

References length(), apivector::x, apivector::y, and apivector::z.

Referenced by renormalize_normals(), and tri_normal().

◆ ParseAC3D()

unsigned int ParseAC3D ( char *  modelfile,
SceneHandle  scene 
)

◆ renormalize_normals()

static void renormalize_normals ( apivector normals,
int  numverts 
)
static

Definition at line 332 of file ac3dparse.c.

References normalize().

Referenced by GetRecurseObject().

◆ reset_tex_table()

static void reset_tex_table ( void  )
static

Definition at line 66 of file ac3dparse.c.

References numtextures, and textable.

Referenced by ParseAC3D().

◆ RmatIdentity()

static void RmatIdentity ( RotMat  rmat)
static

Definition at line 246 of file ac3dparse.c.

Referenced by GetObject(), and GetRecurseObject().

◆ RmatMult()

static void RmatMult ( RotMat  A,
RotMat  B,
RotMat  C 
)
static

Definition at line 258 of file ac3dparse.c.

Referenced by GetRecurseObject().

◆ RmatTmatMult()

static void RmatTmatMult ( TransMat  NT,
RotMat  R,
TransMat  T 
)
static

Definition at line 271 of file ac3dparse.c.

Referenced by GetRecurseObject().

◆ stringcmp()

static int stringcmp ( char *  a,
char *  b 
)
static

Definition at line 33 of file ac3dparse.c.

Referenced by GetRecurseObject(), GetScene(), and GetString().

◆ tlist_add_tri()

static void tlist_add_tri ( tri_list **  tlist,
int  v0,
int  v1,
int  v2,
int  smooth,
int  texnum 
)
static

Definition at line 281 of file ac3dparse.c.

Referenced by GetRecurseObject().

◆ tlist_delete()

static void tlist_delete ( tri_list **  tlist)
static

Definition at line 296 of file ac3dparse.c.

Referenced by GetRecurseObject().

◆ tri_normal()

static apivector tri_normal ( apivector v0,
apivector v1,
apivector v2 
)
static

Definition at line 340 of file ac3dparse.c.

References normalize(), apivector::x, apivector::y, and apivector::z.

Referenced by GetRecurseObject().

Variable Documentation

◆ numobjectsparsed

int numobjectsparsed
static

Definition at line 30 of file ac3dparse.c.

Referenced by GetString(), and ParseAC3D().

◆ numtextures

int numtextures
static

Definition at line 29 of file ac3dparse.c.

Referenced by add_texture(), and reset_tex_table().

◆ scenebackcol

apicolor scenebackcol
static

Definition at line 31 of file ac3dparse.c.

Referenced by GetBackGnd(), and ParseAC3D().

◆ textable

texentry textable[NUMTEXS]
static

Definition at line 28 of file ac3dparse.c.

Referenced by add_texture(), gen_triangles(), and reset_tex_table().