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

Go to the source code of this file.

Macros

#define PARSE_INTERNAL
 
#define ERROR_READBUF_SIZE   65536
 

Functions

static int stringcmp (const char *a, const char *b)
 
static void reset_tex_table (parsehandle *ph, SceneHandle scene)
 
static void free_tex_table (parsehandle *ph, SceneHandle scene)
 
static errcode add_texture (parsehandle *ph, void *tex, const char *name)
 
static void * find_texture (parsehandle *ph, const char *name)
 
apiflt degtorad (apiflt deg)
 
static void degvectoradvec (apivector *degvec)
 
static void InitRot3d (RotMat *rot, apiflt x, apiflt y, apiflt z)
 
static void Rotate3d (RotMat *rot, apivector *vec)
 
static void Scale3d (apivector *scale, apivector *vec)
 
static void Trans3d (apivector *trans, apivector *vec)
 
static void PrintSyntaxError (parsehandle *ph, const char *string, const char *found)
 
static errcode GetString (parsehandle *ph, const char *string)
 
unsigned int readmodel (const char *modelfile, SceneHandle scene)
 
static errcode ReadIncludeFile (parsehandle *ph, const char *includefile, SceneHandle scene)
 
static errcode GetScenedefs (parsehandle *ph, SceneHandle scene)
 
static errcode GetShaderMode (parsehandle *ph, SceneHandle scene)
 
static errcode GetCamera (parsehandle *ph, SceneHandle scene)
 
static errcode GetObject (parsehandle *ph, SceneHandle scene)
 
static errcode GetInt (parsehandle *ph, int *i)
 
static errcode GetVector (parsehandle *ph, apivector *v1)
 
static errcode GetColor (parsehandle *ph, apicolor *c1)
 
static errcode GetImageDef (parsehandle *ph, SceneHandle scene)
 
static errcode GetTexDef (parsehandle *ph, SceneHandle scene)
 
static errcode GetTexAlias (parsehandle *ph)
 
static errcode GetTexture (parsehandle *ph, SceneHandle scene, void **tex)
 
void * GetTexBody (parsehandle *ph, SceneHandle scene, int modeflag)
 
static errcode GetDirLight (parsehandle *ph, SceneHandle scene)
 
static errcode GetLight (parsehandle *ph, SceneHandle scene)
 
static errcode GetSkyLight (parsehandle *ph, SceneHandle scene)
 
static errcode GetSpotLight (parsehandle *ph, SceneHandle scene)
 
static errcode GetFog (parsehandle *ph, SceneHandle scene)
 
static errcode GetBackGnd (parsehandle *ph, SceneHandle scene)
 
static errcode GetBackGndGradient (parsehandle *ph, SceneHandle scene)
 
static errcode GetCylinder (parsehandle *ph, SceneHandle scene)
 
static errcode GetFCylinder (parsehandle *ph, SceneHandle scene)
 
static errcode GetPolyCylinder (parsehandle *ph, SceneHandle scene)
 
static errcode GetSphere (parsehandle *ph, SceneHandle scene)
 
static errcode GetPlane (parsehandle *ph, SceneHandle scene)
 
static errcode GetVol (parsehandle *ph, SceneHandle scene)
 
static errcode GetBox (parsehandle *ph, SceneHandle scene)
 
static errcode GetRing (parsehandle *ph, SceneHandle scene)
 
static errcode GetTri (parsehandle *ph, SceneHandle scene)
 
static errcode GetSTri (parsehandle *ph, SceneHandle scene)
 
static errcode GetVCSTri (parsehandle *ph, SceneHandle scene)
 
static errcode GetVertexArray (parsehandle *ph, SceneHandle scene)
 
static errcode GetLandScape (parsehandle *ph, SceneHandle scene)
 
static errcode GetTPolyFile (parsehandle *ph, SceneHandle scene)
 
static errcode GetClipGroup (parsehandle *ph, SceneHandle scene)
 
