PointCloud
==========

.. py:module:: rhino3dm

.. py:class:: PointCloud

   .. py:method:: PointCloud()

      PointCloud constructor


   .. py:method:: PointCloud()

      PointCloud constructor


   .. py:attribute:: Count

      int: Gets the number of points in this point cloud.

   .. py:attribute:: HiddenPointCount

      int: Gets the number of points that have their Hidden flag set.

   .. py:attribute:: ContainsColors

      bool: Gets a value indicating whether or not the points in this
      point cloud have colors assigned to them.

   .. py:attribute:: ContainsNormals

      bool: Gets a value indicating whether or not the points in this
      point cloud have normals assigned to them.

   .. py:attribute:: ContainsValues


   .. py:attribute:: ContainsHiddenFlags

      bool: Gets a value indicating whether or not the points in this
      point cloud have hidden flags assigned to them.

   .. py:method:: __len__()

      [todo] add documentation

   .. py:method:: __getitem__()

      [todo] add documentation

   .. py:method:: ClearColors()

      Destroys the color information in this point cloud.


      :rtype: void

   .. py:method:: ClearNormals()

      Destroys the normal vector information in this point cloud.


      :rtype: void

   .. py:method:: ClearHiddenFlags()

      Destroys the hidden flag information in this point cloud.


      :rtype: void

   .. py:method:: AppendNew()

      Appends a new PointCloudItem to the end of this point cloud.

      :return: The newly appended item.

      :rtype: PointCloudItem

   .. py:method:: InsertNew(index)

      Inserts a new  at a specific position of the point cloud.

      :param int index: Index of new item.

      :return: The newly inserted item.

      :rtype: PointCloudItem

   .. py:method:: Merge(other)

      Merges, or appends, a specified point cloud into this one.

      :param PointCloud other: PointCloud to merge with this one.


      :rtype: void

   .. py:method:: Add(point)

      Append a new point to the end of the list.

      :param rhino3dm.Point3d point: Point to append.


      :rtype: void

   .. py:method:: Add(point, normal)

      Append a new point to the end of the list.


      :rtype: void

   .. py:method:: Add(point, color)

      Append a new point to the end of the list.


      :rtype: void

   .. py:method:: Add(point, normal, color)

      Append a new point to the end of the list.


      :rtype: void

   .. py:method:: Add(point, value)

      Append a new point to the end of the list.


      :rtype: void

   .. py:method:: Add(point, normal, normal, value)

      Append a new point to the end of the list.


      :rtype: void

   .. py:method:: AddRange(points)

      Appends a collection of points to this point cloud.

      :param list[rhino3dm.Point3d] points: Points to append.


      :rtype: void

   .. py:method:: AddRange(points, normals)

      Appends a collection of points to this point cloud.


      :rtype: void

   .. py:method:: AddRange(points, colors)

      Appends a collection of points to this point cloud.


      :rtype: void

   .. py:method:: AddRange(points, normals, colors)

      Appends a collection of points to this point cloud.


      :rtype: void

   .. py:method:: AddRange(points, values)

      Appends a collection of points to this point cloud.


      :rtype: void

   .. py:method:: AddRange(points, normals, colors, values)

      Appends a collection of points to this point cloud.


      :rtype: void

   .. py:method:: Insert(index, point)

      Inserts a new point into the point list.

      :param int index: Insertion index.
      :param rhino3dm.Point3d point: Point to append.


      :rtype: void

   .. py:method:: Insert(index, point, normal)

      Inserts a new point into the point list.


      :rtype: void

   .. py:method:: Insert(index, point, color)

      Inserts a new point into the point list.


      :rtype: void

   .. py:method:: Insert(index, point, normal, color)

      Inserts a new point into the point list.


      :rtype: void

   .. py:method:: Insert(index, point, value)

      Inserts a new point into the point list.


      :rtype: void

   .. py:method:: Insert(index, point, normal, color, value)

      Inserts a new point into the point list.


      :rtype: void

   .. py:method:: InsertRange(index, points)

      Append a collection of points to this point cloud.

      :param int index: Index at which to insert the new collection.
      :param list[rhino3dm.Point3d] points: Points to append.


      :rtype: void

   .. py:method:: RemoveAt(index)

      Remove the point at the given index.

      :param int index: Index of point to remove.


      :rtype: void

   .. py:method:: GetPoints()

      Copy all the point coordinates in this point cloud to an array.

      :return: An array containing all the points in this point cloud.

      :rtype: rhino3dm.Point3d[]

   .. py:method:: PointAt(index)

      Returns the location of the point at a specific index.

      :param int index: The index.


      :rtype: rhino3dm.Point3d

   .. py:method:: GetNormals()

      Copy all the normal vectors in this point cloud to an array.

      :return: An array containing all the normals in this point cloud.

      :rtype: rhino3dm.Vector3d[]

   .. py:method:: GetColors()

      Copy all the point colors in this point cloud to an array.

      :return: An array containing all the colors in this point cloud.

      :rtype: Color[]

   .. py:method:: GetValues()

      [todo] add documentation

   .. py:method:: ClosestPoint(testPoint)

      Returns index of the closest point in the point cloud to a given test point.

      :param rhino3dm.Point3d testPoint: .

      :return: Index of point in the point cloud on success. -1 on failure.

      :rtype: int
