source files: xhsy.[ch] xgrl.[ch]
(XG.3D-INSERT-HERSHEY-SYMBOL :THING <thing> :SYMBOL <fix:symbol-index> [ :X <fix:x> ] [ :Y <fix:y> ] [ :Z <fix:z> ] [ :SCALE <flo:scale > ] [ :SCALE-X <flo:scalex> ] [ :SCALE-Y <flo:scaley> ] [ :SCALE-Z <flo:scalez> ] [ :TRANSFORM <xtfm> ] [ :UPDATE-CURSOR NIL ] )
This call accepts :SYMBOL, a Hershey symbol index and converts it into a set of vectors in a line-segment thing.
The <thing> must be a thing in the :DRAW <xcmr> sense, containing a <point-grl> and <facet-grl>.
<point-grl> contains the :point-x/y/z float-arrays to hold the points of the string.
<facet-grl> contains :facet-0, and :facet-1 arrays defining line segments.
<symbol-index> is an integer in the range [0..1593] specifying the Hershey symbol to insert.
The Hershey symbol set includes obscurities ranging from ligatures to highway signs, most of them inaccessable through XG.3D-INSERT-HERSHEY-STRING. For routine text insertion, however, XG.3D-INSERT-HERSHEY-STRING is much more convenient.
As with XG.3D-INSERT-HERSHEY-STRING, the :X/:Y/:Z parameters may be used to position the symbol, and :SCALE may be used to scale it.
If :TRANSFORM is supplied, it must be an instance of CLASS-MATRIX44, and will be used to transform the symbol exactly as if by XG.3D-TRANSFORM-THING.
If :UPDATE-CURSOR is supplied, it controls whether an internal cursor position should be updated. Letting it default to t results in successive calls appending text in visually sensible fashion. Setting it to NIL results in successive calls writing text at the same address -- which may be what you want if you clearing the relation between each call and inserting updated text.