public XmatWrapper(EFile E) { file = E; eCFile stream = new eCFile(E); Mat = new xshmat(stream); stream.Close(); }
public static ILrentObject addXMSH(string xmsh, string xcol, API_Device D, Vector3 pos, Quaternion rot, LrentFile z_File, bool a_Notify = true) { eCFile F = new eCFile(FileManager.GetFile("resources/emptyLevelEntity.bin")); eCDynamicEntity E = new eCDynamicEntity(F); E.GUID.Value = Guid.NewGuid(); EFile e0 = FileManager.GetFile(xmsh); //string x = FileManager.mapFilename(xmsh), x2 = FileManager.mapFilename(xcol); string x = "#G3:/" + xmsh, x2 = "#G3:/" + xcol; E.Name.pString = e0.Name.Replace(e0.Extension, "");//xmsh.Replace("._xmsh", "") //@"#G3:/data/raw/meshes/World//" + (E["eCMesh_PS"].Properties["MeshFileName"].Object as bCString).pString = x; E.Query<eCCollisionShape_PS>()[0].SetXColMesh(x2);//DonCamp_01_L01_COL._xcom E.Query<eCCollisionShape_PS>()[1].SetXColMesh(x2); ILrentObject O = new ILrentObject(z_File, E); O.LoadModels(D); E.ApplyBoundingVolume(GENOMEMath.toGENOME(O.Nodes[0].BoundingBox)); O.File.UpdateContextBox(); O.File.addObject(O); O.Position = pos; O.Rotation = rot; if(a_Notify) RisenWorld.OnEntityAdded(O); return O; }
void BackBufferControl_MouseDown(object sender, MouseEventArgs e) { if (Environment.TickCount - lastDown < 100) return; lastDown = Environment.TickCount; if (z_points.Count >= z_maxcounter || e.Button != System.Windows.Forms.MouseButtons.Left) return; z_points.Add(P.GetNewStartPosition(ManagedWorld.NodeLibrary.Camera.Position_ABS)); if (z_points.Count == z_maxcounter) { P.OnBufferClick = null; label1.Visible = false; Vector3 pos = Vector3.Zero; for (int i = 0; i < z_maxcounter; i++) pos += z_points[i]; pos /= (float)z_maxcounter; eCFile F = new eCFile(FileManager.GetFile("resources/emptyZone.bin")); eCDynamicEntity E = new eCDynamicEntity(F); E.GUID.Value = Guid.NewGuid(); E.SetRotation_ST(Quaternion.Identity); E.SetPosition_ST(Vector3.Zero); bTObjArray<SlimDX.Vector3> Points = E[0].Properties["Point"].Object as bTObjArray<SlimDX.Vector3>; Points.Clear(); float mR = 0.0f; for (int i = 0; i < z_maxcounter; i++) { Points.Add( GENOMEMath.toGENOME(z_points[i] - pos)); mR = Math.Max(mR, Points[i].Length()); } E[0].Properties["Radius"].Object = mR; E[0].Properties["RadiusOffset"].Object = new Vector3(0.0f); ILrentObject v_NewObj = new ILrentObject(z_File, E); v_NewObj.Matrix = Matrix.Translation(pos); v_NewObj.LoadModels(P.Device); v_NewObj.File.addObject(v_NewObj); RisenWorld.OnEntityAdded(v_NewObj); Code.Renderer.NavRenderer.DrawAllNav = true; v_NewObj.Position = v_NewObj.Position; v_NewObj.getSet<gIZone>().CalculateCenter(); } }
public ximg(EFile e) { eCFile s = new eCFile(e); deSerialize(s); s.Close(); }