@Override
  public void copyTo(Geometry dst) {
    if (dst.getType() != Type.Point) throw new IllegalArgumentException();

    Point pointDst = (Point) dst;
    dst._touch();

    if (m_attributes == null) {
      pointDst.setEmpty();
      pointDst.m_attributes = null;
      pointDst.assignVertexDescription(m_description);
    } else {
      pointDst.assignVertexDescription(m_description);
      pointDst.resizeAttributes(m_description._getTotalComponents());
      attributeCopy(m_attributes, pointDst.m_attributes, m_description._getTotalComponents());
    }
  }