private static void PushOBJFace(string lFaceLine) { OBJLoader.PushOBJGroupIfNeeded(); string[] array = lFaceLine.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); OBJFace oBJFace = new OBJFace(); string[] array2 = array; for (int i = 0; i < array2.Length; i++) { string lVertexString = array2[i]; oBJFace.ParseVertex(lVertexString); } OBJLoader.m_CurrentGroup.AddFace(oBJFace); }
static OBJLoader() { // Note: this type is marked as 'beforefieldinit'. Dictionary <string, Action <string> > dictionary = new Dictionary <string, Action <string> >(); dictionary.Add("mtllib", delegate(string lEntry) { }); dictionary.Add("usemtl", delegate(string lEntry) { OBJLoader.PushOBJGroupIfNeeded(); OBJLoader.m_CurrentGroup.m_Material = OBJLoader.m_OBJData.m_Materials.SingleOrDefault((OBJMaterial lX) => lX.m_Name.EqualsInvariantCultureIgnoreCase(lEntry)); }); dictionary.Add("v", delegate(string lEntry) { OBJLoader.m_OBJData.m_Vertices.Add(Utils.ParseVector3String(lEntry, ' ')); }); dictionary.Add("vn", delegate(string lEntry) { OBJLoader.m_OBJData.m_Normals.Add(Utils.ParseVector3String(lEntry, ' ')); }); dictionary.Add("vt", delegate(string lEntry) { OBJLoader.m_OBJData.m_UVs.Add(Utils.ParseVector2String(lEntry, ' ')); }); dictionary.Add("vt2", delegate(string lEntry) { OBJLoader.m_OBJData.m_UV2s.Add(Utils.ParseVector2String(lEntry, ' ')); }); dictionary.Add("vc", delegate(string lEntry) { OBJLoader.m_OBJData.m_Colors.Add(Utils.ParseVector4String(lEntry, ' ').ToColor()); }); dictionary.Add("f", new Action <string>(OBJLoader.PushOBJFace)); dictionary.Add("g", new Action <string>(OBJLoader.PushOBJGroup)); OBJLoader.m_ParseOBJActionDictionary = dictionary; Dictionary <string, Action <string> > dictionary2 = new Dictionary <string, Action <string> >(); dictionary2.Add("newmtl", new Action <string>(OBJLoader.PushOBJMaterial)); dictionary2.Add("Ka", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_AmbientColor = Utils.ParseVector3String(lEntry, ' ').ToColor(); }); dictionary2.Add("Kd", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_DiffuseColor = Utils.ParseVector3String(lEntry, ' ').ToColor(); }); dictionary2.Add("Ks", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_SpecularColor = Utils.ParseVector3String(lEntry, ' ').ToColor(); }); dictionary2.Add("Ns", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_SpecularCoefficient = lEntry.ParseInvariantFloat(); }); dictionary2.Add("d", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_Transparency = lEntry.ParseInvariantFloat(); }); dictionary2.Add("Tr", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_Transparency = lEntry.ParseInvariantFloat(); }); dictionary2.Add("illum", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_IlluminationModel = lEntry.ParseInvariantInt(); }); dictionary2.Add("map_Ka", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_AmbientTextureMap = lEntry; }); dictionary2.Add("map_Kd", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_DiffuseTextureMap = lEntry; }); dictionary2.Add("map_Ks", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_SpecularTextureMap = lEntry; }); dictionary2.Add("map_Ns", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_SpecularHighlightTextureMap = lEntry; }); dictionary2.Add("map_d", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_AlphaTextureMap = lEntry; }); dictionary2.Add("map_bump", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_BumpMap = lEntry; }); dictionary2.Add("bump", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_BumpMap = lEntry; }); dictionary2.Add("disp", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_DisplacementMap = lEntry; }); dictionary2.Add("decal", delegate(string lEntry) { OBJLoader.m_CurrentMaterial.m_StencilDecalMap = lEntry; }); OBJLoader.m_ParseMTLActionDictionary = dictionary2; }