Esempio n. 1
0
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]);
		}
	}
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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]);
		}
	}
}
Esempio n. 5
0
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);
}
Esempio n. 8
0
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;
}
Esempio n. 9
0
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;
}