using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
namespace XericLibrary.Runtime.MacroLibrary
{
public static class NeighborGridExtend
{
///
/// 世界空间变换为网格系统本地坐标空间
///
///
///
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 WorldToSimulation(this Vector3 world, NeighborGrid grid)
=> grid.WorldToSimulation(world);
///
/// 网格系统本地坐标空间变换为世界空间
///
///
///
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 SimulationToWorld(this Vector3 simulation, NeighborGrid grid)
=> grid.SimulationToWorld(simulation);
///
/// 网格系统本地坐标空间转为网格系统本地单位空间
///
///
///
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 SimulationToUnit(this Vector3 simulation, NeighborGrid grid)
=> grid.SimulationToUnit(simulation);
///
/// 网格系统本地坐标空间转为网格系统本地单位空间
///
///
///
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 UnitToSimulation(this Vector3 unit, NeighborGrid grid)
=> grid.UnitToSimulation(unit);
///
/// 网格系统本地单位空间转为三维索引
///
///
///
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3Int UnitToIndex(this Vector3 unit, NeighborGrid grid)
=> grid.UnitToIndex(unit);
///
/// 三维索引转为网格系统本地单位空间
///
///
///
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 IndexToUnit(this Vector3Int index, NeighborGrid grid)
=> grid.IndexToUnit(index);
///
/// 网格系统本地单位空间转为线性索引
///
///
/// 网格系统本地坐标空间
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int UnitToLinear(this Vector3 unit, NeighborGrid grid)
=> grid.UnitToLinear(unit);
///
/// 三维索引转为线性索引
///
///
/// 三维索引
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int IndexToLinear(this Vector3Int index, NeighborGrid grid)
=> grid.IndexToLinear(index);
///
/// 网格系统本地单位空间转为线性索引
///
///
/// 网格系统本地坐标空间
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3Int LinearToIndex(this int Linear, NeighborGrid grid)
=> grid.LinearToIndex(Linear);
///
/// 三维索引转为线性索引
///
///
/// 三维索引
/// 网格目标
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector3 LinearToUnit(this int Linear, NeighborGrid grid)
=> grid.LinearToUnit(Linear);
///
/// 从世界坐标获取到索引
///
///
///
///
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int WorldToLinear(this Vector3 Linear, NeighborGrid grid)
=> Linear.WorldToSimulation(grid).SimulationToUnit(grid).UnitToLinear(grid);
}
}