Class MFMatrix4d

java.lang.Object
org.web3d.x3d.jsail.fields.X3DConcreteField
org.web3d.x3d.jsail.fields.MFMatrix4d
All Implemented Interfaces:
Matrix4, MFMatrix4d, X3DField

public class MFMatrix4d extends X3DConcreteField implements MFMatrix4d
This utility class provides a concrete implementation corresponding to MFMatrix4d X3D field type.

Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the org.web3d.x3d.jsail classes.
Package hint: This specification class is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI). MFMatrix4d specifies zero or more 4x4 matrices of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 16-tuple values.

Related field object: SFMatrix4d
See Also:
  • Field Details

  • Constructor Details

    • MFMatrix4d

      public MFMatrix4d()
      Constructor for MFMatrix4d performs value initialization.
    • MFMatrix4d

      public MFMatrix4d(MFMatrix4d newValue)
      Constructor to copy an MFMatrix4d value as initial value for this new field object.
      Parameters:
      newValue - The newValue to apply
    • MFMatrix4d

      public MFMatrix4d(double[] newValue)
      Constructor for MFMatrix4d using a corresponding Java primitive double[] array as new initial value.
      Parameters:
      newValue - is new value to assign Warning: newValue array length must correspond to tuple size for base type MFMatrix4d tuple size of 16. setContainerFieldOverride(containerFieldName); // apply checksConcreteField#getTupleSize(String)
    • MFMatrix4d

      public MFMatrix4d(SFMatrix4d newValue)
      Utility constructor for MFMatrix4d to assign a single SFMatrix4d as new initial value.
      Parameters:
      newValue - is new value to assign
  • Method Details

    • isArray

      public static final boolean isArray()
      Whether or not this field type is an array (true)
      Returns:
      true if array type
    • initialize

      public final void initialize()
      Initialization for MFMatrix4d applies default initial value. Static initializer also provided to verify that the regex pattern compiles and matches that default value.
      Specified by:
      initialize in class X3DConcreteField
      See Also:
    • equals

      public boolean equals(MFMatrix4d comparisonMFMatrix4d)
      Determine whether two objects contain equal values.
      Parameters:
      comparisonMFMatrix4d - field type to compare
      Returns:
      true if equivalent, false otherwise
    • validate

      public final String validate()
      Validate current value via get/set comparison tests
      Returns:
      empty string if get/set testing passes, warning otherwise
      See Also:
    • validateRegex

      public final String validateRegex()
      Validate current value via regular expression (regex) check of current object's toString() value, reporting errors only if found.
      Returns:
      empty string if PATTERN matches, warning otherwise
      See Also:
    • matches

      public final boolean matches()
      Test PATTERN match via regular expression (regex) check of current object's toString() value.
      Returns:
      true if PATTERN matches, false otherwise
      See Also:
    • matches

      public static final boolean matches(String value)
      Test PATTERN match with regular expression (regex) of provided value.
      Parameters:
      value - String to check against regex pattern for successful match
      Returns:
      true if PATTERN matches, false otherwise
      See Also:
    • setValueByString

      public MFMatrix4d setValueByString(String newValue) throws InvalidFieldValueException
      Utility accessor for MFMatrix4d using String value (which must pass parsing validation checks).

      Warning: this method is not type safe at compile time! Best practice for X3DJSAIL programmers is to use strongly typed methods instead, in order to avoid potential for run-time errors.
      Parameters:
      newValue - is new value to assign, if empty then assign DEFAULT_VALUE
      Returns:
      MFMatrix4d - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same node object).
      Throws:
      InvalidFieldValueException
      See Also:
    • setValue

      public MFMatrix4d setValue(SFMatrix4d newValue)
      Utility method for MFMatrix4d to assign a single SFMatrix4d as new initial value.
      Parameters:
      newValue - is new value to assign
      Returns:
      SFColor - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • toString

      public static String toString(double[] value)
      Static utility method to provide String representation of a correctly typed input value.
      Parameters:
      value - The value to convert to a String
      Returns:
      String version of the provided value, with trailing zeroes and decimal points omitted.
      See Also:
    • getPrimitiveValue

      public double[] getPrimitiveValue()
      Provides current value of the field as a Java primitive type.
      Returns:
      current value
    • toString

      public String toString()
      Provides current value as a String.
      Overrides:
      toString in class Object
      Returns:
      String version of the provided value, with trailing zeroes and decimal points omitted.
      See Also:
    • setValue

      public MFMatrix4d setValue(double[] newValue)
      Apply an array of primitive values to this field.
      Parameters:
      newValue - The newValue to apply
      Returns:
      MFMatrix4d - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • setIdentity

      public void setIdentity()
      Specified by:
      setIdentity in interface Matrix4
    • set

      public void set(int row, int column)
      Specified by:
      set in interface Matrix4
    • get

      public float get(int row, int column)
      Specified by:
      get in interface Matrix4
    • setTransform

      public void setTransform(SFVec3d translation, SFRotation rotation, SFVec3d scale, SFRotation scaleOrientation, SFVec3d center)
      Specified by:
      setTransform in interface MFMatrix4d
    • getTransform

      public void getTransform(SFVec3d translation, SFRotation rotation, SFVec3d scale)
      Specified by:
      getTransform in interface MFMatrix4d
    • inverse

      public Matrix4 inverse()
      Specified by:
      inverse in interface Matrix4
    • transpose

      public Matrix4 transpose()
      Specified by:
      transpose in interface Matrix4
    • multiplyLeft

      public Matrix4 multiplyLeft(Matrix4 matrix3x3)
      Specified by:
      multiplyLeft in interface Matrix4
    • multiplyRight

      public Matrix4 multiplyRight(Matrix4 matrix3x3)
      Specified by:
      multiplyRight in interface Matrix4
    • multiplyRowVector

      public Matrix4 multiplyRowVector(SFVec3d vector3d)
      Specified by:
      multiplyRowVector in interface MFMatrix4d
    • multiplyColVector

      public Matrix4 multiplyColVector(SFVec3d vector3d)
      Specified by:
      multiplyColVector in interface MFMatrix4d
    • toDoubleArray

      public double[] toDoubleArray()
      Provide double array for this field type.
      Returns:
      Array of doubles in this field array.
    • setValue

      public MFMatrix4d setValue(MFMatrix4d newValue)
      Apply an MFMatrix4d value to this field.
      Parameters:
      newValue - The newValue to apply
      Returns:
      MFMatrix4d - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • multiply

      public MFMatrix4d multiply(double scaleFactor)
      Multiply scaleFactor times all values in this field type.
      Parameters:
      scaleFactor - scalar value for vector multiplication
      Returns:
      MFMatrix4d - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • isDefaultValue

      public boolean isDefaultValue()
      Determine whether current value matches DEFAULT_VALUE
      Returns:
      whether current value matches DEFAULT_VALUE
      See Also: