Hey Frabrice, I updated from the svn, but unless I'm doing something wrong it's still not quite fixed. If you do a scale from a (0,0,0) point then scales can't affect the position. Here's a quick example I made to try and highlight the issue better:
http://sibhod.com/away3d/scalesTest.swf These are two identical pathExtrudes, except the y positions are inverted. The top extrude is constructed with 'null' for the scales arg, and the bottom extrude has a scales array graduating from (2, 2, 2) to (1, 1, 1). This isn't how it's supposed to work, right? Thanks! On Jan 29, 11:00 am, sibhod <[email protected]> wrote: > Thanks for the quick response! I'll update my files. > > On Jan 29, 8:54 am, Fabrice <[email protected]> wrote: > > > Hey sibhod, > > thanks for pointing out that one. > > was little but nasty. > > >http://www.closier.nl/playground/PathExtrude_scalefix.swf > > > this is the test code I've quickly typed to make that fixe > > > var aPoints = []; > > //square > > > aPoints.push(new Number3D(-100, 100, 0)); > > aPoints.push(new Number3D(0, 100, 0)); > > aPoints.push(new Number3D(100, 100, 0)); > > aPoints.push(new Number3D(100, 0, 0)); > > aPoints.push(new Number3D(100, -100, 0)); > > aPoints.push(new Number3D(0, -100, 0)); > > aPoints.push(new Number3D(-100, -100, 0)); > > aPoints.push(new Number3D(-100, 0, 0)); > > aPoints.push(new Number3D(-100, 100, 0)); > > > var aPath:Array = [ new Number3D(-500, 0, 0), new > > Number3D(-250, 0, > > 0), new Number3D(0, 0, 0)]; > > > var path:Path = new Path(aPath); > > > var aScale = []; > > aScale.push(new Number3D(1, 1, 1)); > > aScale.push(new Number3D(1, 1, 3)); > > > pathextrude= new PathExtrude(path, aPoints, aScale, > > null, > > {smoothscale:true, flip:false, aligntopath:true, coverall:true, > > scaling:6, closepath:false, recenter:false, material:mat, subdivision: > > 10, bothsides:false}); > > > this.scene.addChild(pathextrude); > > > displays now exactly as expected. > > > svn is updated > > > Fabrice > > > On Jan 29, 2009, at 7:12 AM, sibhod wrote: > > > > I updated to the latest svn trunk, and tried many different methods, > > > but the "scales" prop on PathExtrude still doesn't work the way I > > > expect it. > > > > For example, if I have a simple square profile extruded on a one- > > > segment path that runs from (100, 100, 100) to (-100, -100, -100) it > > > appears like a diagonal rectangular box. The problems appear when I > > > attempt to usescales, with or without smoothscale. If I want the box > > > to taper as it extrudes, I pass ascalesparam: new Array(new Number3D > > > (1,1,1), new Number3D(3, 3, 3)). Not only does the profile scale, but > > > the v1 point is now well beyond (-100, -100, -100), and appears to be > > > multiplied by the scale as well. > > > > Also, the extrude seems to add an extra segment to the profile that > > > returns to the last point in the extrude path, unscaled. I've found a > > > cheap work-around where my path generator divides each segment > > > position by its scale, but I wanted to see if I am doing something > > > wrong. > > > > Thanks again! > > > > On Jan 26, 7:46 pm, sibhod <[email protected]> wrote: > > >> I haven't had a chance to try out your suggestions, but I wanted to > > >> that you so much for your help! I'll be sure to post my results > > >> when I > > >> finally have some. > > > >> On Jan 15, 5:33 pm, Fabrice <[email protected]> wrote: > > > >>> ThepathExtrudedo not change the points coordinates except if you > > >>> pass aligntopath:true > > >>> the scale works per Curvesegments, and a scale Number3D is required > > >>> for that segment. > > >>> you just pass a series of Number3D's in an array and they will > > >>> affect > > >>> the whole segment. Smoothscale prop will define if its interpolating > > >>> the scale influence > > >>> or apply same value from start to end of the segment. the last past > > >>> Number3D will be used until the code reaches the last point. > > >>> Look at the second example here > > > >>>http://www.closier.nl/blog/?p=73 > > > >>> You also need to use the lastest, some updates were done, where > > >>> indeed > > >>> last points were not taken in account. > > >>> especially when you use the smoothPath() to the path you pass to the > > >>> class. I will check if indeed the problem is remaining in case of > > >>> scale. > > > >>> Note that there are some more changes done during past 2 days. > > > >>> theextrudesupports now > > >>> multiple textures > > >>> mapping per step/entire extrusion remains unchanged. But you can now > > >>> in case of mulitple texture texture per segment. > > > >>> the default mapping is also changed, where the points were evenly > > >>> distributed on the texture, making very difficult to update > > >>> the geometry profile without ruining the texture, you have now by > > >>> default a projection that is applied based on percent/distance. > > >>> so what is left is your left point, what is right on the texture the > > >>> right point as in the other mode "_mapfit:false", but now the uv's > > >>> are > > >>> set respecting the distance between both. > > > >>> smoothpath and average path are fixed in Path class, but are under > > >>> "rebuild" in thepathextrude, (its in comments) > > >>> and should be back online in few days. > > > >>> A few other details were improved/corrected as well. > > > >>> Fabrice > > > >>> On Jan 16, 2009, at 12:05 AM, sibhod wrote: > > > >>>> I've been doing some tests withPathExtrude, and I've noticed > > >>>> something odd with using thescalesprop. It appears that the scale > > >>>> value not onlyscalesthe projected points, but also the > > >>>> coordinates > > >>>> for that point. > > > >>>> For example if Iextrudea square along a circle path, I get a donut. > > >>>> When I try changing thescalesvalue it changes both the > > >>>> thickness of > > >>>> the donut, and their distance from the center of the donut. Also, > > >>>> the > > >>>> last point in the path doesn't seem to be affected by scale, > > >>>> neither > > >>>> path or position. > > > >>>> Am I using theextrudewrong? Is this how scaling is supposed to > > >>>> work?
