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)); } }
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; } } }
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)); } }
// 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); } }
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; } }