Assimp.Mesh.GetIndices C# (CSharp) Метод

GetIndices() публичный Метод

Convienence method for accumulating all face indices into a single index array.
public GetIndices ( ) : int[]
Результат int[]
        public int[] GetIndices()
        {
            if (HasFaces)
            {
                List<int> indices = new List<int>();
                foreach (Face face in m_faces)
                {
                    if (face.IndexCount > 0 && face.Indices != null)
                    {
                        indices.AddRange(face.Indices);
                    }
                }
                return indices.ToArray();
            }
            return null;
        }

Usage Example

Пример #1
0
        internal void LoadPrimitveFromFile(string fileName, out DebugVertexType[] vertices, out UInt16[] indices)
        {
            Assimp.Scene scene = m_importer.ImportFile(fileName, PostProcessPreset.TargetRealTimeMaximumQuality | PostProcessPreset.ConvertToLeftHanded);
            // Loaded primitive files should always only contain a single mesh so we load only the first mesh
            if (scene.HasMeshes)
            {
                Assimp.Mesh assimpMesh = scene.Meshes[0];
                vertices = new DebugVertexType[assimpMesh.Vertices.Count];
                indices  = new UInt16[assimpMesh.GetIndices().Length];

                for (int i = 0; i < assimpMesh.Vertices.Count; ++i)
                {
                    Vector3 position = FromAssimpVector(assimpMesh.Vertices[i]);
                    vertices[i].position = position;
                }

                for (int i = 0; i < assimpMesh.GetIndices().Length; i++)
                {
                    int index = assimpMesh.GetIndices()[i];
                    indices[i] = (UInt16)index;
                }
            }
            else
            {
                vertices = new DebugVertexType[0];
                indices  = new UInt16[0];
            }
        }
All Usage Examples Of Assimp.Mesh::GetIndices