Package com.io7m.smfj.core
Class SMFCoordinateSystem
- java.lang.Object
-
- com.io7m.smfj.core.SMFCoordinateSystem
-
- All Implemented Interfaces:
SMFCoordinateSystemType
public final class SMFCoordinateSystem extends java.lang.Object implements SMFCoordinateSystemType
The specification of a coordinate system and face winding order.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SMFCoordinateSystem.Builder
Builds instances of typeSMFCoordinateSystem
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.io7m.jcoords.core.conversion.CAxisSystem
axes()
static SMFCoordinateSystem.Builder
builder()
Creates a builder forSMFCoordinateSystem
.static SMFCoordinateSystem
copyOf(SMFCoordinateSystemType instance)
Creates an immutable copy of aSMFCoordinateSystemType
value.boolean
equals(java.lang.Object another)
This instance is equal to all instances ofSMFCoordinateSystem
that have equal attribute values.int
hashCode()
Computes a hash code from attributes:axes
,windingOrder
.static SMFCoordinateSystem
of(com.io7m.jcoords.core.conversion.CAxisSystem axes, SMFFaceWindingOrder windingOrder)
Construct a new immutableSMFCoordinateSystem
instance.java.lang.String
toHumanString()
java.lang.String
toString()
Prints the immutable valueSMFCoordinateSystem
with attribute values.SMFFaceWindingOrder
windingOrder()
SMFCoordinateSystem
withAxes(com.io7m.jcoords.core.conversion.CAxisSystem value)
Copy the current immutable object by setting a value for theaxes
attribute.SMFCoordinateSystem
withWindingOrder(SMFFaceWindingOrder value)
Copy the current immutable object by setting a value for thewindingOrder
attribute.
-
-
-
Method Detail
-
axes
public com.io7m.jcoords.core.conversion.CAxisSystem axes()
- Specified by:
axes
in interfaceSMFCoordinateSystemType
- Returns:
- The coordinate system axes
-
windingOrder
public SMFFaceWindingOrder windingOrder()
- Specified by:
windingOrder
in interfaceSMFCoordinateSystemType
- Returns:
- The winding order for triangles
-
withAxes
public final SMFCoordinateSystem withAxes(com.io7m.jcoords.core.conversion.CAxisSystem value)
Copy the current immutable object by setting a value for theaxes
attribute. A shallow reference equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for axes- Returns:
- A modified copy of the
this
object
-
withWindingOrder
public final SMFCoordinateSystem withWindingOrder(SMFFaceWindingOrder value)
Copy the current immutable object by setting a value for thewindingOrder
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for windingOrder- Returns:
- A modified copy of the
this
object
-
equals
public boolean equals(java.lang.Object another)
This instance is equal to all instances ofSMFCoordinateSystem
that have equal attribute values.- Overrides:
equals
in classjava.lang.Object
- Returns:
true
ifthis
is equal toanother
instance
-
hashCode
public int hashCode()
Computes a hash code from attributes:axes
,windingOrder
.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- hashCode value
-
toString
public java.lang.String toString()
Prints the immutable valueSMFCoordinateSystem
with attribute values.- Overrides:
toString
in classjava.lang.Object
- Returns:
- A string representation of the value
-
toHumanString
public java.lang.String toHumanString()
Returns a lazily initialized value of the
toHumanString
attribute. Initialized once and only once and stored for subsequent access with proper synchronization. In case of any exception or error thrown by the lazy value initializer, the result will not be memoised (i.e. remembered) and on next call computation will be attempted again.- Specified by:
toHumanString
in interfaceSMFCoordinateSystemType
- Returns:
- A lazily initialized value of the
toHumanString
attribute
-
of
public static SMFCoordinateSystem of(com.io7m.jcoords.core.conversion.CAxisSystem axes, SMFFaceWindingOrder windingOrder)
Construct a new immutableSMFCoordinateSystem
instance.- Parameters:
axes
- The value for theaxes
attributewindingOrder
- The value for thewindingOrder
attribute- Returns:
- An immutable SMFCoordinateSystem instance
-
copyOf
public static SMFCoordinateSystem copyOf(SMFCoordinateSystemType instance)
Creates an immutable copy of aSMFCoordinateSystemType
value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.- Parameters:
instance
- The instance to copy- Returns:
- A copied immutable SMFCoordinateSystem instance
-
builder
public static SMFCoordinateSystem.Builder builder()
Creates a builder forSMFCoordinateSystem
.SMFCoordinateSystem.builder() .setAxes(com.io7m.jcoords.core.conversion.CAxisSystem) // optional
axes
.setWindingOrder(com.io7m.smfj.core.SMFFaceWindingOrder) // optionalwindingOrder
.build();- Returns:
- A new SMFCoordinateSystem builder
-
-