From 2afc9be712c69a66833de75683cdbaa3886379f1 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 9 Mar 2010 00:14:42 -0500 Subject: Implement unit vectors. --- dimension/parse.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'dimension/parse.c') diff --git a/dimension/parse.c b/dimension/parse.c index a4a4c43..5756659 100644 --- a/dimension/parse.c +++ b/dimension/parse.c @@ -75,6 +75,58 @@ dmnsn_new_ast_float(double value) return astnode; } +dmnsn_astnode +dmnsn_new_ast_ivector(long x, long y, long z, long f, long t) +{ + dmnsn_astnode astnode = dmnsn_new_astnode(DMNSN_AST_VECTOR); + astnode.children = dmnsn_new_array(sizeof(dmnsn_astnode)); + + dmnsn_astnode comp; + + comp = dmnsn_new_ast_integer(x); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_integer(y); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_integer(z); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_integer(f); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_integer(t); + dmnsn_array_push(astnode.children, &comp); + + return astnode; +} + +dmnsn_astnode +dmnsn_new_ast_vector(double x, double y, double z, double f, double t) +{ + dmnsn_astnode astnode = dmnsn_new_astnode(DMNSN_AST_VECTOR); + astnode.children = dmnsn_new_array(sizeof(dmnsn_astnode)); + + dmnsn_astnode comp; + + comp = dmnsn_new_ast_float(x); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_float(y); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_float(z); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_float(f); + dmnsn_array_push(astnode.children, &comp); + + comp = dmnsn_new_ast_float(t); + dmnsn_array_push(astnode.children, &comp); + + return astnode; +} + dmnsn_astnode dmnsn_new_ast_string(const char *value) { -- cgit v1.2.3