/// <summary> /// Creates a new mapper. /// </summary> /// <remarks> /// <para> /// Will return null if parameters are invalid. Must have at least one valid area/flag map. /// </para> /// </remarks> /// <param name="name">The processor name.</param> /// <param name="priority">The processor priority.</param> /// <param name="areas">The areas check for.</param> /// <param name="flags">The flags to apply.</param> /// <returns>A new marker, or null on error.</returns> public static AreaFlagMapper Create(string name, int priority, byte[] areas, ushort[] flags) { if (areas == null || flags == null || areas.Length != flags.Length || !NMGen.IsValidAreaBuffer(areas, areas.Length)) { return(null); } return(new AreaFlagMapper(name, priority , (byte[])areas.Clone(), (ushort[])flags.Clone())); }
/// <summary> /// Validates the mesh and areas. /// </summary> /// <remarks> /// <para> /// The <paramref name="areas"/> parameter is validated only if it is non-null. /// </para> /// </remarks> /// <param name="mesh">The mesh to validate.</param> /// <param name="areas">The area to validate. (If non-null.)</param> /// <returns>True if the structure and content of the parameters are considered valid. /// </returns> public static bool IsValid(TriangleMesh mesh, byte[] areas) { if (mesh == null || mesh.triCount == 0 || !TriangleMesh.IsValid(mesh, true)) { return(false); } if (areas != null && (areas.Length != mesh.triCount || !NMGen.IsValidAreaBuffer(areas, mesh.triCount))) { return(false); } return(true); }