if its a static class you do not even need a constructor unless you define some 
vars in there.
the trace(model complete) will never show.
you do not need the flash display import and could check if wmaterial make it . 
(re)use it
Profile could be also as const if allways the same and can be hardcoded or you 
could make a non static class
and in your main code say this.rc:RoundCube = new RoundCube(myProfile)
further down simply use same code, like myroundedcube = rc.drawRoundTube(val, 
val, val)

if you make roundedcubes for a living, you could consider a setter object for 
all properties of the Lathe instead of passing them.
this way you could reuse this class if your client like roundedcubes with 
variable radius with a pink color :)
or simply use the Lathe class directly and do all this in a simple function...

Fabrice



On Apr 1, 2011, at 4:34 PM, Melanikus wrote:

> Ahah,  I think I have it sorted now.  Your idea about a static class
> put me on the right track.
> 
> It needs a little tweaking to get right, but here is my code:
> 
> [code]
> package {
>       import flash.display.*;
>       import flash.geom.Vector3D;
> 
>       import away3d.arcane;
>       import away3d.extrusions.*;
>       import away3d.materials.*;
>       import away3d.core.utils.*;
>       import away3d.core.base.*;
> 
>       public class RoundTube {
> 
>               public function RoundTube():void {
>                       //super();
>               }
> 
>               //draw round tube
>               public static function drawRoundTube(radius:Number,
> thickness:Number, depth:Number):Mesh {
>                       var profile:Array = [
>                               new Vector3D(-radius, depth, 0),
>                               new Vector3D(-radius, 0, 0)
>                       ];
> 
>                       var roundTube:LatheExtrusion = new 
> LatheExtrusion(profile);
>                       roundTube.subdivision = 18;
>                       roundTube.thickness = thickness;
>                       roundTube.centerMesh = false;
>                       roundTube.revolutions = 1;
>                       roundTube.bothsides = false;
> 
>                       //flips the model over
>                       roundTube.rotationX = -90;
> 
>                       var wMaterial:WireColorMaterial = new 
> WireColorMaterial(0x373737);
>                       wMaterial.wireColor = 0x373737;
>                       roundTube.material = wMaterial;
> 
>                       return(roundTube);
> 
>                       trace("model complete");
> 
>               }
> 
> 
>       }
> }
> [/code]
> 
> Thanks for your help.
> 
> 
> 
> On Apr 1, 3:28 pm, Melanikus <[email protected]> wrote:
>> Hiya,
>> 
>> What you describe is probably exacly what I need to do.  This is
>> mostly my inexperience with AS3 showing. I am just having a problem
>> making the class return the LatheExtrusion as a Mesh that I can then
>> pick up on and display.
>> 
>> I just need a Class that I can use to generate a LatheExtrusion
>> multiple times.
>> 
>> var model01:RoundTube = new RoundTube(10, 2, 300);
>> var model02:RoundTube = new RoundTube(10, 5, 150);
>> var model03:RoundTube = new RoundTube(14, 2, 60);
>> 
>> I'll continue to slog on.  I have a few more things I can try.  I'll
>> let you know if I get anywhere.
>> 
>> Thanks.
>> 
>> On Apr 1, 2:29 pm, Fabrice3D <[email protected]> wrote:
>> 
>>> why don't you explain what you want to do exactly.
>>> this class extends Object3D and has a mesh generator build a mesh, which is 
>>> already extending Object3D...
>> 
>>> simply make a static class that returns you an instance LatheExtrusion as 
>>> Mesh
>> 
>>> in your main code simply import this class
>>> and say
>> 
>>> var myTube:Mesh = MagicTubeMaker.pleaseDoYourThing(depth, thickness, etc);
>> 
>>> On Apr 1, 2011, at 3:11 PM, Melanikus wrote:
>> 

Reply via email to