the lathe class gives you control of the resolution like the cube primitive but doing by hand would not help for the resolution. in this case it is set to 4. try pass 1...
so indeed building a dedicated primitive would be another option.

I would not extend cube here so... I simply would make new class
in case your of course want resolution on top as well. but in this case, you end up with same result as with Lathe.

actually, if you have lots of these, the lower poly you use to display one is better but if for some clipping reasons or if the map needs to be blowed up, you better off having slightly more resolution. so having this option is a great help to find a balance once your scenery is known/builded.

Fabrice


On Nov 25, 2009, at 3:59 PM, davivid wrote:

sweet, hadn't seen the lathe class - that will come in handy, thanks
fabrice!  However it seems to generate a lot more vertices than are
needed(48 compared to 9), some with many decimal places -  that will
cause a little performance hit no?

Ideally like you suggest Jensa I will need to make a class to generate
these objects. I will be dynamically generating a LOT of these,
amongst some others. Initially passing in some simple
parameters...width,h,d,pointheight,mat,x,y etc. Any tips would be
welcomed! would I go about extending the cube class, and performing
some sort of operation like I did above?

On Nov 25, 1:56 pm, Fabrice3D <[email protected]> wrote:
Well done! That's one way to do it, say the hard way.
So now, you know how to freak around with faces!

Now let me piss you off a bit with the other (easy) way I did'nt
mention in previous mail.
To do this particular shape,  simply use the Lathe class like this:

var easyway:Lathe = new Lathe([new Number3D(0,-100,0),new
Number3D(-100,-100,0) new Number3D(-100,100,0), new
Number3D(0,100,0)], {flip:true, recenter:false, subdivision:4,
material:mat});

done!  :))

Fabrice

On Nov 25, 2009, at 1:33 PM, davivid wrote:

cheers Fabrice,

just what I needed to get me going. I've got it working, and seems to
be fine - although im quite sure my method of trial and error is not
the best way... Once I found the top faces, I noted them, and deleted
them. I then created the new 4 faces based on the old two, and went
through each of the new faces changing the vertices until everything
lined up. Next I cycled through the vertices of the cube, and slotted
these into my new faces where they matched.

I'm now wondering if there is likely to be any issues with the way I
have done it? as Im after as much performance as possible. Or is there
a better way of doing this? thanks.

pointedCube = new Cube( { width:200, height:200, depth:200 } );
view.scene.addChild(pointedCube);

pointedCube.removeFace(pointedCube.faces[8]);
pointedCube.removeFace(pointedCube.faces[8]); //originally face 9

var pointheight:Vertex = new Vertex(0, pointedCube.height, 0); //
Vertex for Point

var one:Face = new Face(pointedCube.vertices[2], pointedCube.vertices
[6], pointheight,new ColorMaterial(0xff0000));
var two:Face = new Face(pointedCube.vertices[0], pointheight,
pointedCube.vertices[5],new ColorMaterial(0x00ff00));
var three:Face = new Face(pointedCube.vertices[2], pointheight,
pointedCube.vertices[0],new ColorMaterial(0x0000ff));
var four:Face = new Face(pointheight, pointedCube.vertices[6],
pointedCube.vertices[5],new ColorMaterial(0xccff00));

pointedCube.addFace(one);
pointedCube.addFace(two);
pointedCube.addFace(three);
pointedCube.addFace(four);

On Nov 25, 11:30 am, Fabrice3D <[email protected]> wrote:
sure, just insolate the two faces on top
note the four vertexes, delete the faces
and add four new faces.

Fabrice

On Nov 25, 2009, at 11:18 AM, davivid wrote:

Is it possible to modify the cube primitive in such a way that an
extra vertex is added to the centre of say the top the face, and
moved
up to created a pointed/pyramid effect?

like this:
http://away3d-dev.googlegroups.com/web/pointedcube.jpg

thanks.

Reply via email to