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:
>>