Package com.io7m.smfj.format.support
Class SMFTriangleTracker
- java.lang.Object
-
- com.io7m.smfj.format.support.SMFTriangleTracker
-
public final class SMFTriangleTracker extends java.lang.Object
A tracker of triangle counts and indices.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
SMFTriangleTracker.ErrorReceiverType
A receiver of error messages.
-
Constructor Summary
Constructors Constructor Description SMFTriangleTracker(SMFTriangleTracker.ErrorReceiverType inErrors, long inVertexCount, long inTriangleCount)
Construct a tracker.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTriangle(com.io7m.jlexing.core.LexicalPosition<java.net.URI> lexical, long v0, long v1, long v2)
Add a triangle.boolean
check(com.io7m.jlexing.core.LexicalPosition<java.net.URI> lexical)
Check that all invariants hold.
-
-
-
Constructor Detail
-
SMFTriangleTracker
public SMFTriangleTracker(SMFTriangleTracker.ErrorReceiverType inErrors, long inVertexCount, long inTriangleCount)
Construct a tracker.- Parameters:
inErrors
- A receiver of errorsinVertexCount
- The expected number of verticesinTriangleCount
- The expected number of triangles
-
-
Method Detail
-
addTriangle
public void addTriangle(com.io7m.jlexing.core.LexicalPosition<java.net.URI> lexical, long v0, long v1, long v2)
Add a triangle.- Parameters:
lexical
- The triangle declaration positionv0
- The index of vertex 0v1
- The index of vertex 1v2
- The index of vertex 2
-
check
public boolean check(com.io7m.jlexing.core.LexicalPosition<java.net.URI> lexical)
Check that all invariants hold. If they do not, errors will be published to the error receiver andfalse
returned.- Parameters:
lexical
- The lexical position- Returns:
true
if all invariants hold
-
-