void cv_jit_mass_postcalc(t_cv_jit_mass *x, t_cv_jit_mass_vecdata *vecdata, t_jit_matrix_info *in1_minfo) { long i; double cMass; x->planecount = in1_minfo->planecount; if (in1_minfo->type==_jit_sym_char) { for (i=0;i<x->planecount;i++) { cMass = vecdata->v_char.Mass[i] / (double)255; jit_atom_setfloat(&(x->Mass[i]),cMass); } } else if (in1_minfo->type==_jit_sym_long) { for (i=0;i<x->planecount;i++) { jit_atom_setfloat(&(x->Mass[i]),vecdata->v_long.Mass[i]); } } else if (in1_minfo->type==_jit_sym_float32) { for (i=0;i<x->planecount;i++) { jit_atom_setfloat(&(x->Mass[i]),vecdata->v_float32.Mass[i]); } } else if (in1_minfo->type==_jit_sym_float64) { for (i=0;i<x->planecount;i++) { jit_atom_setfloat(&(x->Mass[i]),vecdata->v_float64.Mass[i]); } } }
t_jit_err jit_freenect_grab_get_accel(t_jit_freenect_grab *x, void *attr, long *ac, t_atom **av){ double ax=0,ay=0,az=0; if ((*ac)&&(*av)) { } else { *ac = 3; if (!(*av = jit_getbytes(sizeof(t_atom)*(*ac)))) { *ac = 0; return JIT_ERR_OUT_OF_MEM; } } if(x->device){ freenect_update_tilt_state(x->device); x->state = freenect_get_tilt_state(x->device); if (x->state) freenect_get_mks_accel(x->state, &ax, &ay, &az); } jit_atom_setfloat(*av, ax); jit_atom_setfloat(*av +1, ay); jit_atom_setfloat(*av +2, az); return JIT_ERR_NONE; }
t_jit_tml_gl_videoplane *jit_gl_videoplane_new(t_symbol * dest_name) { t_jit_tml_gl_videoplane *x; t_atom rav[4]; t_atom *av=rav; // make jit object if (x = (t_jit_tml_gl_videoplane *)jit_object_alloc(_jit_tml_gl_videoplane_class)) { // create and attach ob3d jit_ob3d_new(x, dest_name); // set instance variable defaults x->dim[0] = 20; x->dim[1] = 20; x->chunk = jit_glchunk_grid_new(_jit_sym_gl_quad_grid, 12, x->dim[0], x->dim[1]); x->recalc = 1; x->displaylist = 0; x->dlref = 0; x->gridmode = 0; x->interp = 1; x->tex_offset_x = 0.; x->tex_offset_y = 0.; x->tex_scale_x = 1.; x->tex_scale_y = 1.; x->nudge = 0.0001; // hack for edges x->rect_tex = 1; x->client_storage = PLATFORM_DYNAMIC_TEX; x->colormode = gensym("argb"); jit_atom_setfloat(av,1.); jit_atom_setfloat(av+1,1.); jit_atom_setfloat(av+2,1.); jit_atom_setfloat(av+3,1.); jit_object_method(x,gensym("color"),4,av); x->texture = jit_object_new(ps_jit_gl_texture,jit_attr_getsym(x,ps_drawto)); if (x->texture) { x->texturename = jit_symbol_unique(); jit_attr_setsym(x->texture,_jit_sym_name,x->texturename); jit_attr_setsym(x->texture,gensym("defaultimage"),gensym("black")); jit_attr_setlong(x->texture,ps_rectangle,x->rect_tex); jit_attr_setsym(x->texture,ps_mode,x->client_storage?ps_dynamic:ps_static); jit_attr_setsym(x,ps_texture,x->texturename); } else { error("jit.tml.gl.videoplane: could not create texture"); x->texturename = _jit_sym_nothing; } } else { error("jit.tml.gl.videoplane: Failed at jit_object_alloc"); x = NULL; } return x; }
void jit_3m_postcalc(t_jit_3m *x, t_jit_3m_vecdata *vecdata, t_jit_matrix_info *in1_minfo) { long i; x->planecount = in1_minfo->planecount; if (in1_minfo->type==_jit_sym_char) { for (i=0;i<x->planecount;i++) { jit_atom_setlong(&(x->min[i]),vecdata->v_char.min[i]); jit_atom_setfloat(&(x->mean[i]),vecdata->v_long.mean[i]); //(hack) use v_long's float mean jit_atom_setlong(&(x->max[i]),vecdata->v_char.max[i]); } } else if (in1_minfo->type==_jit_sym_long) { for (i=0;i<x->planecount;i++) { jit_atom_setlong(&(x->min[i]),vecdata->v_long.min[i]); jit_atom_setfloat(&(x->mean[i]),vecdata->v_long.mean[i]); jit_atom_setlong(&(x->max[i]),vecdata->v_long.max[i]); } } else if (in1_minfo->type==_jit_sym_float32) { for (i=0;i<x->planecount;i++) { jit_atom_setfloat(&(x->min[i]),vecdata->v_float32.min[i]); jit_atom_setfloat(&(x->mean[i]),vecdata->v_float32.mean[i]); jit_atom_setfloat(&(x->max[i]),vecdata->v_float32.max[i]); } } else if (in1_minfo->type==_jit_sym_float64) { for (i=0;i<x->planecount;i++) { jit_atom_setfloat(&(x->min[i]),vecdata->v_float64.min[i]); jit_atom_setfloat(&(x->mean[i]),vecdata->v_float64.mean[i]); jit_atom_setfloat(&(x->max[i]),vecdata->v_float64.max[i]); } } }
void max_jit_op_float(t_max_jit_op *x, double f) { t_atom a; jit_atom_setfloat(&a,f); typedmess(x,_jit_sym_val,1,&a); }
void max_xray_jit_levelsetseg_mproc(t_max_xray_jit_levelsetseg *x, void *mop) { t_jit_err err; t_jit_matrix_info tmpinfo; void *o; long changed=0; t_atom a; if (x->last==LSS_LAST_VAL) { tmpinfo = x->lastinfo; o = max_jit_mop_getinput(x,2); jit_object_method(o,_jit_sym_getinfo,&x->lastinfo); if (tmpinfo.type!=x->lastinfo.type) changed = TRUE; else if (tmpinfo.planecount!=x->lastinfo.planecount) changed = TRUE; if (changed) jit_object_method(o,_jit_sym_setall,0L,1,jit_atom_setfloat(&a,x->val)); } if (err=(t_jit_err) jit_object_method( max_jit_obex_jitob_get(x), _jit_sym_matrix_calc, jit_object_method(mop,_jit_sym_getinputlist), jit_object_method(mop,_jit_sym_getoutputlist))) { jit_error_code(x,err); } else { max_jit_mop_outputmatrix(x); } }
void max_xray_jit_levelsetseg_float(t_max_xray_jit_levelsetseg *x, double f) { t_atom a; jit_atom_setfloat(&a,f); typedmess((t_object *)x,_jit_sym_val,1,&a); }
t_jit_err jit_freenect_grab_get_tilt(t_jit_freenect_grab *x, void *attr, long *ac, t_atom **av){ double tilt=0; if ((*ac)&&(*av)) { } else { *ac = 1; if (!(*av = jit_getbytes(sizeof(t_atom)*(*ac)))) { *ac = 0; return JIT_ERR_OUT_OF_MEM; } } if(x->device){ freenect_update_tilt_state(x->device); x->state = freenect_get_tilt_state(x->device); if (x->state) tilt = freenect_get_tilt_degs(x->state); } jit_atom_setfloat(*av, tilt); return JIT_ERR_NONE; }
int script_lua_atoms_from_args(lua_State *L, int index_start, t_atom **args) { int i, n; int num_args = 0; n = lua_gettop(L); //count the number of arguments for(i=index_start; i <= n; i++) { int type = lua_type(L, i); switch(type) { case LUA_TTABLE: num_args += luaL_getn(L, i); break; case LUA_TSTRING: case LUA_TNUMBER: case LUA_TUSERDATA: num_args++; break; default: break; } } *args = (t_atom *)jit_getbytes(num_args*sizeof(t_atom)); { int arg_index=0; //index of current argument //iterate over the number of stack elements for(i=index_start; i <= n; i++) { int type = lua_type(L, i); switch(type) { case LUA_TSTRING: jit_atom_setsym(*args+arg_index, GENSYM(lua_tostring(L, i))); arg_index++; break; case LUA_TNUMBER: jit_atom_setfloat(*args+arg_index, lua_tonumber(L, i)); arg_index++; break; case LUA_TUSERDATA: (*args+arg_index)->a_w.w_obj = toJitobj(L, i); (*args+arg_index)->a_type = A_OBJ; arg_index++; break; case LUA_TTABLE: { int j; int table_type; //doesn't account for tables of userdata yet for(j=1; j <= luaL_getn(L, i); j++) { lua_rawgeti(L, i, j); table_type = lua_type(L, -1); switch(table_type) { case LUA_TSTRING: jit_atom_setsym(*args+arg_index, GENSYM(lua_tostring(L, -1))); arg_index++; break; case LUA_TNUMBER: jit_atom_setfloat(*args+arg_index, lua_tonumber(L, -1)); arg_index++; break; case LUA_TUSERDATA: (*args+arg_index)->a_w.w_obj = toJitobj(L, -1); (*args+arg_index)->a_type = A_OBJ; arg_index++; break; default: break; } } } break; default: break; } } } return num_args; }