void xray_jit_levelsetseg_free(t_xray_jit_levelsetseg *x)
{
	jit_object_detach(x->phiName, x); //Detach matrix from object
	jit_object_free(x->phi); //Free matrix memory

	DLLfreeList( &(x->L_in) );
	DLLfreeList( &(x->L_out) );

	jit_freebytes((void *)(x->inside), sizeof(t_RegionStats));
	jit_freebytes((void *)(x->outside), sizeof(t_RegionStats));

	if(x->gaussKernel) {
		jit_freebytes((void *)(x->gaussKernel), (x->Ng)*(x->Ng)*sizeof(long));
		x->gaussKernel = NULL;
	}
}
void max_jit_la_diagproduct_mproc(t_max_jit_la_diagproduct *x, void *mop)
{
	t_jit_err err;
	long ac;
	t_atom *av=NULL;
	void *o;
	
	o=max_jit_obex_jitob_get(x);
	if (err=(t_jit_err) jit_object_method(
		o,
		_jit_sym_matrix_calc,
		jit_object_method(mop,_jit_sym_getinputlist),
		jit_object_method(mop,_jit_sym_getoutputlist))) 
	{
		jit_error_code(x,err); 
	} else {
		jit_object_method(o,ps_getresult,&ac,&av);
		switch(ac) {
		case 1:
			outlet_float(x->valout,jit_atom_getfloat(av));
			break;
		case 2:
			outlet_anything(x->valout,_jit_sym_list,2,av);
			break;
		}
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
	}
}
Exemple #3
0
int lua_outlet(lua_State *L)
{
	int outlet;
	int argc;
	t_atom *argv;
	void *jitobj=NULL;
	void *maxobj=NULL;
	
	if(!lua_isnumber(L, 1))
		luaL_error(L, "argument 1 for outlet must be an integer");
		
	outlet = lua_tointeger(L, 1);
	argc = script_lua_atoms_from_args(L, 2, &argv);

	lua_getglobal(L, "this");
	jitobj = toJitobj(L, -1);
	
	if(jitobj) {
		maxobj = jit_object_method(jitobj, gensym("getmax_wrapper"));
		
		if(maxobj) {
			object_method(maxobj, gensym("out_list"), outlet, argc, argv);
		}
	}
	
	jit_freebytes((void *)argv, argc*sizeof(t_atom));
	
	return 0;
}
void xray_jit_levelsetseg_Ng(t_xray_jit_levelsetseg *x, void *attr, long argc, t_atom *argv)
{
	float dx, dy, val;
	long i, j;

	if(x->gaussKernel) {
		jit_freebytes((void *)(x->gaussKernel), (x->Ng)*(x->Ng)*sizeof(long));
		x->gaussKernel = NULL;
	}

	x->Ng = jit_atom_getlong(argv);
	x->gaussKernel = (t_int32 *)jit_getbytes( (x->Ng)*(x->Ng)*sizeof(long) );

	dx = 2.0f/(x->Ng - 1);
	dy = dx;

	for(j=0; j < x->Ng; j++) {
		for(i=0; i < x->Ng; i++) {
			val = 41.0f*jit_math_exp(-2*( (-1.0f+i*dx)*(-1.0f+i*dx) + (-1.0f+j*dy)*(-1.0f+j*dy) ));

			if(val < 1)
				x->gaussKernel[ (x->Ng)*j + i ] = 1;
			else
				x->gaussKernel[ (x->Ng)*j + i ] = (long)val;
		}
	}
}
Exemple #5
0
void max_jit_3m_free(t_max_jit_3m *x)
{
	max_jit_mop_free(x);
	jit_object_free(max_jit_obex_jitob_get(x));
	if (x->av)
		jit_freebytes(x->av,sizeof(t_atom)*JIT_MATRIX_MAX_PLANECOUNT);
	max_jit_obex_free(x);
}
void max_jit_findbounds_mproc(t_max_jit_findbounds *x, void *mop)
{
	t_jit_err err;
	long ac=0;
	t_atom *av=NULL;
	void *o;
	
	o=max_jit_obex_jitob_get(x);
	if (err=(t_jit_err) jit_object_method(
		o,
		_jit_sym_matrix_calc,
		jit_object_method(mop,_jit_sym_getinputlist),
		jit_object_method(mop,_jit_sym_getoutputlist))) 
	{
		jit_error_code(x,err); 
	} else {
		jit_object_method(o,ps_getboundmax,&ac,&av);
		switch(ac) {
		case 1:
			outlet_float(x->maxout,jit_atom_getfloat(av));
			break;
		default:		
			outlet_anything(x->maxout,_jit_sym_list,ac,av);
			break;
		}
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;
		jit_object_method(o,ps_getboundmin,&ac,&av);
		switch(ac) {
		case 1:
			outlet_float(x->minout,jit_atom_getfloat(av));
			break;
		default:		
			outlet_anything(x->minout,_jit_sym_list,ac,av);
			break;
		}
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
	}
}
void jit_gl_videoplane_get_color(t_jit_gl_videoplane *x, float *red, float *green, float *blue, float *alpha)
{
	long ac=0;
	t_atom *av=NULL;
	
	jit_object_method(x,gensym("getcolor"),&ac,&av);
	if ((ac==4)&&av) {
		*red 	= jit_atom_getfloat(av);
		*green 	= jit_atom_getfloat(av+1);
		*blue 	= jit_atom_getfloat(av+2);
		*alpha 	= jit_atom_getfloat(av+3);
		jit_freebytes(av,ac*sizeof(t_atom));
	}
}
Exemple #8
0
		// Should think about generalizing and moving this to MaxUtils... 
	static inline void SendDataToOutlet(void* iJitOb, Symbol* iAttr, void* iOutlet)
		{
		long		atomCount = 0;
		Atom*		outAtoms = NIL;
		
			
		jit_object_method(iJitOb, iAttr, &atomCount, &outAtoms);
			// This method attempts to memory for outAtoms
			// Don't forget to call jit_freebytes() when done

		if (atomCount > 0 && outAtoms != NIL) {	
			if (atomCount > 1)
				outlet_anything(iOutlet, _jit_sym_list, atomCount, outAtoms);
			else switch (outAtoms[0].a_type) {
				case A_LONG:  outlet_int(iOutlet, outAtoms[0].a_w.w_long);		break;
				case A_FLOAT: outlet_float(iOutlet, outAtoms[0].a_w.w_float);	break;
				default:	  break;
				}
			
			jit_freebytes(outAtoms, sizeof(t_atom) * atomCount);
			}
		
		}
