nintendo ds emulator for psp 3000 guitar chord chart printable desktop destroyer christmas version free download samsung moment vs htc hero vs palm pre wireless bridge linksys wrt54g2 cigarettes online how to install bluetooth dongle vista dodge charger forum dress up games for adults only free online jeep grand cherokee for sale xbox 360 secret achievements borderlands guitar tabs for hey there delilah mazda 3 speed turbo compaq laptops drivers free download winter olympics 2010 opening ceremonies tickets jeep wrangler for sale subaru impreza outback sport 2010 pontiac g8 gxp for sale canada laminate countertops price per square foot scanner software freeware mac tattoo ideas for girls galleries canon 7d firmware hack toyota yaris recall 2009 design your own wedding dress online game snowboard pants with suspenders tattoo removal cost estimate moviefone promotional code grasslands facts for kids notebook computers under 400 kawasaki atv repair manual download bmw forums e46 trucks for sale in pakistan pizza dough recipe for bread machine facebook chat emoticons ancient egyptian hieroglyphics for kids 2006 mazda 6 aftermarket parts bathroom wall tile ideas dodge viper srt 10 for sale rolex datejust price range famous people with dyslexia posters toyota tacoma prerunner 4x4 subaru forester 2010 accessories warcraft 3 image extractor 2 download student loan forgiveness obama nikon d90 video tutorial 1967 pontiac gto muscle car used porsche 911 for sale usa bathroom renovation ideas pictures 2005 kia sorento problems multiplayer rpgs for wii flash games 247 bike mania 4 kia soul price in egypt honda civic hatchback for sale software engineer salary india sony vaio laptops drivers chevrolet for sale medieval rpg flash games wedding invitations costco jaguar cars history infiniti g35 parts toyota center kennewick small bathroom renovation ideas pictures underwear drawer famous deaf people today satellite tv providers canada volkswagen passat for sale suzuki sx4 awd 2010 samsung mobile phones in india with price english dating sims for girls guitar tuner drop c carnival cruise fare codes mazda cx7 reviews 2009 auctions online michigan princess cut diamond and sapphire engagement rings satellite radio antenna booster fishing knots and rigs toyota recall list rav4 pants off dance off uk cheeky girls bob hope chrysler classic grassland animals pictures usb modem speed booster mitsubishi lancer forum malaysia keyboard stickers arabic cartridge world prices australia canon t1i video tips toyota tacoma recall rust frame how to debrand sony ericsson c905a wifi hyundai santa fe reviews 2009 samsung mythic a897 avery templates for business cards fishing reports california delta website builder freeware dvdfab 6 registration keygen mazda miata hardtop sale famous short friendship poems snowboarding jackets on sale in canada rolex watches for women bathroom cabinets and vanities ikea keyboard shortcuts symbols music note compaq evo drivers free download volkswagen beetle parts catalog snowboarding gloves grenade bruce laminate floors reviews cruise critic chrysler crossfire srt6 convertible suzuki oem motorcycle parts basketball plays flex offense snowboard boots and bindings canon powershot g11 accessories porsche cayenne 2010 model memory foam dog bed seen on tv cablevision channel guide bronx pontiac gto judge wallpaper suzuki sx4 crossover reviews camcorder buying guide india dress up who betty boop subaru legacy gt bathroom shower tile ideas volkswagen beetle accessories bmw financial services go green sweepstakes replica coach purses wholesale ticketmaster promo codes portrait photography tips lighting samsung led tv 6000 2001 chrysler town and country parts diagram hyundai sonata 2010 picture grassland animals and their adaptations bmw m3 gtr printer drivers epson r200 pontiac grand prix gxp mitsubishi outlander forum yamaha vintage snowmobiles lexus rx 350 recalls kia sorento 2011 canada funny winter solstice quotes dress up barbie kitchen glass tile backsplash pictures receiver hitch winch mitsubishi lancer forum canada subaru sti 2010 sedan basketball drills for 6 year olds saturn sl performance parts used mitsubishi evo 9 for sale desktop destroyer 2 grassland animals facts guitar chord chart pdf rpg maker vx resources pack porsche forums usa saturn astra performance parts skype download for blackberry 8900 truck accessories san antonio texas guitar pro 6 torrent download ventrilo server status script on your website bluetooth headset for ipod touch 3rd gen replica louis vuitton belts buy converse shoes online cheap sony vegas movie studio 9 keygen compaq presario cq60 drivers for windows 7 laura ashley laminate flooring installation instructions dodge caliber problems compaq presario f700 drivers for windows xp lands end coupon code 20 off gift ideas for boyfriend microsoft templates online desktop destroyer game christmassy rolex oyster perpetual cosmograph daytona price bridesmaid dresses plus size indesign templates for business cards free logo creator freeware volkswagen beetle engine codes northface denali jackets on sale for women wedding cakes and prices desktop destroyer toyota and lexus recall 2009 free dating websites for single parents samsung eternity games saw video game walkthrough guide subaru impreza wrx for sale in pa compaq presario cq50 drivers for vista bmw financial services phone number mitsubishi lancer parts diagram subaru outback 2010 price toyota recall list november 2009 bathroom ideas for small spaces software testing tutorial download toyota floor mat recall list bmw x5 aftermarket parts opelousas general hospital baby pictures samsung plasma tv calibration hand blown glass pipes bongs tattoos for girls on hip 2010 volkswagen gti reliability nissan leaf specs software engineering interview questions with answers truck games download free bmw usa factory exact replica louis vuitton handbags sample wedding vows write your own compaq c700 infinity ward host migration problems honda accord crosstour commercial song rolex daytona price 2009 kia cars usa sawgrass mills mall directory wedding dresses 2010 pictures rolex watches models bmw x5 e70 forum templates for resumes and cover letters cablevision channel guide nj cadillac cts v coupe toyota corolla parts porsche boxster spyder 2011 compaq presario v3000 drivers for vista gps maps free download cyprus xbox 360 repair center animation factory rapidshare hd screensavers for mac free printer ink cartridges refill playstation roms torrent roses are red jokes basketball reference police scanner radio frequencies warcraft 3 frozen throne cd key buy rolex serial numbers chart best backpacks for college 2009 hyundai accent 2010 pictures jeanstar jeans retailers 2010 porsche panamera hybrid bathroom accessories unlimited tattoo fonts cursive generator infinity ward nat settings winter 2010 olympics opening ceremony jeeps for sale in alabama skype for blackberry curve 8520 wallpaper desktop widescreen suzuki 2010 motorcycles release date limewire pro free mac os x bluetooth headphones ps3 use printer offline error processing command scanner reviews 2009 cnet guitar scales pdf free download toyota financial repossession software testing life cycle ppt kia motors philippines kitchen islands on wheels opel astra 2010 model lexus suv hybrid 2010 hyundai santa fe forum uk laminate countertops home depot subaru baja tonneau wow cataclysm beta download samsung omnia i910 mazda 323 forum honda accord forum malaysia subaru wrx 2010 pictures recipes for ground beef meatballs porsche cayenne 2010 spy shots play gamecube iso on wii usb trucks gone wild carp fishing games free online lexus rx 350 recall bathroom vanity ideas fishing boats for sale in california guitar hero online keyboard guitar center used gear pontiac solstice hardtop convertible wowhead gatherer database wireless router setup with comcast ford edge forum jeeps for sale by owner bathroom sinks modern microsoft bluetooth dongle vista driver hummer accessories in dubai volkswagen jetta tdi 2010 review perfume emporium uk kia forte koup turbo charger gamecube emulator mac os off road tires and wheels packages mazda tribute forum bathroom floor tile size trucks for sale by owner in florida gamecube emulator games playstation 2 emulator bios plugins jackets with fur hoods for men furniture factory outlet nj roses are red violets are blue love poems funny quotes and sayings for facebook dodge charger parts diagram toyota recall gas pedal sticking volkswagen beetle parts bathroom flooring ideas summer glau underwear marriage vows samples snowboard sizing chart by weight honda accord for sale cheap furniture liquidators baton rouge louisiana antique bicycles western flyer pocket tanks deluxe download free subaru legacy 2010 screensavers free downloads for phones rolex daytona gold egyptian love symbols skype video conference 3 way chrysler town and country parts diagram bicycle parts warehouse dvd decrypter windows 7 tattoos for guys helmet decals racing cablevision channel lineup bicycle outlet warehouse nissan cars for sale in sri lanka mitsubishi evo for sale mercedes benz forum singapore how much does siding cost per square foot pizza hut hawaii coupon code playstation support rolex watches price escuchar radio online mexico replica toy guns australia common chrysler pacifica problems volkswagen gti r playstation store redeem codes for psp rpg online games flash marriage statistics 2009 uk jacket size chart women music theory for dummies pdf bathroom designs for small spaces tattoo removal cost hyundai tiburon performance parts mitsubishi outlander 2009 accessories samsung solstice games free mazda parts diagram bridesmaid hairstyles pictures 2009 basketball court dimensions youth background music for video editing fake rolex submariner watch suzuki 50cc atv for sale backgrounds for computer for kids mitsubishi lancer for sale in bangalore 95 saturn sl2 parts pitbull protection kia sorento 2010 interior music theory worksheets note values gamecube emulator mac torrent laptop bags for men famous american artists 19th century mercedes sl amg wheels volkswagen parts people toyota brake recall 2009 opel astra diesel hybrid cameras at walmart canada pool table dimensions wiki designer indian wedding dresses dating sim games anime jeep golden eagle for sale zte modem drivers for windows 7 samsung rogue software for pc rolex watches truck paper classified driver software refacing fireplace pictures snowboard size chart for men desktopx themes toyota forklift parts online roses are red poems skype download for blackberry 8520 subaru outback 2010 accessories free laundromat business jaguar v12 performance parts compaq presario v2000 drivers for windows 7 apartments in atlanta ga based on income guitar pro torrent suzuki sx4 turbo famous sad love poems basketball court dimensions in feet used server racks atlanta kia motors philippines website bathroom remodeling ideas for small bathrooms famous french artists of the 19th century webmail hack software downloads free rolex oyster perpetual datejust xbox 360 oblivion cheats nikon coolpix s220 speed dating questions for men co ed episiode download jeans size chart furniture liquidators chicago il wallpaper borders for kids rooms mazda tribute reviews 2002 laminate flooring installation video motorola h500 samsung rogue verizon forum jewelry supplies wholesale nyc bluetooth software for windows xp sp3 plant cell structure worksheet mercedes benz e class convertible 2010 famous computer crime cases logo creator free download samsung rogue manual download contemporary bathroom lighting ideas free fake diploma software winter jackets for petite women tires plus coupon is samsung solstice wifi mattresses cheap juice plus ingredients dating dress up games for girls mid length hair styles sealed cork floor tiles top 20 wedding ceremony entrance songs porsche 911 forum gmc sierra denali 2010 aluminum siding brakes for sale mazda5 review subwoofer enclosures diy keyboards for macbook pro canon printers troubleshooting download ruby rom mazda 626 parts diagram pontiac g8 gxp review recipes for pork chops underwear for men pouch portfolio lighting fixtures lowes bathroom vanities and cabinets lowes roses are red violets are blue poems for children roses are red violets are blue funny love strelske igre download multiplayer wedding invitations templates free update evolution soccer download free printers for sale at costco dress up celebrities boys and girls samsung solstice apps download clothes over bros dresses program dish tv remote codes snowboard sizing chart for kids xbox 360 elite specs antivirus torrent free microsoft office download full version ford models europe sony vegas download mac best perfumes with pheromones layouts for bikerornot auto loan calculator excel spreadsheet designer wedding dresses games for girls free spanish games pes download subaru tribeca owners forum warcraft 3 cd key samsung dlp tv repair manual jeans size chart boys sven download tattoo cursive lettering quickheal antivirus software swf games snow harley davidson oem parts fiche samsung eternity manual download printer drivers epson r300 ford escape mileage sony ericsson k800i symbols on screen download cd key for cod2 guitar chord linux netbook distro comparison backgrounds for powerpoint microsoft snowboarding gloves with built in wrist guards wireless n gigabit router reviews subaru club volkswagen passat diesel problems bathroom vanities discount toronto juniper credit samsung led tv manual bluetooth headset ps3 pass key garden twist pattern ground turkey recipes food network famous poems about death of a loved one cables unlimited wireless usb adapter kit chevrolet camaro price in india digital cable filter trucks for sale by owner in illinois shirt design template funny marriage quotes and sayings jaguar xj220 for sale compaq presario r3000 drivers download handheld gps comparison guide black hair cuts compaq presario cq60 drivers for vista cadillac srx 2010 commercial song jeeps for sale cigarette rolling machine auto parts warehouse coupon code rock island auction samsung lcd tv models india pizza sauce recipes epicurious summer fashion internships gmc acadia forum samsung eternity software for mac nail art step step cadillac srx commercial song falling samsung pn50b650 plasma tv mitsubishi tv manual download auction sites like ebay dress up celebrities for girls best type of carpeting for stairs


