extrude and revolve

sorry for my english
where do i found a simple example about revolve extrusion
and edge surf, “a la autocad” because i try to make a little
modeleur i don’t know how do i can make this ?
and a last question i need to create an objet selection
what are a best method (i think bsp tree) but how do i organize
my data base ?



This is quite simple, but I don’t know of a simple example of it.

What you do is take the base polygon and compute the surface normal, which is the CROSS PRODUCT of two dege vectors (probably normalized too), the vertex winding will determine the direction of the normal but just flip it if your winding conventions (face culling) are opposite. The next things to do are construct the walls and translate the base face. This is accomplished by translating along the surface normal by some user specified multiple of the surface normal. i.e. multiply the normal by some factor and add the result to each vertex. This should give you a new set of vertices extruded from the old. Use these to create a new polygon and the walls. It’s really trivial to create the translated surface. The wall faces are almost as easy. For the walls just interleave the base vertices with the extruded ones repeating the first pair at the end. You may want to use a tristrip or quad strip depending on shading requirements. If you want gouraud shaded flat looking walls (for example if you have local light sources) then you may want to split the walls up into multiple primitives.

A final note, you may want to reverse the winding of the original base or delete it as part of the extrusion process.

minor typo, I wrote “dege vectors” instead of “edge vectors”.

This is very interesting. For extrude and revolve, you can create your own functions.
For revolve, you compute the vertices by rotating the section vertices in 3D space, in small angles, from 0 to upper angle limit.
For more complex operations you can use a 3D kernel. There are many 3D kernels available like parasolid and ACIS.
About the BSP tree, I also would like to understand how it works.