Drawing a collection of variable length fixed radius cylinders

I want to draw a collection of variable length fixed radius fixed color cylinders, and I want to be able to pick them. I’ve been trying to do it via glyphs, but each glyph object type I’ve tried fails in a different way. Does anyone have any suggestions for how to achieve this efficiently, i.e. without creating a separate actor for each cylinder?

Is it possible to have a vtkGlyph3D where the orientation and scaling (by vector components) of each glyph is set arbitrarily? I understand how to associate one scalar and one vector with each point, but as far as I can tell I need two - one for the orientation, one for the scaling. I see examples for color + orientation, for example, but those all seem to use one scalar and one vector.

I can achieve what I want graphically with vtkTensorGlyph (because the orientation and the scaling are in the same coordinate system), but then I can’t figure out how to pick glyphs. With vtkGlyph3D There’s GetPointIds, but not, as far as I can tell, with vtkTensorGlyph.

Answering my own question (should this be an edit?), it looks like vtkGlyph3DMapper can do what I need, at least in terms of the graphical output, since it easily lets you set separate vector arrays for orientation and scale by name. I haven’t quite figured out picking, but I’ll follow up if/when I do.

Never did get picking to work with vtkGlyph3DMapper. Switched to vtkProgrmmableGlyphFilter, and that’s acceptable for now (except for an inability to set color directly, not through a lookup table).