protected MarchingCubeEntity CreateAndAddEntityAt(int x, int y, int z, int triangulationIndex)
        {
            MarchingCubeEntity e = new MarchingCubeEntity(this, triangulationIndex);

            e.origin = new Vector3Int(x, y, z);
            AddEntityAt(x, y, z, e);
            return(e);
        }
 public void SetEntityAt(int x, int y, int z, MarchingCubeEntity e)
 {
     cubeEntities[x, y, z] = e;
 }
 public void AddEntityAt(int x, int y, int z, MarchingCubeEntity e)
 {
     entities.Add(e);
     cubeEntities[x, y, z] = e;
 }
 public void AddEntityAt(Vector3Int v, MarchingCubeEntity e)
 {
     AddEntityAt(v.x, v.y, v.z, e);
 }
 public void SetEntityAt(Vector3Int v3, MarchingCubeEntity e)
 {
     SetEntityAt(v3.x, v3.y, v3.z, e);
 }
 public void RemoveEntityAt(int x, int y, int z, MarchingCubeEntity e)
 {
     SetEntityAt(x, y, z, null);
     entities.Remove(e);
 }
 public void RemoveEntityAt(MarchingCubeEntity e)
 {
     RemoveEntityAt(e.origin.x, e.origin.y, e.origin.z, e);
 }
 public bool TryGetEntityAt(int x, int y, int z, out MarchingCubeEntity e)
 {
     e = GetEntityAt(x, y, z);
     return(e != null);
 }