static errcode GetClipGroupEnd (parsehandle *ph, SceneHandle scene)
 

Macro Definition Documentation

◆ ERROR_READBUF_SIZE

#define ERROR_READBUF_SIZE   65536

Definition at line 27 of file parse.c.

Referenced by PrintSyntaxError().

◆ PARSE_INTERNAL

#define PARSE_INTERNAL

Definition at line 23 of file parse.c.

Function Documentation

◆ add_texture()

static errcode add_texture ( parsehandle *  ph,
void *  tex,
const char *  name 
)
static

Definition at line 85 of file parse.c.

References PARSEALLOCERR, PARSENOERR, and rt_hash_insert().

Referenced by GetTexAlias(), and GetTexDef().

◆ degtorad()

apiflt degtorad ( apiflt  deg)

Definition at line 124 of file parse.c.

Referenced by degvectoradvec().

◆ degvectoradvec()

static void degvectoradvec ( apivector degvec)
static

Definition at line 130 of file parse.c.

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

Referenced by GetTPolyFile().

◆ find_texture()

static void* find_texture ( parsehandle *  ph,
const char *  name 
)
static

Definition at line 112 of file parse.c.

References HASH_FAIL, and rt_hash_lookup().

Referenced by GetTexAlias(), and GetTexture().

◆ free_tex_table()

static void free_tex_table ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 70 of file parse.c.

References rt_hash_destroy().

Referenced by readmodel().

◆ GetBackGnd()

static errcode GetBackGnd ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1167 of file parse.c.

References apicolor::b, apicolor::g, PARSENOERR, apicolor::r, rt_background(), and scenebackcol.

Referenced by GetObject().

◆ GetBackGndGradient()

static errcode GetBackGndGradient ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetBox()

static errcode GetBox ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1364 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_box().

Referenced by GetObject().

◆ GetCamera()

static errcode GetCamera ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetClipGroup()

static errcode GetClipGroup ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1915 of file parse.c.

References PARSEBADSYNTAX, PARSEEOF, PARSENOERR, rt_clip_fv(), and stringcmp().

Referenced by GetObject().

◆ GetClipGroupEnd()

static errcode GetClipGroupEnd ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1946 of file parse.c.

References PARSENOERR, and rt_clip_off().

Referenced by GetObject().

◆ GetColor()

static errcode GetColor ( parsehandle *  ph,
apicolor c1 
)
static

Definition at line 673 of file parse.c.

References apicolor::b, apicolor::g, GetString(), and apicolor::r.

Referenced by GetFog(), GetLight(), and GetSpotLight().

◆ GetCylinder()

static errcode GetCylinder ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1225 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_cylinder().

Referenced by GetObject().

◆ GetDirLight()

static errcode GetDirLight ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetFCylinder()

static errcode GetFCylinder ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1246 of file parse.c.

References GetString(), GetTexture(), GetVector(), rt_fcylinder(), apivector::x, apivector::y, and apivector::z.

Referenced by GetObject().

◆ GetFog()

static errcode GetFog ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetImageDef()

static errcode GetImageDef ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 686 of file parse.c.

References GetInt(), GetString(), PARSEBADSYNTAX, PARSENOERR, and rt_define_teximage_rgb24().

Referenced by GetObject().

◆ GetInt()

static errcode GetInt ( parsehandle *  ph,
int *  i 
)
static

Definition at line 638 of file parse.c.

References PARSEBADSYNTAX, and PARSENOERR.

Referenced by GetImageDef(), and GetVertexArray().

◆ GetLandScape()

static errcode GetLandScape ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1820 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_landscape().

Referenced by GetObject().

◆ GetLight()

static errcode GetLight ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetObject()

static errcode GetObject ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetPlane()

static errcode GetPlane ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1325 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_plane().

Referenced by GetObject().

◆ GetPolyCylinder()

static errcode GetPolyCylinder ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1275 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_polycylinder().