Exemple #9
0
void jit_boids2d_free(t_jit_boids2d *flockPtr)
{
	//free bytes allocated for boids struct
	jit_freebytes((void *)flockPtr->boid, sizeof(Boid)*flockPtr->number);
}
void max_jit_human_mproc(t_max_jit_human *x, void *mop)
{
	t_jit_err err;
	long ac=0;
	t_atom *av=NULL;
	void *o;
//	t_atom temp[4];
	
//	av = temp;
	
	
	o=max_jit_obex_jitob_get(x);

	if (err=(t_jit_err) jit_object_method(
		o,
		_jit_sym_matrix_calc,
		jit_object_method(mop,_jit_sym_getinputlist),
		jit_object_method(mop,_jit_sym_getoutputlist))) 
	{
		jit_error_code(x,err); 

	} else {

//		ac = 2;

		jit_object_method(o,ps_getstate,&ac,&av);
		outlet_int(x->out_state,jit_atom_getlong(av));
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;


		jit_object_method(o,ps_getfoot_right,&ac,&av);
		outlet_anything(x->out_foot_right,_jit_sym_list,ac,av);
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;

		jit_object_method(o,ps_getfoot_left,&ac,&av);
		outlet_anything(x->out_foot_left,_jit_sym_list,ac,av);
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;

//		ac = 2;
		jit_object_method(o,ps_gethead,&ac,&av);
		outlet_anything(x->out_head,_jit_sym_list,ac,av);
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;

//		ac = 2;
		jit_object_method(o,ps_getarm_right,&ac,&av);
		outlet_anything(x->out_arm_right,_jit_sym_list,ac,av);
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;

//		ac = 2;
		jit_object_method(o,ps_getarm_left,&ac,&av);
		outlet_anything(x->out_arm_left,_jit_sym_list,ac,av);
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;

//		ac = 4;
		jit_object_method(o,ps_getbox_coords,&ac,&av);
		outlet_anything(x->out_box_coords,_jit_sym_list,ac,av);
		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
		av=NULL; ac=0;

//		switch(ac) {
//		case 1:
//			outlet_float(x->maxout,jit_atom_getfloat(av));
//			break;
//		default:		
//			outlet_anything(x->maxout,_jit_sym_list,ac,av);
//			break;
//		}
//		if (av) jit_freebytes(av,(ac)*sizeof(t_atom));
//		av=NULL; ac=0;
	}
}