AC4DC4D6+>肂rconst var nb_marches=10; main(doc,op) { if (!instanceof(op,PrimitiveObject)) return; // op doit tre un objet primitif if (op->GetPrimitiveType()!=PRIMITIVE_CUBE) return; // il doit tre un cube var op_pos=op->GetPosition(); // position de op var bc; bc=op->GetContainer(); // on prend les paramtres de op var h_escalier,l_escalier,p_escalier; var size_escalier=bc->GetData(PRIM_CUBE_LEN); //paramtres dimensions du cube op l_escalier=size_escalier.x; // largeur de l'escalier (cube) h_escalier=size_escalier.y; // hauteur. p_escalier=size_escalier.z; // profondeur. //*************** cration de l'escalier ******************************** var h_marche,l_marche,p_marche; l_marche=l_escalier; //largeur des marche=largeur escalier h_marche=h_escalier/nb_marches; //hauteur marche p_marche=p_escalier/nb_marches; //profondeur marche var px,py,pz; // position pour chaque marche var marche; // variable pour chaque marche var bcm; // variable container pour les paramtres var i; // pour les boucles var escalier=op->GetDown(); if (!escalier) // si op n'a pas d'enfant on le cr { escalier=new(NullObject); // objet neutre escalier escalier->SetName("Escalier"); doc->InsertObject(escalier,op,NULL); for (i=0;i<nb_marches;i++) { marche=new(PrimitiveObject); // 1 marche = objet cube marche->SetPrimitiveType(PRIMITIVE_CUBE); // type cube marche->SetName("Marche"); bcm=marche->GetContainer(); // on accde ses paramtres bcm->SetData(PRIM_CUBE_LEN,vector(l_marche,h_marche,p_marche));//on fixe ses dimensions marche->SetContainer(bcm); // on valide ses nouveaux paramtres doc->InsertObject(marche,escalier,NULL); // on insert la marche dans la scne px=0; // position x de la marche = position x de l'escalier. //la position y des marches se fait de bas en haut de l'escalier //on se place en bas de l'escalier + hauteur de la dernire marche py=(h_marche/2)-(h_escalier/2) + (i*h_marche); //la position z des marches se fait d'avant en arrire //on se place l'avant de l'escalier + hauteur de la dernire marche pz=(p_marche/2)-(p_escalier/2) + (i*p_marche); marche->SetPosition(vector(px,py,pz)); // on fixe la position de la marche } } // ************ adaptation automatique de l'escalier ************************* marche=escalier->GetDown();if (!marche) return; for (i=0;i<nb_marches;i++) { // on redimensionne les marches en fonction de la dimension du cube op bcm=marche->GetContainer(); // on accde aux paramtre de la marche bcm->SetData(PRIM_CUBE_LEN,vector(l_marche,h_marche,p_marche));//on fixe ses dimensions marche->SetContainer(bcm); // on valide ses nouveaux paramtres // on adapte la position // Attention! on lit maintenant de haut en bas car la dernire // marche cre est la premire de la liste dans "escalier" ! px=0; // position x de la marche = position x de l'escalier. py=-(h_escalier/2)-(h_marche/2) + ((nb_marches-i)*h_marche); pz=-(p_escalier/2)-(p_marche/2) + ((nb_marches-i)*p_marche); marche->SetPosition(vector(px,py,pz)); // on fixe la position de la marche marche=marche->GetNext();if (!marche) return; } } ?????????>Placez l'expression sur un cube ?????????8Puis modifiez ses dimensions ??XLCHCHCHQB MNOPR?????????CubeNouveau@CCp?????????L@$@????'&H,?333F??@A d?=?PQ[\RSRUVWXZ F鄄ꄄ'(a+,DHDdBʀ?DzDE;BDB1(CR????~%~vDHDdB?DzDE;B????I۾DHDdB?DzDE;B????I۾DHDdB?DzDE;B????I۾   Z2d22e22f22g2?@???@??w3I~ù)qg[%Opm@0]B Eg~$%jv}m}9s}rJw" wC ֺ*Ѹ88ƪA_T9S-ajJI]3qdQ=|Ԉtj#wQDYA)M`!31hCyG+ O* ~)whta#-a'd5<@Q:t[:n~YQ}Ff /eۥiWgQE]RVyՑֿ0 ~oIwcz;(@Pzby^Qn{kK2RfSM0C.˻]\a0Xt[c8avN)3D@5@&g6{Ul1StOrcVsn1H>!Wty.I?t.2e/"14q&̤KU@~) 0 _W';k! @ˊw+B#0ޤ"G4얠̏1YqUpa QCr@@+)K5Po ,%[-eGGq-z_96SNՈ]"Cr\#1).9RT[%7b̘K8Fvڋm ^Vo\'Н_ELjnfSH(Tpn[o/;0]nPnn$Z\%[gݡ?&_,֭] k;A՘OUy[KI'{6ԣrS,Fjro|YDimfO!zhf,#KQuuOkiV,8O"Y&P\e0PlH/`ɛGv?Gp C梘i̹jcxDVv-V8m0*Vt OO3v:[wcQqdQ_Wz%X]|Xjc%j_@PlW%yW@rpPZxHf샠7ݽQeSg!&tfUP ީ۴N,TNhI]#X_}Ѵ@|Lύ,N-a/@#]z'˧L89}jْ?!?"0/L 4m7 p?Ĺ 8|AjPFkOsb뿾}Ⱥ,;\Y%ԐK V5CEDʸ0.єo ! :`THcg<ثu¸ufvZYbz5NyR:upPh?\(}SEO3\"NOy.Nߔc\7 'oHs;q2ttPRtJҿ觱ML'>'?'?'?''''' '!'"'#'$'8''&'''(')'*'+','-'.'/'0'1'2'3'4'5'7'%'''' ?@@?@?@@?#$BH%?L?L?L&>2'.(?)?*?+?,?-?:;8967<= KLM?A A A A A A I23@I54CCC???    ? @I??????<# BC?I@A @ "?IJH<# !/0?1DEBF?G @                   B d        A = = ; ?S >L=L=?I>L?