private void Render()
        {
            if (m_segmentSpawner == null)
            {
                return;
            }

            agxCable.Cable native = Cable.Native;
            if (native == null)
            {
                if (m_segmentSpawner != null)
                {
                    m_segmentSpawner.Destroy();
                    m_segmentSpawner = null;
                }
                return;
            }

            m_segmentSpawner.Begin();
            try {
                agxCable.CableIterator it    = native.begin();
                agxCable.CableIterator endIt = native.end();
                float radius = Cable.Radius;
                while (!it.EqualWith(endIt))
                {
                    m_segmentSpawner.CreateSegment(it.getBeginPosition().ToHandedVector3(), it.getEndPosition().ToHandedVector3(), radius);
                    it.inc();
                }
            }
            catch (System.Exception e) {
                Debug.LogException(e, this);
            }
            m_segmentSpawner.End();
        }