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.
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.
Generation curves might be created with the following steps:
"GCx:"
, "GCy:"
tupel (by hand),
starting at the origin (or the nearest point).
Proceed in clockwise direction. If you want the shape to start/end at the
first/last point, it could be handy to double the first/last tupel.
For a closed shape, end with the first tupel(s).