} // 3D public SCeiling(DCeiling dCeiling) { Id = dCeiling.Id; Name = dCeiling.Name; Tag = dCeiling.Tag; Height = dCeiling.Height; LevelBottom = dCeiling.LevelBottom; Material = dCeiling.Material.name; Points = new List <float[]>(); foreach (var v in dCeiling.Points) { Points.Add(new float[3] { v.x, v.y, v.z }); } Triangles3D = dCeiling.Instance3D.GetComponent <MeshFilter>().mesh.triangles; Vertices3D = new List <float[]>(); foreach (var v in dCeiling.Instance3D.GetComponent <MeshFilter>().mesh.vertices) { Vertices3D.Add(new float[3] { v.x, v.y, v.z }); } }
// Update is called once per frame void Update() { if (domaManager.ResetDataFunctionNow) { polygonPoints.Clear(); domaManager.ResetDataFunctionNow = false; } // Sledzenie punktów z kondygnacji niższej var nearestPoint = NearestPoint2D(0.5f); if (Input.GetMouseButtonDown(0)) { if (nearestPoint != null) { polygonPoints.Add((Vector3)nearestPoint); } else { polygonPoints.Add(domaManager.mousePosition2D); } } else if (Input.GetMouseButtonUp(0)) { DCeiling dCeiling = new DCeiling(0.2f, domaManager.currentStatusDoma.activeFloor.LevelBottom + domaManager.currentStatusDoma.activeFloor.Height, material, polygonPoints.ToArray()); var refCeilingTempObject = ceilingTempObject; if (refCeilingTempObject != null) { DestroyImmediate(refCeilingTempObject); } ceilingTempObject = dCeiling.DrawCeiling2D(); } else if (Input.GetMouseButtonDown(1)) { DCeiling dCeiling = new DCeiling(0.2f, domaManager.currentStatusDoma.activeFloor.LevelBottom + domaManager.currentStatusDoma.activeFloor.Height, material, polygonPoints.ToArray()); dCeiling.DrawCeiling2D(); dCeiling.DrawCeiling3D(); domaManager.currentStatusDoma.appSystem.Ceilings.Add(dCeiling); DestroyImmediate(ceilingTempObject); ceilingTempObject = null; } }