function d=dtramezze(p) % Cube

global HFONDAMENTA;            
global HPRIMOPIANO;            
global HSECONDOPIANO;          
global HSOFFITTI;              
global HTETTO;                 
global PROFONDITA;             
global LARGHEZZA;              
global SPESSOREMURIPORTANTI;   
global SPESSORETRAMEZZE;
global ASCISSATRAMEZZA1;
global ORDINATATRAMEZZA2;
global ASCISSATRAMEZZA3;
global ASCISSATRAMEZZA6; 
global ORDINATATRAMEZZA4;
global ORDINATATRAMEZZA5;
global ALZATASCALINI;
global ORDINATATRAMEZZA7;

Tramezza1=dcube(p,SPESSOREMURIPORTANTI/2,PROFONDITA-SPESSOREMURIPORTANTI/2,ASCISSATRAMEZZA1-SPESSORETRAMEZZE/2,ASCISSATRAMEZZA1+SPESSORETRAMEZZE/2,HFONDAMENTA/2,HPRIMOPIANO);
Tramezza2=dcube(p,ORDINATATRAMEZZA2-SPESSORETRAMEZZE/2,ORDINATATRAMEZZA2+SPESSORETRAMEZZE/2,ASCISSATRAMEZZA1+SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3-SPESSORETRAMEZZE/2,HFONDAMENTA/2,HPRIMOPIANO);
Tramezza3=dcube(p,SPESSOREMURIPORTANTI/2,ORDINATATRAMEZZA2+SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3-SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3+SPESSORETRAMEZZE/2,HFONDAMENTA/2,HPRIMOPIANO);
Tramezza4=dcube(p,ORDINATATRAMEZZA4-SPESSORETRAMEZZE/2,ORDINATATRAMEZZA4+SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3,ASCISSATRAMEZZA6+SPESSORETRAMEZZE/2,HFONDAMENTA/2,HPRIMOPIANO);
Tramezza5=dcube(p,ORDINATATRAMEZZA5-SPESSORETRAMEZZE/2,ORDINATATRAMEZZA5+SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3,ASCISSATRAMEZZA6+SPESSORETRAMEZZE/2,HFONDAMENTA/2,HPRIMOPIANO);
Tramezza6=dcube(p,SPESSOREMURIPORTANTI,ORDINATATRAMEZZA4,ASCISSATRAMEZZA6-SPESSORETRAMEZZE/2,ASCISSATRAMEZZA6+SPESSORETRAMEZZE/2,HFONDAMENTA/2,HPRIMOPIANO);
d=dunion(dunion(dunion(dunion(dunion(Tramezza1,Tramezza2),Tramezza3),Tramezza4),Tramezza5),Tramezza6);
d=ddiff(d,dcube(p,SPESSOREMURIPORTANTI,ORDINATATRAMEZZA5-SPESSORETRAMEZZE/2,ASCISSATRAMEZZA6-SPESSORETRAMEZZE/2,ASCISSATRAMEZZA6+SPESSORETRAMEZZE/2,HPRIMOPIANO-4*ALZATASCALINI,HPRIMOPIANO));
Tramezza7=dcube(p,ORDINATATRAMEZZA7-SPESSORETRAMEZZE/2,ORDINATATRAMEZZA7+SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3+SPESSORETRAMEZZE/2,LARGHEZZA-SPESSOREMURIPORTANTI,HPRIMOPIANO+HSOFFITTI/2,HPRIMOPIANO+HSOFFITTI+HSECONDOPIANO);
Tramezza8=dcube(p,SPESSOREMURIPORTANTI,PROFONDITA-SPESSOREMURIPORTANTI,ASCISSATRAMEZZA3-SPESSORETRAMEZZE/2,ASCISSATRAMEZZA3+SPESSORETRAMEZZE/2,HPRIMOPIANO+HSOFFITTI/2,HPRIMOPIANO+HSOFFITTI+HSECONDOPIANO);
d=dunion(d,dunion(Tramezza7,Tramezza8));

function d=dcube(p,x1,x2,y1,y2,z1,z2) % Cubo
[a b]=size(p);
d=-min(min(min(min(min(-y1*ones(a,1)+p(:,2),y2*ones(a,1)-p(:,2)),-x1*ones(a,1)+p(:,1)),x2*ones(a,1)-p(:,1)),-z1*ones(a,1)+p(:,3)),z2*ones(a,1)-p(:,3));