int GlNormal3f(int argument_count, void* data) { int error = 0; VALUE X = GetRecord("x", gCurrentContext); VALUE Y = GetRecord("y", gCurrentContext); VALUE Z = GetRecord("z", gCurrentContext); glNormal3f(TypeFloat(X), TypeFloat(Y), TypeFloat(Z)); gLastExpression.type = VAL_NIL; gLastExpression.data.primitive = 0; return error; }
int GlColor3f(int argument_count, void* data) { int error = 0; VALUE R = GetRecord("r", gCurrentContext); VALUE G = GetRecord("g", gCurrentContext); VALUE B = GetRecord("b", gCurrentContext); glColor3f(TypeFloat(R), TypeFloat(G), TypeFloat(B)); gLastExpression.type = VAL_NIL; gLastExpression.data.primitive = 0; return error; }
/*Math.pow(base, exponent)*/ int MathPow(int arg_count){ float base = 0.0; float exponent = 0.0; float val = 0.0; VALUE base_arg = GetRecord("base", gCurrentContext); VALUE exp_arg = GetRecord("exponent", gCurrentContext); base = TypeFloat(base_arg); exponent = TypeFloat(exp_arg); val = pow(base, exponent); gLastExpression.type = VAL_FLOATING_POINT; gLastExpression.floatp = val; return 0; }
/* float(value) */ int DuckFloat(int argument_count, void* data) { int error = 0; VALUE argument = GetRecord("value", gCurrentContext); gLastExpression.type = VAL_FLOATING_POINT; gLastExpression.data.floatp = TypeFloat(argument); return error; }
/*Math.atan(num)*/ int MathAtan(int arg_count){ float input = 0.0; float val = 0.0; VALUE argument = GetRecord("num", gCurrentContext); input = TypeFloat(argument); val = atan(input); gLastExpression.type = VAL_FLOATING_POINT; gLastExpression.floatp = val; return 0; }
/*Math.tan(angle)*/ int MathTan(int arg_count){ float angle = 0.0; float val = 0.0; VALUE argument = GetRecord("angle", gCurrentContext); angle = TypeFloat(argument); val = tan(angle); gLastExpression.type = VAL_FLOATING_POINT; gLastExpression.floatp = val; return 0; }