This section documents special calculation modi of ShellyLib.
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 exactly capture the shape of 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, a special nodule calculation mode has
been introduced. 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 steep regions
of 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.
Thus, the height difference value is depending on 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 again, 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.x 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 list 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 note, "smin"
, "smax"
and "sd"
have no influence
on the shell shape in "GenCurve" mode, the generation curve completely
takes over these parameters!
Nodules are possible within this mode, but the result depends highly on the number of points of the generation curve.
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 example data files in the
"shy"
directory 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"
.
Switch to this calculation mode with the "GCURVE"
keyword.