Papervision 3D Controlling Top and Bottom Cylinder Materials

custom-materials-cylinder
While working on a project this morning I came across the need to have a different material applied to a primitive cylinder. After digging through the Cylinder source code I came across these lines

Actionscript:
  1. if (fBottomFace) aFace.push( new Triangle3D(this, [aP1, aP3, aP2], matInstance, [aP1uv, aP3uv, aP2uv]) );
  2.  
  3. //and
  4.  
  5. if (fTopFace) aFace.push( new Triangle3D(this, [aP1, aP2, aP3], matInstance, [aP1uv, aP2uv, aP3uv]));

Since matInstance is just a material it can easily be replaced. I was in a hurry so I decided to just directly modified the class; not the greatest idea but it worked.

Actionscript:
  1. if (j == 0) {
  2.     if(bottomMat)
  3.     {
  4.         if (fBottomFace) aFace.push( new Triangle3D(this, [aP1, aP3, aP2], bottomMat, [aP1uv, aP3uv, aP2uv]) );
  5.     }
  6.     else
  7.     {
  8.         if (fBottomFace) aFace.push( new Triangle3D(this, [aP1, aP3, aP2], matInstance, [aP1uv, aP3uv, aP2uv]) );
  9.     }
  10.    
  11. }
  12. else
  13. {
  14.    
  15.     if(topMat)
  16.     {
  17.         if (fTopFace) aFace.push( new Triangle3D(this, [aP1, aP2, aP3], topMat, [aP1uv, aP2uv, aP3uv]));
  18.    
  19.     }
  20.     else
  21.     {
  22.         if (fTopFace) aFace.push( new Triangle3D(this, [aP1, aP2, aP3], matInstance, [aP1uv, aP2uv, aP3uv]));
  23.     }
  24. }

