/// <summary>
 /// Assigns internal properties to another geometry3D. This does not assign <see cref="IsDynamic"/>/<see cref="PreDefinedIndexCount"/>/<see cref="PreDefinedVertexCount"/>
 /// <para>
 /// Following properties are assigned:
 /// <see cref="Positions"/>, <see cref="Indices"/>, <see cref="Colors"/>, <see cref="Bound"/>, <see cref="BoundingSphere"/>, <see cref="Octree"/>, <see cref="OctreeParameter"/>
 /// </para>
 /// <para>Override <see cref="OnAssignTo(Geometry3D)"/> to assign custom properties in child class</para>
 /// </summary>
 /// <param name="target">The target.</param>
 public void AssignTo(Geometry3D target)
 {
     target.DisableUpdateBound = true;
     target.Positions          = this.Positions;
     target.ClearOctree();
     target.DisableUpdateBound = false;
     target.Indices            = this.Indices;
     target.Colors             = this.Colors;
     target.Bound          = this.Bound;
     target.BoundingSphere = this.BoundingSphere;
     target.ManualSetOctree(Octree);
     target.OctreeParameter.MinimumOctantSize    = OctreeParameter.MinimumOctantSize;
     target.OctreeParameter.MinObjectSizeToSplit = OctreeParameter.MinObjectSizeToSplit;
     target.OctreeParameter.Cubify = OctreeParameter.Cubify;
     target.OctreeParameter.EnableParallelBuild = OctreeParameter.EnableParallelBuild;
     OnAssignTo(target);
 }