Valid XHTML 1.0!

Volcano Generator (Overlapping)

Testing. Experimental. Note that the brushes generated here will NOT perfectly align with brushes generated by the normal Volcano Generator. However it will be a very close match. The seams will align perfectly.

topCircumferenceRadius: The radius of the circumference at the top of the volcano. You probably want to make this value significantly greater than zero.
slopeRadius: The radius of the upward slope of the volcano.
slicesCircumference: How many slices to chop the quarter circumference of the volcano into. The total number of triangular surfaces making up this volcano will be 2 * slicesCircumference * slicesSlope.
slicesSlope: How many slices to chop the vertical slope of the volcano into. The total number of triangular surfaces making up this volcano will be 2 * slicesCircumference * slicesSlope.
crossSection: The distance from the top of the volcano to the bottom of the brushes extending downwards from the volcano.
offsetTopInsteadOfBottom: Alters the pattern of the mesh by flipping the even-odd rule in which vertices get rotated by half a slice along the circumference. This is useful when joining other offset objects to the circumference of the volcano, such as offset cylinders or funnels.
extrudeTopNSlices: If this is greater than zero and if extrudeRadiusFactor is greater than one, the topmost extrudeTopNSlices vertices of the volcano will be pushed back so that the top of the volcano is no longer vertical. It "relaxes" the top of the volcano to have a less steep slope.
extrudeRadiusFactor: Used together with extrudeTopNSlices. This value should be greater than one and extrudeTopNSlices should be greater than zero to make the top of the volcano less steep. It is possible to use values slightly less than one here to generate an "oversteep" top, but if used improperly, poor results will be generated, or [possibly] nothing will be generated at all. A value of 1.0 corresponds to a normal volcano with perfectly vertical top. Otherwise, the top vertices are generated based on a radius of slopeRadius * extrudeRadiusFactor. You can use this tool for calculating extrudeRadiusFactor.
adjustForOverlappingPipeCuts: In the case where pipe brushes are joined at the seam of this volcano, set this flag whenever the pipe brushes are generated with adjustForOverlappingPipeCuts also.
adjustForOverlappingBowlCuts: Use this when joining other structures that have this flag set.
invertSlopeVertices: The original vertices that make up the slope of the volcano are flipped after all of the adjust and/or extrude flags are applied; the vertex at the rim of the volcano becomes the vertex at the bottom and vice-versa. So, for example, if we are extruding vertices and using this flag together, the bottom of the volcano will no longer be horizontal.
generateOnlySeam: Generates only the seam brushes.
adjustSeamForJoining: Perturb the vertices of the seam brushes so that other structures such as pipes can be joined perfectly to this quarter volcano.
cutTop: Automatically cuts the volcano at the top to make a flat top. The brushes at the top are constructed so that they don't extend beyond the top. You can only be sure that no brushes extend beyond the top if adjustForOverlappingPipeCuts is true. (I also think that if you set invertSlopeVertices, you cannot guarantee that no brush will extend beyond the top.)
cutBottom: The brushes at the bottom are cut. I believe that chances are pretty good that some 2nd-level brushes will happen to extend just a tad beyond.