From 48ded3e40b77d2c072429854e2ebf81744c3e552 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 25 Nov 2009 20:10:13 -0500 Subject: Implement point lights. --- dimension/grammar.y | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'dimension/grammar.y') diff --git a/dimension/grammar.y b/dimension/grammar.y index 06260d4..27685b7 100644 --- a/dimension/grammar.y +++ b/dimension/grammar.y @@ -429,7 +429,7 @@ yyerror(YYLTYPE *locp, dmnsn_array *astree, dmnsn_token_iterator *iterator, %token DMNSN_T_LATHE %token DMNSN_T_LEOPARD %token DMNSN_T_LIGHT_GROUP -%token DMNSN_T_LIGHT_SOURCE +%token DMNSN_T_LIGHT_SOURCE "light_source" %token DMNSN_T_LINEAR_SPLINE %token DMNSN_T_LINEAR_SWEEP %token DMNSN_T_LN @@ -687,7 +687,7 @@ yyerror(YYLTYPE *locp, dmnsn_array *astree, dmnsn_token_iterator *iterator, %token DMNSN_T_RANGE %token DMNSN_T_READ %token DMNSN_T_RENDER -%token DMNSN_T_STATISTICS +%token DMNSN_T_STATISTICS %token DMNSN_T_SWITCH %token DMNSN_T_UNDEF %token DMNSN_T_VERSION @@ -711,6 +711,7 @@ yyerror(YYLTYPE *locp, dmnsn_array *astree, dmnsn_token_iterator *iterator, %type OBJECT %type FINITE_SOLID_OBJECT %type BOX +%type LIGHT_SOURCE %type SPHERE /* Object modifiers */ @@ -771,6 +772,7 @@ TRANSFORMATION: "rotate" VECTOR { /* Objects */ OBJECT: FINITE_SOLID_OBJECT + | LIGHT_SOURCE ; FINITE_SOLID_OBJECT: BOX @@ -786,6 +788,14 @@ BOX: "box" "{" } ; +LIGHT_SOURCE: "light_source" "{" + VECTOR "," COLOR + "}" + { + $$ = dmnsn_new_astnode2(DMNSN_AST_LIGHT_SOURCE, @$, $3, $5); + } +; + SPHERE: "sphere" "{" VECTOR "," FLOAT OBJECT_MODIFIERS @@ -1455,6 +1465,7 @@ dmnsn_astnode_string(dmnsn_astnode_type astnode_type) dmnsn_astnode_map(DMNSN_AST_BOX, "box"); dmnsn_astnode_map(DMNSN_AST_SPHERE, "sphere"); + dmnsn_astnode_map(DMNSN_AST_LIGHT_SOURCE, "light_source"); dmnsn_astnode_map(DMNSN_AST_OBJECT_MODIFIERS, "object-modifiers"); -- cgit v1.2.3