private void Dispose(bool disposing) { _core.Dispose(); }
public void Dispose() { _core.Dispose(); }
private static bool TryParsePrivate(ReadOnlySpan <byte> text, out ObjObjectCore obj) { ObjObjectCore core = default; try { core = new ObjObjectCore(); var lines = text.Lines(); foreach (Utf8Reader lineReader in lines) { if (lineReader.MoveIfMatch((byte)'#')) { continue; } else if (lineReader.MoveIfMatch((byte)'v', (byte)' ')) { if (TryParseVector3(lineReader.Current, out var pos) == false) { goto FAILURE; } core.Positions.Add(pos); } else if (lineReader.MoveIfMatch((byte)'v', (byte)'t', (byte)' ')) { if (TryParseVector2(lineReader.Current, out var uv) == false) { goto FAILURE; } core.UVs.Add(uv); } else if (lineReader.MoveIfMatch((byte)'v', (byte)'n', (byte)' ')) { if (TryParseVector3(lineReader.Current, out var normal) == false) { goto FAILURE; } core.Normals.Add(normal); } else if (lineReader.MoveIfMatch((byte)'f', (byte)' ')) { if (TryParseFLine(lineReader.Current, ref core) == false) { goto FAILURE; } } else { continue; } } obj = core; return(true); FAILURE: obj = default; return(false); } catch { core.Dispose(); obj = default; return(false); } }