ROI_Item::ROI_Item (const MR::Image::Info& src) : Volume (src), saved (true), current_undo (-1) { type = gl::UNSIGNED_BYTE; format = gl::RED; internal_format = gl::R8; set_allowed_features (false, true, false); set_interpolate (false); set_use_transparency (true); set_min_max (0.0, 1.0); set_windowing (-1.0f, 0.0f); alpha = 1.0f; colour = preset_colours[current_preset_colour++]; if (current_preset_colour >= 6) current_preset_colour = 0; transparent_intensity = 0.4f; opaque_intensity = 0.6f; colourmap = ColourMap::index ("Colour"); float voxsize = std::min (src.vox(0), std::min (src.vox(1), src.vox(2))); brush_size = min_brush_size = voxsize; max_brush_size = 100.0f*min_brush_size; std::stringstream name; name << "ROI" << std::setfill('0') << std::setw(5) << new_roi_counter++ << ".mif"; filename = name.str(); Window::GrabContext context; bind(); allocate(); }
template <class elem,class Type> void tpl_red_seg<elem,Type>::f ( Type * out, const Type * in, Type * buf_av, Type * buf_ar, INT x_min, INT x_max, INT dx0, INT dx1, Type neutre ) { set_min_max(dx0,dx1); if (dx1-dx0 <=3) { trivial_f(out,in,buf_av,x_min,x_max,dx0,dx1); return; } INT per; INT X_max,X_min; per = dx1-dx0 + 1; X_min = x_min + dx0; X_max = x_max + dx1; // une passe en avant; INT4 x; // FUUUCCKKK to visual buf_av[X_min] = in[X_min]; for (x =X_min+1; x<X_max ; x++) if (x%per) buf_av[x] = elem::op(buf_av[x-1],in[x]); else buf_av[x] = in[x]; // une passe en arriere; buf_ar[X_max-1] = in[X_max-1]; for (x = X_max-2; x >= X_min ; x--) if (x%per) buf_ar[x] = elem::op(buf_ar[x+1],in[x]); else buf_ar[x] = neutre; // Conclusion : for (x=x_min ; x<x_max ; x++) out[x] = elem::op(buf_ar[x+dx0],buf_av[x+dx1]); }
SPHBonesData::SPHBonesData() { bones_mask =u64(-1); root_bone =0; Fvector _mn, _mx; _mn.set (-100.f,-100.f,-100.f); _mx.set (100.f,100.f,100.f); set_min_max (_mn, _mx); }
int smt_set_mac_opvalues(struct s_smc *smc) { int st ; int st2 ; st = set_min_max(1,smc->mib.m[MAC0].fddiMACTvxValueMIB, smc->mib.a[PATH0].fddiPATHTVXLowerBound, &smc->mib.m[MAC0].fddiMACTvxValue) ; st |= set_min_max(0,smc->mib.m[MAC0].fddiMACT_MaxMIB, smc->mib.a[PATH0].fddiPATHT_MaxLowerBound, &smc->mib.m[MAC0].fddiMACT_Max) ; st |= (st2 = set_min_max(0,smc->mib.m[MAC0].fddiMACT_ReqMIB, smc->mib.a[PATH0].fddiPATHMaxT_Req, &smc->mib.m[MAC0].fddiMACT_Req)) ; if (st2) { AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long) FDDI_SMT_EVENT, (u_long) FDDI_REMOTE_T_REQ, smt_get_event_word(smc)); } return st; }
int smt_set_mac_opvalues(struct s_smc *smc) { int st ; int st2 ; st = set_min_max(1,smc->mib.m[MAC0].fddiMACTvxValueMIB, smc->mib.a[PATH0].fddiPATHTVXLowerBound, &smc->mib.m[MAC0].fddiMACTvxValue) ; st |= set_min_max(0,smc->mib.m[MAC0].fddiMACT_MaxMIB, smc->mib.a[PATH0].fddiPATHT_MaxLowerBound, &smc->mib.m[MAC0].fddiMACT_Max) ; st |= (st2 = set_min_max(0,smc->mib.m[MAC0].fddiMACT_ReqMIB, smc->mib.a[PATH0].fddiPATHMaxT_Req, &smc->mib.m[MAC0].fddiMACT_Req)) ; if (st2) { /* Treq attribute changed remotely. So send an AIX_EVENT to the * user */ AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long) FDDI_SMT_EVENT, (u_long) FDDI_REMOTE_T_REQ, smt_get_event_word(smc)); } return(st) ; }
void SPHBonesData::net_Load(NET_Packet &P) { bones.clear (); bones_mask =P.r_u64(); root_bone =P.r_u16(); Fvector _mn, _mx; P.r_vec3 (_mn); P.r_vec3 (_mx); set_min_max (_mn, _mx); u16 bones_number =P.r_u16();//bones number /**/ for(int i=0;i<bones_number;i++) { SPHNetState S; S.net_Load(P,get_min(),get_max()); bones.push_back(S); } }
template <class elem,class Type> void grp_tpl_red_seg<elem,Type>::f ( Type * out, const Type * in, Type * buf_av, INT x_min, INT x_max, INT dx0, INT dx1, Type neutre ) { set_min_max(dx0,dx1); if (dx1-dx0 <=1) { tpl_red_seg<elem,Type>::trivial_f(out,in,buf_av,x_min,x_max,dx0,dx1); return; } Type * tmp = buf_av + x_min + dx0; const Type * ptr_ar = in + x_min + dx0; const Type * ptr_av = in + x_min + dx0; Type res = neutre; for (INT dx = dx0; dx <dx1 ; dx++) elem::op_eq(res,*(ptr_av++)); for (INT x = x_min; x <x_max ; x++) { elem::op_eq(res,*(ptr_av++)); *(tmp++) = res; elem::inv_eq(res,*(ptr_ar++)); } convert(out+x_min,buf_av + x_min + dx0,x_max-x_min); }