/// <summary> /// Gets the reference of the base polygon in the tile. /// </summary> /// <returns>The reference of the base polygon.</returns> public uint GetBasePolyRef() { if (mOwner.IsDisposed) { return(0); } return(NavmeshTileEx.dtnmGetPolyRefBase(mOwner.root, mTile)); }
/// <summary> /// Gets the size of the buffer required by the <see cref="GetState"/> method. /// </summary> /// <returns>The size of the state data.</returns> public int GetStateSize() { if (mOwner.IsDisposed) { return(0); } return(NavmeshTileEx.dtnmGetTileStateSize(mOwner.root, mTile)); }
/// <summary> /// Gets the tile header from the raw tile data. /// </summary> /// <param name="rawTileData">The raw tile data.</param> /// <param name="header">The header.</param> /// <returns>The status of the request.</returns> public static NavStatus GetHeader(byte[] rawTileData, out NavmeshTileHeader header) { header = new NavmeshTileHeader(); if (rawTileData == null) return NavStatus.Failure | NavStatus.InvalidParam; return NavmeshTileEx.dtnmGetTileDataHeader(rawTileData, rawTileData.Length, ref header); }
/// <summary> /// Gets the tile header. /// </summary> /// <returns>The tile header.</returns> public NavmeshTileHeader GetHeader() { NavmeshTileHeader result = new NavmeshTileHeader(); if (mData == IntPtr.Zero) return new NavmeshTileHeader(); NavmeshTileEx.dtnmGetTileDataHeaderAlt(mData, mDataLength, ref result); return result; }
/// <summary> /// Gets a copy of the off-mesh connection buffer. /// </summary> /// <param name="buffer"> /// The buffer to load the results into. /// [Length: >= <see cref="NavmeshTileHeader.connCount"/>] /// </param> /// <returns>The number of connections returned.</returns> public int GetConnections(NavmeshConnection[] buffer) { if (mOwner.IsDisposed || buffer == null) { return(0); } return(NavmeshTileEx.dtnmGetTileConnections(mTile , buffer , buffer.Length)); }
/// <summary> /// Gets a copy of the <see cref="NavmeshBVNode"/> tree. /// </summary> /// <param name="buffer"> /// The buffer to load the results into. /// [Length: >= <see cref="NavmeshTileHeader.bvNodeCount"/>] /// </param> /// <returns>The number of nodes returned.</returns> public int GetBVTree(NavmeshBVNode[] buffer) { if (mOwner.IsDisposed || buffer == null) { return(0); } return(NavmeshTileEx.dtnmGetTileBVTree(mTile , buffer , buffer.Length)); }
/// <summary> /// Gets a copy of the link buffer. /// </summary> /// <param name="buffer"> /// The buffer to load the results into. /// [Length: >= <see cref="NavmeshTileHeader.maxLinkCount"/>] /// </param> /// <returns>The number of links returned.</returns> public int GetLinks(NavmeshLink[] buffer) { if (mOwner.IsDisposed || buffer == null) { return(0); } return(NavmeshTileEx.dtnmGetTileLinks(mTile , buffer , buffer.Length)); }
/// <summary> /// Gets a copy of the detail mesh buffer buffer. /// </summary> /// <param name="buffer"> /// The buffer to load the results into. /// [Length: >= <see cref="NavmeshTileHeader.detailMeshCount"/>] /// </param> /// <returns>The number of meshes returned.</returns> public int GetDetailMeshes(NavmeshDetailMesh[] buffer) { if (mOwner.IsDisposed || buffer == null) { return(0); } return(NavmeshTileEx.dtnmGetTileDetailMeshes(mTile , buffer , buffer.Length)); }
/// <summary> /// Gets a copy of the vertex buffer. /// </summary> /// <param name="buffer"> /// The buffer to load the results into. /// [Length: >= <see cref="NavmeshTileHeader.vertCount"/>] /// </param> /// <returns>The number of vertices returned.</returns> public int GetVerts(Vector3[] buffer) { if (mOwner.IsDisposed || buffer == null) { return(0); } return(NavmeshTileEx.dtnmGetTileVerts(mTile , buffer , buffer.Length)); }
/// <summary> /// Creates tile data from a serialized data created by <see cref="GetData"/>. /// </summary> /// <param name="rawTileData">The serialized tile data.</param> /// <returns>A new tile data object, or null on error.</returns> public static NavmeshTileData Create(byte[] rawTileData) { if (rawTileData == null) return null; NavmeshTileData result = new NavmeshTileData(); if (NavmeshTileEx.dtnmBuildTileDataRaw(rawTileData, rawTileData.Length, result)) return result; return null; }
/// <summary> /// Create tile data from the provided build data. /// </summary> /// <param name="buildData">The build data.</param> /// <returns>A new tile data object, or null on error.</returns> public static NavmeshTileData Create(NavmeshTileBuildData buildData) { if (buildData == null || buildData.IsDisposed) return null; NavmeshTileData result = new NavmeshTileData(); if (NavmeshTileEx.dtnmBuildTileData(buildData, result)) return result; return null; }
/// <summary> /// Sets the non-structural state defined by the state data. /// (Obtained from the <see cref="GetState"/> method.) /// </summary> /// <param name="stateData">The state data to apply.</param> /// <returns>The <see cref="NavStatus" /> flags for the operation.</returns> public NavStatus SetState(byte[] stateData) { if (mOwner.IsDisposed || stateData == null) { return(NavStatus.Failure | NavStatus.InvalidParam); } return(NavmeshTileEx.dtnmRestoreTileState(mOwner.root , mTile , stateData , stateData.Length)); }
/// <summary> /// Gets the non-structural state of the tile. (Flags, areas, etc.) /// </summary> /// <remarks> /// <para> /// The state data is only valid until the tile reference changes. /// </para> /// </remarks> /// <param name="buffer"> /// The buffer to load the state into. [Length: >= <see cref="GetStateSize"/>] /// </param> /// <returns>The <see cref="NavStatus" /> flags for the operation.</returns> public NavStatus GetState(byte[] buffer) { if (mOwner.IsDisposed || buffer == null) { return(NavStatus.Failure | NavStatus.InvalidParam); } return(NavmeshTileEx.dtnmStoreTileState(mOwner.root , mTile , buffer , buffer.Length)); }
/// <summary> /// Creates tile data from a serialized data created by <see cref="GetData"/>. /// </summary> /// <param name="rawTileData">The serialized tile data.</param> /// <returns>A new tile data object, or null on error.</returns> public static NavmeshTileData Create(byte[] rawTileData) { if (rawTileData == null) { return(null); } NavmeshTileData result = new NavmeshTileData(); if (NavmeshTileEx.dtnmBuildTileDataRaw(rawTileData, rawTileData.Length, result)) { return(result); } return(null); }
/// <summary> /// Create tile data from the provided build data. /// </summary> /// <param name="buildData">The build data.</param> /// <returns>A new tile data object, or null on error.</returns> public static NavmeshTileData Create(NavmeshTileBuildData buildData) { if (buildData == null || buildData.IsDisposed) { return(null); } NavmeshTileData result = new NavmeshTileData(); if (NavmeshTileEx.dtnmBuildTileData(buildData, result)) { return(result); } return(null); }
/// <summary> /// Gets the tile header. /// </summary> /// <returns>The tile header.</returns> public NavmeshTileHeader GetHeader() { if (mOwner.IsDisposed) { return(new NavmeshTileHeader()); } IntPtr header = NavmeshTileEx.dtnmGetTileHeader(mTile); if (header == IntPtr.Zero) { return(new NavmeshTileHeader()); } return((NavmeshTileHeader) Marshal.PtrToStructure(header, typeof(NavmeshTileHeader))); }