Here is the new way to create the Cylinder:

Actionscript:
  1. var cyl:Cylinder = new Cylinder(new ColorMaterial(0x000000),200,900,5,20,200,true,true,new ColorMaterial(0x8ad51f),new ColorMaterial(0x00FF00));

Here is the full modified Papervision Cylinder.as class:

Actionscript:
  1. package org.papervision3d.objects.primitives {
  2.     import org.papervision3d.Papervision3D;
  3.     import org.papervision3d.core.geom.*;
  4.     import org.papervision3d.core.geom.renderables.Triangle3D;
  5.     import org.papervision3d.core.geom.renderables.Vertex3D;
  6.     import org.papervision3d.core.math.NumberUV;
  7.     import org.papervision3d.core.proto.*; 
  8.  
  9.     /**
  10.     * The Cylinder class lets you create and display Cylinders.
  11.     * <p/>
  12.     * The Cylinder is divided in vertical and horizontal segment, the smallest combination is two vertical and three horizontal segments.
  13.     */
  14.     public class Cylinder extends TriangleMesh3D
  15.     {
  16.         /**
  17.         * Number of segments horizontally. Defaults to 8.
  18.         */
  19.         public var segmentsW :Number;
  20.    
  21.         /**
  22.         * Number of segments vertically. Defaults to 6.
  23.         */
  24.         public var segmentsH :Number;
  25.    
  26.         /**
  27.         * Default radius of Cylinder if not defined.
  28.         */
  29.         static public const DEFAULT_RADIUS :Number = 100;
  30.    
  31.         /**
  32.         * Default height if not defined.
  33.         */
  34.         static public const DEFAULT_HEIGHT :Number = 100;
  35.    
  36.         /**
  37.         * Default scale of Cylinder texture if not defined.
  38.         */
  39.         static public const DEFAULT_SCALE :Number = 1;
  40.    
  41.         /**
  42.         * Default value of gridX if not defined.
  43.         */
  44.         static public const DEFAULT_SEGMENTSW :Number = 8;
  45.    
  46.         /**
  47.         * Default value of gridY if not defined.
  48.         */
  49.         static public const DEFAULT_SEGMENTSH :Number = 6;
  50.    
  51.         /**
  52.         * Minimum value of gridX.
  53.         */
  54.         static public const MIN_SEGMENTSW :Number = 3;
  55.    
  56.         /**
  57.         * Minimum value of gridY.
  58.         */
  59.         static public const MIN_SEGMENTSH :Number = 1;
  60.    
  61.         public var topFace
  62.         // ___________________________________________________________________________________________________
  63.         //                                                                                               N E W
  64.         // NN  NN EEEEEE WW    WW
  65.         // NNN NN EE     WW WW WW
  66.         // NNNNNN EEEE   WWWWWWWW
  67.         // NN NNN EE     WWW  WWW
  68.         // NN  NN EEEEEE WW    WW
  69.    
  70.         /**
  71.         * Create a new Cylinder object.
  72.         * <p/>
  73.         * @param    material    A MaterialObject3D object that contains the material properties of the object.
  74.         * <p/>
  75.         * @param    radius    [optional] - Desired radius.
  76.         * <p/>
  77.         * @param    segmentsW   [optional] - Number of segments horizontally. Defaults to 8.
  78.         * <p/>
  79.         * @param    segmentsH   [optional] - Number of segments vertically. Defaults to 6.
  80.         * <p/>
  81.         * @param    topRadius   [optional] - An optional parameter for con- or diverging cylinders.
  82.         * <p/>
  83.         * @param    topFace  [optional] - An optional parameter specifying if the top face of the cylinder should be drawn.
  84.         * <p/>
  85.         * @param    bottomFace  [optional] - An optional parameter specifying if the bottom face of the cylinder should be drawn.
  86.         * <p/>
  87.         */
  88.         public function Cylinder( material:MaterialObject3D=null, radius:Number=100, height:Number=100, segmentsW:int=8, segmentsH:int=6, topRadius:Number=-1, topFace:Boolean=true, bottomFace:Boolean=true,topMat:MaterialObject3D = null ,bottomMat:MaterialObject3D = null)
  89.         {
  90.             super( material, new Array(), new Array(), null );
  91.    
  92.             this.segmentsW = Math.max( MIN_SEGMENTSW, segmentsW || DEFAULT_SEGMENTSW); // Defaults to 8
  93.             this.segmentsH = Math.max( MIN_SEGMENTSH, segmentsH || DEFAULT_SEGMENTSH); // Defaults to 6
  94.             if (radius==0) radius = DEFAULT_RADIUS; // Defaults to 100
  95.             if (height==0) height = DEFAULT_HEIGHT; // Defaults to 100
  96.             if (topRadius==-1) topRadius = radius;
  97.    
  98.             var scale :Number = DEFAULT_SCALE;
  99.    
  100.             buildCylinder( radius, height, topRadius, topFace, bottomFace,topMat,bottomMat );
  101.         }
  102.    
  103.         private function buildCylinder( fRadius:Number, fHeight:Number, fTopRadius:Number, fTopFace:Boolean, fBottomFace:Boolean ,topMat:MaterialObject3D,bottomMat:MaterialObject3D):void
  104.         {
  105.             var matInstance:MaterialObject3D = material;
  106.            
  107.             var i:Number, j:Number, k:Number;
  108.    
  109.             var iHor:Number = Math.max(MIN_SEGMENTSW, this.segmentsW);
  110.             var iVer:Number = Math.max(MIN_SEGMENTSH, this.segmentsH);
  111.             var aVertice:Array = this.geometry.vertices;
  112.             var aFace:Array = this.geometry.faces;
  113.             var aVtc:Array = new Array();
  114.             for (j=0;j<(iVer+1);j++) { // vertical
  115.                 var fRad1:Number = Number(j/iVer);
  116.                 var fZ:Number = fHeight*(j/(iVer+0))-fHeight/2;//-fRadius*Math.cos(fRad1*Math.PI);
  117.                 var fRds:Number = fTopRadius+(fRadius-fTopRadius)*(1-j/(iVer));//*Math.sin(fRad1*Math.PI);
  118.                 var aRow:Array = new Array();
  119.                 var oVtx:Vertex3D;
  120.                 for (i=0;i<iHor;i++) { // horizontal
  121.                     var fRad2:Number = Number(2*i/iHor);
  122.                     var fX:Number = fRds*Math.sin(fRad2*Math.PI);
  123.                     var fY:Number = fRds*Math.cos(fRad2*Math.PI);
  124.                     //if (!((j==0||j==iVer)&&i>0)) { // top||bottom = 1 vertex
  125.                     oVtx = new Vertex3D(fY,fZ,fX);
  126.                     aVertice.push(oVtx);
  127.                     //}
  128.                     aRow.push(oVtx);
  129.                 }
  130.                 aVtc.push(aRow);
  131.             }
  132.             var iVerNum:int = aVtc.length;
  133.    
  134.             var aP4uv:NumberUV, aP1uv:NumberUV, aP2uv:NumberUV, aP3uv:NumberUV;
  135.             var aP1:Vertex3D, aP2:Vertex3D, aP3:Vertex3D, aP4:Vertex3D;
  136.    
  137.             for (j=0;j<iVerNum;j++) {
  138.                 var iHorNum:int = aVtc[j].length;
  139.                 for (i=0;i<iHorNum;i++) {
  140.                     if (j>0&&i>=0) {
  141.                         // select vertices
  142.                         var bEnd:Boolean = i==(iHorNum-0);
  143.                         aP1 = aVtc[j][bEnd?0:i];
  144.                         aP2 = aVtc[j][(i==0?iHorNum:i)-1];
  145.                         aP3 = aVtc[j-1][(i==0?iHorNum:i)-1];
  146.                         aP4 = aVtc[j-1][bEnd?0:i];
  147.                         // uv
  148.                         var fJ0:Number = j    / iVerNum;
  149.                         var fJ1:Number = (j-1)  / iVerNum;
  150.                         var fI0:Number = (i+1)  / iHorNum;
  151.                         var fI1:Number = i    / iHorNum;
  152.                         aP4uv = new NumberUV(fI0,fJ1);
  153.                         aP1uv = new NumberUV(fI0,fJ0);
  154.                         aP2uv = new NumberUV(fI1,fJ0);
  155.                         aP3uv = new NumberUV(fI1,fJ1);
  156.                         // 2 faces
  157.                         aFace.push( new Triangle3D(this, [aP1,aP2,aP3], matInstance, [aP1uv,aP2uv,aP3uv]) );
  158.                         aFace.push( new Triangle3D(this, [aP1,aP3,aP4], matInstance, [aP1uv,aP3uv,aP4uv]) );
  159.                     }
  160.                 }
  161.                 if (j==0||j==(iVerNum-1)) {
  162.                     for (i=0;i<(iHorNum-2);i++) {
  163.                         // uv
  164.                         var iI:int = Math.floor(i/2);
  165.                         aP1 = aVtc[j][iI];
  166.                         aP2 = (i%2==0)? (aVtc[j][iHorNum-2-iI]) : (aVtc[j][iI+1]);
  167.                         aP3 = (i%2==0)? (aVtc[j][iHorNum-1-iI]) : (aVtc[j][iHorNum-2-iI]);
  168.    
  169.                         var bTop:Boolean = j==0;
  170.                         aP1uv = new NumberUV( (bTop?1:0)+(bTop?-1:1)*(aP1.x/fRadius/2+.5), aP1.z/fRadius/2+.5 );
  171.                         aP2uv = new NumberUV( (bTop?1:0)+(bTop?-1:1)*(aP2.x/fRadius/2+.5), aP2.z/fRadius/2+.5 );
  172.                         aP3uv = new NumberUV( (bTop?1:0)+(bTop?-1:1)*(aP3.x/fRadius/2+.5), aP3.z/fRadius/2+.5 );
  173.    
  174.                         // face
  175.                         if (j == 0) {
  176.                             if(bottomMat)
  177.                             {
  178.                                 if (fBottomFace) aFace.push( new Triangle3D(this, [aP1, aP3, aP2], bottomMat, [aP1uv, aP3uv, aP2uv]) );
  179.                             }
  180.                             else
  181.                             {
  182.                                 if (fBottomFace) aFace.push( new Triangle3D(this, [aP1, aP3, aP2], matInstance, [aP1uv, aP3uv, aP2uv]) );
  183.                             }
  184.                            
  185.                         }
  186.                         else {
  187.                            
  188.                             if(topMat)
  189.                             {
  190.                                 if (fTopFace) aFace.push( new Triangle3D(this, [aP1, aP2, aP3], topMat, [aP1uv, aP2uv, aP3uv]));
  191.                            
  192.                             }
  193.                             else
  194.                             {
  195.                                 if (fTopFace) aFace.push( new Triangle3D(this, [aP1, aP2, aP3], matInstance, [aP1uv, aP2uv, aP3uv]));
  196.                             }
  197.                            
  198.                            
  199.                         }
  200.                     }
  201.                 }
  202.             }
  203.             this.geometry.ready = true;
  204.            
  205.             if(Papervision3D.useRIGHTHANDED)
  206.                 this.geometry.flipFaces();
  207.         }
  208.     }
  209. }

Post to Twitter Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to StumbleUpon Stumble This Post

1 Responses to “Papervision 3D Controlling Top and Bottom Cylinder Materials”


Leave a Reply


Follow papervision2 on Twitter

Flash and the City banner
2010 Flash And The City Speaker

RSS Feed