//Does not check geometry type. Used to copy Polygon to Polyline
        internal virtual void _copyToUnsafe(com.epl.geometry.MultiVertexGeometryImpl dst)
        {
            _verifyAllStreams();
            dst.m_description      = m_description;
            dst.m_vertexAttributes = null;
            int nattrib = m_description.GetAttributeCount();

            com.epl.geometry.AttributeStreamBase[] cloneAttributes = null;
            if (m_vertexAttributes != null)
            {
                cloneAttributes = new com.epl.geometry.AttributeStreamBase[nattrib];
                for (int i = 0; i < nattrib; i++)
                {
                    if (m_vertexAttributes[i] != null)
                    {
                        int ncomps = com.epl.geometry.VertexDescription.GetComponentCount(m_description._getSemanticsImpl(i));
                        cloneAttributes[i] = m_vertexAttributes[i].RestrictedClone(GetPointCount() * ncomps);
                    }
                }
            }
            if (m_envelope != null)
            {
                dst.m_envelope = (com.epl.geometry.Envelope)m_envelope.CreateInstance();
                m_envelope.CopyTo(dst.m_envelope);
            }
            else
            {
                // dst.m_envelope = (Envelope) m_envelope.clone();
                dst.m_envelope = null;
            }
            dst.m_pointCount       = m_pointCount;
            dst.m_flagsMask        = m_flagsMask;
            dst.m_vertexAttributes = cloneAttributes;
            try
            {
                _copyToImpl(dst);
            }
            catch (System.Exception ex)
            {
                // copy child props
                dst.SetEmpty();
                throw new System.Exception("", ex);
            }
        }