Referenced by GetObject().

◆ GetRing()

static errcode GetRing ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1380 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_ring().

Referenced by GetObject().

◆ GetScenedefs()

static errcode GetScenedefs ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 320 of file parse.c.

References GetString(), PARSENOERR, rt_outputfile(), rt_resolution(), and rt_verbose().

Referenced by readmodel().

◆ GetShaderMode()

static errcode GetShaderMode ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetSkyLight()

static errcode GetSkyLight ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetSphere()

static errcode GetSphere ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1305 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_sphere().

Referenced by GetObject().

◆ GetSpotLight()

static errcode GetSpotLight ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetSTri()

static errcode GetSTri ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1423 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_stri().

Referenced by GetObject().

◆ GetString()

static errcode GetString ( parsehandle *  ph,
const char *  string 
)
static

◆ GetTexAlias()

static errcode GetTexAlias ( parsehandle *  ph)
static

Definition at line 777 of file parse.c.

References add_texture(), find_texture(), and PARSENOERR.

Referenced by GetObject().

◆ GetTexBody()

void* GetTexBody ( parsehandle *  ph,
SceneHandle  scene,
int  modeflag 
)

◆ GetTexDef()

static errcode GetTexDef ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 768 of file parse.c.

References add_texture(), GetTexBody(), and PARSENOERR.

Referenced by GetObject().

◆ GetTexture()

static errcode GetTexture ( parsehandle *  ph,
SceneHandle  scene,
void **  tex 
)
static

◆ GetTPolyFile()

static errcode GetTPolyFile ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetTri()

static errcode GetTri ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1402 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_tri().

Referenced by GetObject().

◆ GetVCSTri()

static errcode GetVCSTri ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1453 of file parse.c.

References apicolor::b, apicolor::g, GetString(), GetTexBody(), GetVector(), apicolor::r, and rt_vcstri().

Referenced by GetObject().

◆ GetVector()

static errcode GetVector ( parsehandle *  ph,
apivector v1 
)
static

◆ GetVertexArray()

static errcode GetVertexArray ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ GetVol()

static errcode GetVol ( parsehandle *  ph,
SceneHandle  scene 
)
static

Definition at line 1342 of file parse.c.

References GetString(), GetTexture(), GetVector(), and rt_scalarvol().

Referenced by GetObject().

◆ InitRot3d()

static void InitRot3d ( RotMat *  rot,
apiflt  x,
apiflt  y,
apiflt  z 
)
static

Definition at line 139 of file parse.c.

Referenced by GetTPolyFile().

◆ PrintSyntaxError()

static void PrintSyntaxError ( parsehandle *  ph,
const char *  string,
const char *  found 
)
static

Definition at line 173 of file parse.c.

References ERROR_READBUF_SIZE.

Referenced by GetObject(), and GetString().

◆ ReadIncludeFile()

static errcode ReadIncludeFile ( parsehandle *  ph,
const char *  includefile,
SceneHandle  scene 
)
static

Definition at line 282 of file parse.c.

References GetObject(), PARSEBADSUBFILE, PARSEEOF, and PARSENOERR.

Referenced by GetObject().

◆ readmodel()

unsigned int readmodel ( const char *  modelfile,
SceneHandle  scene 
)

◆ reset_tex_table()

static void reset_tex_table ( parsehandle *  ph,
SceneHandle  scene 
)
static

◆ Rotate3d()

static void Rotate3d ( RotMat *  rot,
apivector vec 
)
static

Definition at line 153 of file parse.c.

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

Referenced by GetTPolyFile().

◆ Scale3d()

static void Scale3d ( apivector scale,
apivector vec 
)
static

Definition at line 161 of file parse.c.

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

Referenced by GetTPolyFile().

◆ stringcmp()

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

◆ Trans3d()

static void Trans3d ( apivector trans,
apivector vec 
)
static

Definition at line 167 of file parse.c.

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

Referenced by GetTPolyFile().