Previous Next Table of Contents

8. Calculation Modi

8.1 The Nodule mode

The parameters "od" and "sd" determine the resolution of the generated shell. But if the shell contains nodules that are thin and long you would have to use very small "od" and "sd" values in order to shape the nodules. This would lead to a real waste of memory, because between the nodules the high resolution is not necessary. To minimize memory complexity, the special nodule calculation mode has been written. This mode adapts both "od" and "sd" while calculating the shell, so that small distances between the calculated points are only used when needed, in the nodules. This process may be controlled with the parameters "Scano", "Scans", "Hdo" and "Hds". "Scano" determines the smallest possible distance of two points in O direction, the same does "Scans" for the S direction. "Hdo" defines the smallest possible difference in height between two points in O direction, the same does "Hds" for the S direction. The difference in height is being calculated using the height of the nodule. The nodule mode may be invoked by the "NODULE" keyword.

"Hdo" and "Hds" are multiplied by the nodule height of the first nodule group, before they are passed to "libshelly", when using the example frontends. The height difference value is now dependant from the nodule height. It is now easier to estimate the effect of a certain value, e.g. 0.1 means a tenth of the nodule height, no matter how high the nodule actually is. Note, that this multiplication is not done by "libshelly".

Unfortunately, the result of this mode is of irregular structure. This means the only possible output type is triangles. No spline output, neither B-spline nor Bezier patches, may be generated using this mode.

8.2 The GenCurve mode

General Information

The original algorithm of M.B. Cortie is limited to ellipsoid generation curves. ShellyLibV2.0 allows the user to define any generation curve, using the "GenCurve" mode. This is useful for Cones or the "Miraculous Thatcheria", which were impossible to generate with the old algorithm.

The curve needs to be specified as a sequential number of points with the "GCx:" and "GCy:" keywords. The parameters "a" and "b" still scale the curve as they do it in the other modes with the ellipse, and "A" moves the curve. However, "smin","smax" and "sd" are out of function! The same applies for all nodule parameters. Nodules are not possible within this mode.

Note, that the resolution of the shell depends directly on the list of points. The spaces between the points are not interpolated. The curves provided in the "shy/gcurves" subdirectory are meant to be used with spline output formats like "RPL" or "RIB", because the curves contain only few points. Note that not every output format is possible within this mode at present. You may use: "RPL", "RIB", "BEZ", "SCB".

You should switch from the default Catmull-Rom basis to the B-Spline basis, when using "RIB" output.

Switch to this calculation mode with the "GCURVE" keyword.

Creating Generation Curves

Generation curves might be created with the following steps:

The number of points you provide will be the number of points calculated per generation curve and determine the resolution of the shell in the S direction. Unless you really have a lot of points in the generation curve, you should not try to generate triangle-based output!


Previous Next Table of Contents