コード例 #1
0
        /// <summary>
        /// Поиск количества индексов
        /// </summary>
        /// <returns>Количество индексов</returns>
        protected int GetIndexCount()
        {
            MeshComponent mc    = this;
            int           count = indexCount;

            while (count == 0)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                count = mc.indexCount;
            }
            return(count);
        }
コード例 #2
0
        /// <summary>
        /// Поиск буффера текстурных координат
        /// </summary>
        /// <returns>Индекс буффера текстурных координат</returns>
        protected int SearchTexCoordBuffer()
        {
            MeshComponent mc     = this;
            int           buffer = textureBuffer;

            while (buffer == 0)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                buffer = mc.textureBuffer;
            }
            return(buffer);
        }
コード例 #3
0
        /// <summary>
        /// Поиск индексного буффера
        /// </summary>
        /// <returns>Индексный буффер</returns>
        protected int SearchIndexBuffer()
        {
            MeshComponent mc     = this;
            int           buffer = indexBuffer;

            while (buffer == 0)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                buffer = mc.indexBuffer;
            }
            return(buffer);
        }
コード例 #4
0
        /// <summary>
        /// Поиск индексов треугольников
        /// </summary>
        /// <returns></returns>
        protected ushort[] SearchIndices()
        {
            MeshComponent mc = this;

            ushort[] ia = indices;
            while (ia == null)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                ia = mc.indices;
            }
            return(ia);
        }
コード例 #5
0
        /// <summary>
        /// Поиск текстурных координат среди прокси-объектов
        /// </summary>
        /// <returns>Массив текстурных координат</returns>
        protected float[] SearchTexCoords()
        {
            MeshComponent mc = this;

            float[] ta = uv;
            while (ta == null)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                ta = mc.uv;
            }
            return(ta);
        }
コード例 #6
0
        /// <summary>
        /// Поиск нормалей среди прокси-объектов
        /// </summary>
        /// <returns>Массив нормалей</returns>
        protected float[] SearchNormals()
        {
            MeshComponent mc = this;

            float[] na = normals;
            while (na == null)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                na = mc.normals;
            }
            return(na);
        }
コード例 #7
0
        /// <summary>
        /// Поиск вершин среди прокси-объектов
        /// </summary>
        /// <returns>Массив вершин</returns>
        protected float[] SearchVertices()
        {
            MeshComponent mc = this;

            float[] va = vertices;
            while (va == null)
            {
                if (mc.Proxy != null)
                {
                    mc = mc.Proxy;
                }
                else
                {
                    break;
                }
                va = mc.vertices;
            }
            return(va);
        }
コード例 #8
0
 /// <summary>
 /// Получение бокса для отсечения
 /// </summary>
 /// <returns>Коробка</returns>
 internal override CullBox GetCullingBox()
 {
     if (cull == null)
     {
         CullBox       cb = null;
         MeshComponent mc = this;
         while (cb == null)
         {
             if (mc.Proxy != null)
             {
                 mc = mc.Proxy;
             }
             else
             {
                 break;
             }
             cb = mc.GetCullingBox();
         }
     }
     return(cull);
 }