================
TKE_PolyCylinder
================

Opcode
======

.. csv-table::

	"ASCII", "Q"
	"Hexadecimal", "51"
	"Decimal", "81"


Operands
========

| Long count, (count)xPoint points,
| Long radius_count, (radius_count)xFloat radii,
| Byte flags,
| [(3)xFloat start_orientation], [(3)xFloat end_orientation],
| [Variable attributes] 

.. csv-table::

	"count", "number of points defining the polycylinder axis"
	"points", "``count`` triplets of x, y, z data"
	"radius_count", "number of radii associated with the points"
	"radii", "``radius_count`` floats"
	"flags", "a bitmask indicating options for the cylinder"
	"start_orientation", "vector describing the direction of the polycylinder at the start point. Present if the appropriate ``flags`` bit is set."
	"end_orientation", "Vector describing the direction of the polycylinder at the start point. Present if the appropriate ``flags`` bit is set."
	"attributes", "Colors specified at the vertices of the polycylinder. Present if the appropriate ``flags`` bit is set. See :doc:`attributes.html </general/hsf/opcodes/attributes>`. Note: Only options ``OPT_ALL_VFCOLORS``, ``OPT_VERTEX_FCOLORS``, ``OPT_ALL_VECOLORS``, and ``OPT_VERTEX_ECOLORS`` are relevant."


Notes
=====

A PolyCylinder is a series of cylindrical (or conical) pieces connected in series to resemble pipes or ducts.

Options settings for the polycylinder are as follows.


Flags
-----

.. csv-table::

	"0x01", "Capping disk at the start point is visible"
	"0x02", "Capping disk at the end point is visible"
	"0x04", "Orientation normal for the start point is specified"
	"0x08", "Orientation normal for at the end point is specified"
	"0x10", "Attributes (vertex colors) are specified"
	
PolyCylinders are meant to be rendered according to the resolution set in ``TKE_Rendering_Options``.

If ``radius_count`` is less then ``count``, the ``radii`` should be repeated as needed to pair up a radius with each point.

PolyCylinder support was added in HSF format 7.05. End orientations and vertex colors were added in 8.05.
