fill={} function fill:init() self.aaa=600--nombres de particules self.bbb=0.4 --scale objets self.aaas=1 --list box container self.aaass=1 --list box particules self.ccc=1--intensity stars self.ooo=1--ambient stars self.ppp=0--diffuse stars self.ddd=1--rouge self.eee=1--vert self.fff=1--bleu self.bouta=nil--particules mes choix self.boutb=1--particules prédef self.textA="sphere{<0,0,0>,0.5" self.textB=""--unutilized self.ggg=1--unutilized self.hhh=1--unutilized self.texture=""--texture particules self.t222=""--unutilized end function fill:destroy() end function fill:load(stream) stream:readByte() self.aaa=stream:readDouble() self.bbb=stream:readDouble() self.ccc=stream:readDouble() self.ddd=stream:readDouble() self.eee=stream:readDouble() self.fff=stream:readDouble() self.ggg=stream:readDouble() self.hhh=stream:readDouble() self.aaas=stream:readDouble() self.aaass=stream:readDouble() self.ooo=stream:readDouble() self.ppp=stream:readDouble() self.bouta=stream:readBoolean() self.boutb=stream:readBoolean() self.textA=stream:readString() self.textB=stream:readString() self.texture=stream:readString() self.t222=stream:readString() end -- Save it function fill:save(stream) stream:writeByte(2) stream:writeDouble(self.aaa) stream:writeDouble(self.bbb) stream:writeDouble(self.ccc) stream:writeDouble(self.ddd) stream:writeDouble(self.eee) stream:writeDouble(self.fff) stream:writeDouble(self.ggg) stream:writeDouble(self.hhh) stream:writeDouble(self.aaas) stream:writeDouble(self.aaass) stream:writeDouble(self.ooo) stream:writeDouble(self.ppp) stream:writeBoolean(self.bouta) stream:writeBoolean(self.boutb) stream:writeString(self.textA) stream:writeString(self.textB) stream:writeString(self.texture) stream:writeString(self.t222) end function fill:getProperties() return "FILL", "ABCCCCC1ACF2C5EC", "3311333333333333".. "3331111333333333".. "3333111113333333".. "3333331111133333".. "3333333111113333".. "3333333111111333".. "3333333111111333".. "3333333311111333".. "3333333311111333".. "3333333311111333".. "3333333111111333".. "3333331111113333".. "3333311111133333".. "3333111113333333".. "3331113333333333".. "3311333333333333" end function fill:getDialog(dialog) dialog:addSeparator(" FILL:") self.helpID=dialog:addButton("Help") dialog:addSeparator("Container :") self.aaasID=dialog:addListBox ({"Box", "Sphere", "Torus"}, self.aaas)--type container dialog:addSeparator("Particules:") self.boutaID=dialog:addRadioButton("Mon choix à moi" ,self.bouta) self.textAID=dialog:addTextEdit("No } ",self.textA) dialog:addSeparator("") self.boutbID=dialog:addRadioButton("Prédef" ,self.boutb) self.aaassID=dialog:addListBox ({"Boxes", "Cométes", "Discs", "Electricité", "Explosion", "Spheres", "Stars 1", "Stars 2", "Stars 3", "Stars 4", "stars 5", "Stars 6", "Z-anneaux"}, self.aaass) self.aaaID=dialog:addEditBox("Nbre Objets:",self.aaa,1,1500,0) self.bbbID=dialog:addEditBox("Sc Particules:",self.bbb,0.01,10,2) dialog:addSeparator("For Dics Stars Z-anneau:") self.cccID=dialog:addEditBox("Intensity:",self.ccc,0.01,20,2) self.dddID=dialog:addEditBox("Rojo:",self.ddd,0,10,1) self.eeeID=dialog:addEditBox("Verde:",self.eee,0,10,1) self.fffID=dialog:addEditBox("Bleu:",self.fff,0,10,1) self.oooID=dialog:addEditBox("Ambient:",self.ooo,-5,10,2) self.pppID=dialog:addEditBox("Diffuse:",self.ppp,-5,10,2) dialog:addSeparator("Texture Particules:") self.textureID=dialog:addTexture(self.texture) --rab de fritte non utilisé --dialog:addSeparator(" Les TextEdit:") -- self.textBID=dialog:addTextEdit(nil,self.textB) -- self.gggID=dialog:addEditBox("ggg:",self.ggg,-5,10,2) -- self.hhhID=dialog:addEditBox("hhh:",self.hhh,-5,10,2) --dialog:addSeparator("BLIBLI:") --self.t222ID=dialog:addTexture(self.t222) end function fill:valueChanged(index,value) --ajout pour HELP if index==self.helpID then messageBox("About FILL ", --titre "A great part of these Plug-ins came from the Net. I just rewrite .inc files or macros in Lua format, through Fullmoon_11b \n".. "create by Mr LEIRADELLA. http://www.geocities.com/andre_leiradella/ Email:leiradella@bigfoot.com \n".. "To use with MORAY3.x. \n".. "The wireframe is often disastrous... It'a miscellany of codes, \n".. "intentionaly polyglot, but not difficult to understand, just for le fun. \n".. "From les Iles Caiman. \n".. "C'est la vie.\n".. "Friendly. Sylvain.\n\n".. " -FILL- \n".. " Author: Diego Krota Fill Macro \n\n".. "Here we can fill up 3 kinds of containers, box, sphere, torus and put several kinds of particules inside. \n".. "Now we can choose it's own object in TextEdit, under 'Mon choix à moi'. \n".. "No texture for Discs Stars Z-anneau , only colors. Sometime, stranges effects... \n".. "Many stars came from Galaxy.inc, created by Chris Colefax. \n".. "Important: Cuidado a el max_trace_level in global_settings . Passer de 10 à 20 mini for stars. \n\n".. "\n\n".. " " ) return end if index==self.aaaID then self.aaa=value self:redraw() end if index==self.bbbID then self.bbb=value self:redraw() end if index==self.cccID then self.ccc=value self:redraw() end if index==self.dddID then self.ddd=value self:redraw() end if index==self.eeeID then self.eee=value self:redraw() end if index==self.fffID then self.fff=value self:redraw() end if index==self.gggID then self.ggg=value self:redraw() end if index==self.hhhID then self.hhh=value self:redraw() end if index==self.aaasID then self.aaas=value self:redraw() end if index==self.aaassID then self.aaass=value self:redraw() end if index==self.oooID then self.ooo=value self:redraw() end if index==self.pppID then self.ppp=value self:redraw() end if index==self.boutaID then self.bouta=value self.boutb=nil self:redraw() end if index==self.boutbID then self.bouta=nil self.boutb=value self:redraw() end if index==self.textAID then self.textA=value scene:invalidate() self.redraw() end if index==self.textBID then self.textB=value scene:invalidate() end if index==self.textureID then self.texture=value end if index==self.t222ID then self.t222=value end scene:invalidate() end function fill:getInside(x,y,z) return nil end function fill:wireframe(wire) local sosos,aaass aaass=self.aaass sosos=2 if self.aaas ==1 then sosos=2 --container box do wire:squareX(-1,-1,1,1,-0.5) wire:squareX(-1,-1,1,1, 0.5) wire:squareY(-1,-1,1,1,-0.5) wire:squareY(-1,-1,1,1, 0.5) wire:squareZ(-1,-1,1,1,-0.5) wire:squareZ(-1,-1,1,1, 0.5) end end if self.aaas ==2 then sosos=2 --container sphere do --cercle face ,0.7 wire:circleY(0,0,0,1.2,0,360) -- wire:circleY(0,0,0,0.6,180,360) --cercle profil vers l'arriere wire:circleX(0,0,0,1.2,0,360) -- wire:circleX(0,0,0,0.6,180,360) --cercle a plat du ht vers bas wire:circleZ(0,0,0,1.2,0,360) --le plus ht end end if self.aaas ==3 then sosos=2 --container torus do wire:circleZ(0,0,-.3,1.2,0,360) --le plus bas wire:circleZ(0,0,.3,1.2,0,360) --le plus ht end end end function fill:toPOV(pov) local kk,ll,mm,xxx,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,nn,oo,aaas,aaass,sosos,ooo,ppp kk='(' ll=')' mm='"' xxx=1 aaa=self.aaa bbb=self.bbb ccc=self.ccc --intensity stars ddd=self.ddd--rouge eee=self.eee--vert fff=self.fff--bleu ggg=self.ggg hhh=self.hhh nn='!' oo='|' aaas=self.aaas aaass=self.aaass sosos=1 sososo=1 ooo=self.ooo ppp=self.ppp pov:write("union {") pov:write(" // ") pov:write(" // ") pov:write(" //debut ") pov:write(" // il faut max_trace_level 20 mini voir 30 pour eviter les taches noires //ori 10 ") pov:write(" // il y a 3 containers A, B et C ") if self.aaas ==1 then sosos=2 do pov:write(" // /////BBBBBCreates particles constrained to a BOX ///////////////////////////////////////// ") pov:write(" //BOXBOXBOXBOXBOXBOXBOX ") pov:write(" // ") pov:write(" #macro pmRand",kk,"randStream",ll," ") pov:write(" //returns a random value between -1 and 1 ") pov:write(" //otherwise used the same as rand",kk,"",ll," ") pov:write(" ",kk,"",kk,"rand",kk,"randStream",ll,"-0.5",ll,"*2",ll," ") pov:write(" #end //pmRand ") pov:write(" #macro FillBox",kk,"flbCorner, brtCorner, numOfParts, randRotVect, partObj, seedVal",ll," ") pov:write(" #local randStream = seed",kk,"seedVal",ll,"; ") pov:write(" #local boxXSize = brtCorner.x-flbCorner.x; ") pov:write(" #local boxYSize = brtCorner.y-flbCorner.y; ") pov:write(" #local boxZSize = brtCorner.z-flbCorner.z; ") pov:write(" #local boxCenter = < brtCorner.x-",kk,"boxXSize/2",ll,", brtCorner.y-",kk,"boxYSize/2",ll,", brtCorner.z-",kk,"boxZSize/2",ll,">; ") pov:write(" #local k=0; ") pov:write(" #while",kk,"k < numOfParts",ll," ") pov:write(" object {partObj ") pov:write(" rotate randRotVect * pmRand",kk,"randStream",ll," ") pov:write(" translate < ",kk,"pmRand",kk,"randStream",ll,"*",kk,"boxXSize/2",ll,"",ll,", ") pov:write(" ",kk,"pmRand",kk,"randStream",ll,"*",kk,"boxYSize/2",ll,"",ll,", ") pov:write(" ",kk,"pmRand",kk,"randStream",ll,"*",kk,"boxZSize/2",ll,"",ll," > ") pov:write(" translate boxCenter } ") pov:write(" #local k=k+1; ") pov:write(" #end #end ") pov:write(" //fin fill box ") pov:write(" //////////////////////////////// ") pov:write(" // ") end end if self.aaas ==2 then sosos=1 do pov:write(" // //////AAAAAACreates particles constrained to a sphere ////////////////////////////////////// ") pov:write(" #macro pmRand",kk,"randStream",ll," ",kk,"",kk,"rand",kk,"randStream",ll,"-0.5",ll,"*2",ll,"#end ") pov:write(" #macro FillSphere",kk,"center, rad, numOfParts, randRotVect, partObj, seedVal",ll," ") pov:write(" #local randStream = seed",kk,"seedVal",ll,"; ") pov:write(" #local k=0; ") pov:write(" #while",kk,"k < numOfParts",ll," ") pov:write(" #local partPos = < ",kk,"pmRand",kk,"randStream",ll,"* rad",ll,",",kk,"pmRand",kk,"randStream",ll,"* rad",ll,",",kk,"pmRand",kk,"randStream",ll,"* rad",ll," >; ") pov:write(" #if",kk,"vlength",kk,"partPos",ll," < rad",ll," ") pov:write(" object {partObj ") pov:write(" rotate randRotVect * pmRand",kk,"randStream",ll," ") pov:write(" translate partPos ") pov:write(" translate center } ") pov:write(" #local k=k+1;//If a particle is created, increment counter. Else do nothing. ") pov:write(" #end #end #end ") pov:write(" // fin de particles constrained to a sphere ") end end if self.aaas ==3 then sosos=1 do pov:write(" // ") pov:write(" ///CCCCCCCCCCCreates particles constrained to a Torus//////////////////////////////////////// ") pov:write(" #macro pmRand",kk,"randStream",ll," ") pov:write(" //returns a random value between -1 and 1 ") pov:write(" //otherwise used the same as rand",kk,"",ll," ") pov:write(" ",kk,"",kk,"rand",kk,"randStream",ll,"-0.5",ll,"*2",ll," ") pov:write(" #end //pmRand ") pov:write(" #macro FillArbObj",kk,"blfLimit, trbLimit, numOfParts, randRotVect, partObj, objParams, seedVal",ll," ") pov:write(" //Fills an arbitrary object with particles ") pov:write(" #local randStream = seed",kk,"seedVal",ll,"; ") pov:write(" #local boxXSize = trbLimit.x-blfLimit.x; ") pov:write(" #local boxYSize = trbLimit.y-blfLimit.y; ") pov:write(" #local boxZSize = trbLimit.z-blfLimit.z; ") pov:write(" #local boxCenter = < trbLimit.x-",kk,"boxXSize/2",ll,", trbLimit.y-",kk,"boxYSize/2",ll,", trbLimit.z-",kk,"boxZSize/2",ll,">; ") pov:write(" #local k=0; ") pov:write(" #while",kk,"k < numOfParts",ll," ") pov:write(" #local partLoc = < ",kk,"pmRand",kk,"randStream",ll,"*",kk,"boxXSize/2",ll,"",ll,", ") pov:write(" ",kk,"pmRand",kk,"randStream",ll,"*",kk,"boxYSize/2",ll,"",ll,", ") pov:write(" ",kk,"pmRand",kk,"randStream",ll,"*",kk,"boxZSize/2",ll,"",ll," >; ") pov:write(" #if",kk,"",kk,"FillArbObjTest",kk,"partLoc, objParams",ll,"",ll,"=true",ll,"//If a particle is created, increment counter. Else do nothing. ") pov:write(" object {partObj ") pov:write(" rotate randRotVect * pmRand",kk,"randStream",ll," ") pov:write(" translate partLoc ") pov:write(" translate boxCenter } ") pov:write(" #local k=k+1; ") pov:write(" #end #end #end ") pov:write(" #macro FillArbObjTest",kk,"partLoc, parameters",ll," ") pov:write(" #if",kk,"",kk,"partLoc.x > -0.25",ll,"&",kk,"",kk,"partLoc.x < 0.25",ll,"",ll,"",ll,"//",kk,"",kk,"partLoc.x > 0.25",ll," AND ",kk,"",kk,"partLoc.x < 0.25",ll,"",ll,"",ll," ") pov:write(" #if",kk,"",kk,"",kk,"vlength",kk,"partLoc",ll,"",ll," < parameters[0]",ll,"*",kk,"",kk,"vlength",kk,"partLoc",ll,"",ll," > parameters[1]",ll,"",ll," ") pov:write(" true ") pov:write(" #else ") pov:write(" false ") pov:write(" #end ") pov:write(" #else ") pov:write(" false ") pov:write(" #end #end ") pov:write(" // ") end end pov:write(" // A PARTIR D'ICI objects qui rempliront les gros objets containers ") pov:write(" //DIVERS OBJETS PARTICULES ") pov:write(" //declaration couleur pour les stars ") pov:write(" #declare galaxy_intensity = 10*",ccc,"; ") pov:write(" #declare _GX_colour1 = <1*",ddd,", 1*",eee,", 1*",fff,">*1; // ori <1, 0, 0> //centre ") pov:write(" #declare _GX_colour2 = <1*",ddd,", 1*",eee,", 1*",fff,",0.1>*1; // ori <0, 0, 1> //ext ") pov:write(" #declare _GX_colour3 = <1*",ddd,", 1*",eee,", 1*",fff,">*1; // milieu ") pov:write(" #declare _GX_starcolour1 = _GX_colour1; ") pov:write(" #declare _GX_starcolour2 = _GX_colour2/9; ") pov:write(" #declare _GX_starcolour3 = _GX_colour3; ") pov:write(" #declare _GX_objscale = <1, 1, 1>*1; ") if self.boutb==1 then --ici si on prend les prédef des objects qui rempliront les gros objets containers pov:write(" // ") pov:write(" // ") pov:write(" // A PARTIR D'ICI objects qui rempliront les gros objets containers ") if self.aaass ==1 then sosos=1 do pov:write(" //type PARTICULES Box 111111111111111111111111111111111111111111111111111 ") pov:write(" ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = box {<0.05,0.05,0.05>, <-0.05,-0.05,-0.05> ") pov:texture(self.texture) --pov:write(" pigment {color rgb <0,0,1>} ") pov:write(" scale 5 *",bbb," ") pov:write(" } ") pov:write(" ") end end if self.aaass ==2 then sosos=1 do pov:write(" ") pov:write(" //object { _GX_object scale <1,1,1>scale 2} ") pov:write(" //type 2 COMETES 2222222222222222222222222222222222222222222222222222222222222 ") pov:write(" #declare galaxy_intensity = 1; ") pov:write(" #declare _GX_colour1 = 3 * <1*",ddd,", 1*",eee,", 1*",fff,">;//tete ") pov:write(" #declare _GX_colour3 = 4* <1*",ddd,", 0*",eee,", 0*",fff,">; //milieu ") pov:write(" #declare _GX_colour2 = 1 * <0, 0, 1>; //queu ") pov:write(" #declare galaxy_pattern_scale = 1; ") pov:write(" #declare galaxy_turb_origin = <0, 0, 0>; ") pov:write(" #declare galaxy_pattern_origin = <0, 0, 0>; ") pov:write(" #declare _GX_finaltranslate = galaxy_turb_origin - galaxy_pattern_origin; ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = disc {<.5, 0, 0>, z, .499 pigment {gradient x pigment_map { ") pov:write(" [.1 onion color_map {[.03 rgb _GX_colour1 transmit pow",kk,".1, galaxy_intensity",ll,"] ") pov:write(" [.05 rgb _GX_colour3 transmit 1]} translate <.1, 0, 0>warp {turbulence .02 octaves 3 lambda 4} ] ") pov:write(" [.12 onion color_map {[.02 rgb _GX_colour1 transmit pow",kk,".2, galaxy_intensity",ll,"] ") pov:write(" [.05 rgb _GX_colour3 transmit 1]} ") pov:write(" scale <18, 1, 1> translate <.1, 0, 0>] ") pov:write(" [.5 onion pigment_map { ") pov:write(" [0 granite color_map {[0 rgb _GX_colour3 transmit pow",kk,".3, galaxy_intensity",ll,"] ") pov:write(" [1 rgb _GX_colour2 transmit 1]} scale .2 * galaxy_pattern_scale translate _GX_finaltranslate] ") pov:write(" [.05 rgb _GX_colour2 transmit 1]} ") pov:write(" scale <18, 1, 1> translate <.1, 0, 0> translate -galaxy_turb_origin warp {turbulence .02 octaves 3 lambda 4} ") pov:write(" translate galaxy_turb_origin ]} // {turbulence .02 octaves 3 lambda 4} //la queue ") pov:write(" scale <1, 5, 1>} ") pov:write(" scale <1.1, .1, 1> translate <-.1, 0, 0> scale 8*",bbb," translate <-1,0,2> ") pov:write(" no_shadow } ") pov:write(" // ") pov:write(" ") end end if self.aaass ==3 then sosos=1 do pov:write(" //type PARTICULES Disc 33333333333333333333333333333333333333333333333333333333 ") pov:write(" ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = ") pov:write(" disc {<0, 0, 0>, z, 0.3 rotate <110,143,159>//",aaa," Si + de scale cela forme une aureole comme jesus ") pov:write(" texture{pigment {onion color_map { ") pov:write(" [0 rgbft <1.5*",ddd,",1.5*",eee,",1.5*",fff,",0,0>] ") pov:write(" [0.5 rgbft <1*",ddd,",1*",eee,",1*",fff,",1,0>] ") pov:write(" [1 rgbft <1*",ddd,",1*",eee,",1*",fff,",1,0>]}scale 1 scallop_wave}//le scale pour + ou - les anneaux serrés BRAS ") pov:write(" // finish {ambient 0.8 diffuse 0 } ") pov:write("rotate <40,40,90>} scale 1 ") pov:write(" //essais eparpillage local et gene ") --pov:write(" translate 2.6*1*1 scale 3*",bbb," no_shadow } ") pov:write(" scale 3*",bbb,"} ") pov:write(" ") end end if self.aaass ==4 then sosos=1 do pov:write(" //type PARTICULES ELECTRIQUES 444444444444444444444444444444444444444444444444444 ") pov:write(" //vient de galaxie.inc ") pov:write(" #declare particleObject1 = ") pov:write(" //qd 1.999 anneau ") pov:write(" #declare _GX_object1 = disc {0, z, 1.999 pigment {average pigment_map { ") pov:write(" [1 wrinkles color_map { ") pov:write(" [.4 rgb _GX_starcolour1 * 8 transmit pow",kk,".05, galaxy_intensity",ll,"] [.2 rgb _GX_starcolour3 * 3 ") pov:write(" transmit pow",kk,".3, galaxy_intensity",ll," ] ") pov:write(" [1 rgb _GX_starcolour2 transmit 1]} scallop_wave scale 2] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow",kk,".05, galaxy_intensity",ll,"] [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <45, 1, 1>] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow",kk,".05, galaxy_intensity",ll,"] [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <1, 50, 1>]}turbulence <.6,.6,.6>} scale ",bbb,"*2.5 no_shadow finish {ambient ",ooo," diffuse ",ppp," } }") end end if self.aaass ==5 then sosos=1 do pov:write(" ") pov:write(" //type 6 particule nuageuse EXPLOSION 555555555555555555555555555555555555555555555555 ") pov:write(" #declare galaxy_intensity =1; // ori 1 ") pov:write(" #declare _GX_colour1 =<0,1,1>*1 ;//<0,1,1> ") pov:write(" #declare _GX_colour3 =<2,2,2> ;//ori 1 de + en + visible ") pov:write(" #declare galaxy_pattern_scale = 1; //ori1 ") pov:write(" #declare galaxy_pattern_origin = <0, 0, 0>;// ori <0, 0, 0> ") pov:write(" #declare _GX_colour2 =<1,0,0> *4 ; ") pov:write(" #declare galaxy_turb_origin = <0.5, 0, 0>; ") pov:write(" #declare _GX_objscale = <1, 1, 1>; ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = disc {0, z, .999 pigment {onion pigment_map { ") pov:write(" [.2 granite color_map {[0 rgb _GX_colour1 transmit pow",kk,".1, galaxy_intensity",ll,"] ") pov:write(" [1 rgb _GX_colour3 transmit pow",kk,".6, galaxy_intensity",ll,"]} scale 2 * galaxy_pattern_scale translate -galaxy_pattern_origin] ") pov:write(" [.8 granite color_map {[0 rgb _GX_colour3 transmit pow",kk,".6, galaxy_intensity",ll,"] ") pov:write(" [.5 rgb _GX_colour2 transmit pow",kk,".95, galaxy_intensity",ll,"]} scale galaxy_pattern_scale translate -galaxy_pattern_origin] ") pov:write(" [.9 rgb _GX_colour2 transmit 1]} ") pov:write(" scallop_wave scale 2.2 ") pov:write(" translate -galaxy_turb_origin warp {turbulence .35 octaves 4 omega .4 lambda 3} translate galaxy_turb_origin}scale 4*",bbb," no_shadow} ") pov:write(" #declare _GX_objscale = <.3, .3, 1> * _GX_objscale ; ") pov:write(" #declare _GX_objcreated = true; ") pov:write(" ") end end if self.aaass ==6 then sosos=1 do pov:write(" //type PARTICULES sphere 333333333333333333333333333333333333333333333333333333333333333333333333333333 ") pov:write(" ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = sphere {<0,0,0>, 0.05 ") pov:texture(self.texture) --pov:write(" pigment {color rgb <1,1,1>} ") pov:write(" scale 5 *",bbb,"} ") pov:write(" ") end end if self.aaass ==7 then sosos=1 do pov:write(" //type PARTICULES etoile STAR1 66666666666666666666666666666666666666666666666666666666666666666666 ") pov:write(" ") pov:write(" #declare particleObject1 = //qd 1.999 anneau ") pov:write(" #declare _GX_object1 = disc {0, z, .5 pigment {average pigment_map { ") pov:write(" [1 onion color_map { ") pov:write(" [.05 rgb _GX_starcolour1 * 10 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.2 rgb _GX_starcolour3 * 3 transmit pow",kk,".3, galaxy_intensity",ll,"] ") pov:write(" [1 rgbf _GX_starcolour2 filter 1 transmit 1]} scallop_wave scale 2] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 transmit pow",kk,".8, galaxy_intensity",ll,"] ") pov:write(" [.06 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <16, 1, 1>] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 transmit pow",kk,".8, galaxy_intensity",ll,"] ") pov:write(" [.06 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <16, 1, 1> rotate z * 120] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 transmit pow",kk,".8, galaxy_intensity",ll,"] ") pov:write(" [.06 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <16, 1, 1> rotate z * 240]}turbulence 0.1}scale 3*",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" ") pov:write(" // ") end end if self.aaass ==8 then sosos=1 do pov:write(" //type PARTICULES lua STAR2 77777777777777777777777777777777777777777777777777777777777777777777777 ") pov:write(" ") pov:write("#declare particleObject1 = ") pov:write("#declare _GX_object1 = disc {0, z, .999 pigment {average pigment_map { ") pov:write("[1 onion color_map { ") pov:write("[.05 rgb _GX_starcolour1 * 8 transmit pow",kk,".05, galaxy_intensity",ll,"] [.2 rgb _GX_starcolour3 * 3 ") pov:write("transmit pow",kk,".3, galaxy_intensity",ll," ] ") pov:write("[1 rgb _GX_starcolour2 transmit 1]} scallop_wave scale 2] ") pov:write("[1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow",kk,".05, galaxy_intensity",ll,"] [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write("scale <45, 1, 1>] ") pov:write("[1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow",kk,".05, galaxy_intensity",ll,"] [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write("scale <1, 50, 1>]}}scale ",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" ") end end if self.aaass ==9 then sosos=1 do pov:write(" //STAR3 88888888888888888888888888888888888888888888888888888888888888 ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = disc {0, z, .999 pigment {average pigment_map { ") pov:write(" [1 onion color_map { ") pov:write(" [.1 rgb _GX_starcolour1 * 8 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.3 rgb _GX_starcolour3 * 2 transmit pow",kk,".2, galaxy_intensity",ll,"] ") pov:write(" [.35 rgb _GX_starcolour1 * 3 transmit pow",kk,".1, galaxy_intensity",ll,"] ") pov:write(" [.4 rgb _GX_starcolour3 * 1.5 transmit pow",kk,".2, galaxy_intensity",ll,"] ") pov:write(" [.7 rgb _GX_starcolour2 transmit pow",kk," 1, galaxy_intensity",ll,"] ") pov:write(" [.71 rgb _GX_starcolour3 * 1.5 transmit pow",kk,".4, galaxy_intensity",ll,"]") pov:write(" [.72 rgb _GX_starcolour2 transmit pow",kk," 1, galaxy_intensity",ll,"] ") pov:write(" [1 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scallop_wave scale 2] ") pov:write(" [1 onion color_map { ") pov:write(" [0 rgb _GX_starcolour1 * 2 transmit pow",kk,".05, galaxy_intensity",ll,"] [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <45, 1, 1>] ") pov:write(" [1 onion color_map { ") pov:write(" [0 rgb _GX_starcolour1 * 2 transmit pow",kk,".05, galaxy_intensity",ll,"] [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <1, 50, 1>]}}scale ",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" #declare _GX_objscale = <.2, .2, 1> * _GX_objscale; ") pov:write(" //fin 888888888888888888888888888888888888888888888888888888888888888888 ") end end if self.aaass ==10 then sosos=1 do pov:write(" //STAR4 9999999999999999999999999999999999999999999999999999999999 ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = disc {0, z, .999 pigment {average pigment_map { ") pov:write(" [1 onion color_map { ") pov:write(" [.05 rgb _GX_starcolour1 * 8 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.2 rgb _GX_starcolour3 * 3 transmit pow",kk,".3, galaxy_intensity",ll,"] ") pov:write(" [1 rgb _GX_starcolour2 transmit 1]} scallop_wave scale 2] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <45, 1, 1>] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.02 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <1, 50, 1>]}}scale ",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" #declare _GX_objscale = <.2, .2, 1> * _GX_objscale; ") pov:write(" //fin 99999999999999999999999999999999999999999999999999999999999999999 ") end end if self.aaass ==11 then sosos=1 do pov:write(" // STAR5 10101010101011010101010101010101010101010101010101010101010100101 ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = disc {0, z, .999 pigment {average pigment_map { ") pov:write(" [1 onion color_map { ") pov:write(" [.15 rgb _GX_starcolour1 * 8 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.4 rgb _GX_starcolour3 * 3 transmit pow",kk,".1, galaxy_intensity",ll,"] ") pov:write(" [.49 rgb _GX_starcolour3 * 1.5 transmit pow",kk,".3, galaxy_intensity",ll,"] ") pov:write(" [.5 rgb _GX_starcolour1 * 2 transmit pow",kk,".1, galaxy_intensity",ll,"] ") pov:write(" [.51 rgb _GX_starcolour3 transmit pow",kk,".3, galaxy_intensity",ll,"] ") pov:write(" [1 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scallop_wave scale 2] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 * 2 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.01 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <90, 1, 1>] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 * 2 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.01 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <1, 100, 1>]}}scale ",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" #declare _GX_objscale = <.2, .2, 1> * _GX_objscale; ") end end if self.aaass ==12 then sosos=1 do pov:write(" #declare particleObject1 = ") pov:write(" //STAR6 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ") pov:write(" #declare _GX_object1 = disc {0, z, .999 pigment {average pigment_map { ") pov:write(" [1 onion color_map { ") pov:write(" [.05 rgb _GX_starcolour1 * 10 transmit pow",kk,".05, galaxy_intensity",ll,"] ") pov:write(" [.2 rgb _GX_starcolour3 * 3 transmit pow",kk,".3, galaxy_intensity",ll,"] ") pov:write(" [1 rgb _GX_starcolour2 transmit 1]} scallop_wave scale 2] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 transmit pow",kk,".8, galaxy_intensity",ll,"] ") pov:write(" [.06 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <16, 1, 1>] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 transmit pow",kk,".8, galaxy_intensity",ll,"]") pov:write(" [.06 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <16, 1, 1> rotate z * 120] ") pov:write(" [1 onion color_map {[0 rgb _GX_starcolour1 transmit pow",kk,".8, galaxy_intensity",ll,"] ") pov:write(" [.06 rgb _GX_starcolour2 transmit 1]} ") pov:write(" scale <16, 1, 1> rotate z * 240]}}scale ",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" #declare _GX_objscale = <.2, .2, 1> * _GX_objscale; ") end end --fin total des 6 stars pov:write(" #declare _GX_colour1 = 3 * <1*",ddd,", 1*",eee,", 1*",fff,">;//tete ") pov:write(" #declare _GX_colour3 = 4* <1*",ddd,", 0*",eee,", 0*",fff,">; //milieu ") pov:write(" #declare _GX_colour2 = 1 * <0, 0, 1>; //queu ") if self.aaass ==13 then sosos=1 do pov:write(" //type PARTICULES Disc zANNEAUX 1313131313131313131313131313131313131313 ") pov:write(" ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = ") pov:write(" disc {<0, 0, 0>, z, 1.6 rotate <110,143,159>//",aaa," Si + de scale cela forme une aureole comme jesus ") pov:write(" texture{pigment {onion color_map { ") pov:write(" [0 rgbft <1*",ddd,",1*",eee,",1*",fff,",1,0>] ") pov:write(" [0.7 rgbft <1*",ddd,",1*",eee,",1*",fff,",1,0>] ") pov:write(" [0.94 rgbft <1*",ddd,",1*",eee,",1*",fff,",.1,0>] ") pov:write(" [1 rgbft <1*",ddd,",1*",eee,",1*",fff,",1,0>]}turbulence 0 scale 3 scallop_wave}//le scale pour + ou - les anneaux serrés BRAS ") pov:write(" // finish {ambient 0.8 diffuse 0 } ") pov:write("rotate <40,40,90>} scale 1 ") pov:write(" //essais eparpillage local et gene ") pov:write(" translate 2.6*1*1 scale 0.5*",bbb," finish {ambient ",ooo," diffuse ",ppp," }no_shadow} ") pov:write(" ") end end pov:write("//") end-- fin des prédef if self.bouta==1 then --mes propre choix d'objet remplissanr les containers pov:write(" //à faire ") pov:write(" #declare particleObject1 = ") pov:write(" #declare _GX_object1 = ") if self.textA ~= "" then pov:write(self.textA) end pov:texture(self.texture) pov:write(" } ") end pov:write(" //////////////////////////////////////////////// ") pov:write(" //les 3 objets containers ") if self.aaas ==1 then sososo=1 do pov:write(" ") pov:write(" //BOXBOXBOXBOXBOX ") pov:write(" //#declare particleObject1 = ") pov:write(" object{ _GX_object1 scale 0.4 //finish {ambient 1 diffuse 1}") pov:write("} ") pov:write(" union {FillBox",kk,"< -1, 0, -1>, < 1, 2, 1>, ",aaa,",< 360,360,360>,particleObject1 , 455434",ll," ") pov:write(" scale 0.9 translate <0, -0.9, 0>} ") pov:write(" ") end end if self.aaas ==2 then sososo=1 do pov:write(" //objet FILLSphere lui meme ") pov:write(" object{ _GX_object1 scale 0.4 //finish {ambient 1 diffuse 1} ") pov:write("} ") pov:write(" union {FillSphere",kk,"< 0, 1, 0>, 1 , ",aaa,", < 360,360,360>, particleObject1, 455434",ll," //ici macro totale ") pov:write(" translate < 0,-1, 0> } //1.8 ") end end if self.aaas ==3 then sososo=1 do pov:write(" //objet FillArbObj lui meme ou torus ") pov:write(" ") pov:write(" object{ _GX_object1 scale 0.4// finish {ambient 1 diffuse 1}") pov:write("} ") pov:write(" union { FillArbObj",kk," < -0.3, 0, -1>, < 0.3, 2, 1>, ",aaa,", < 360,360,360>, particleObject1, array[2] {1,0.5}, 454535",ll," ") pov:write(" scale 1.1 rotate < 0, 90, 0>translate <0,-1.1,0>} ") pov:write(" // Fin de FillArbObj ou torus ") pov:write(" ") end end --inutilisé --if self.textB ~= "" then -- pov:write(self.textB) -- end pov:write(" //fin ") pov:transforms(self.xforms) pov:write("}") end registerClass(fill,"fill")