/** * Transforms the given tuple {@code tupleOriginal} by this matrix and stores the result in * {@code tupleTransformed}. * <p> * tupleTransformed = this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to store the result. Modified. * @throws ReferenceFrameMismatchException if either {@code tupleOriginal} or * {@code tupleTransformed} is not expressed in the same reference frame as * {@code this}. */ default void transform(FrameTuple3DReadOnly tupleOriginal, FixedFrameTuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleOriginal); checkReferenceFrameMatch(tupleTransformed); Matrix3DReadOnly.super.transform(tupleOriginal, tupleTransformed); }
/** * Performs the inverse of the transform to the given tuple {@code tupleOriginal} by this matrix * and stores the result in {@code tupleTransformed}. * <p> * tupleTransformed = this<sup>-1</sup> * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if either {@code tupleOriginal} or * {@code tupleTransformed} is not expressed in the same reference frame as * {@code this}. */ default void inverseTransform(FrameTuple3DReadOnly tupleOriginal, FixedFrameTuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleOriginal); checkReferenceFrameMatch(tupleTransformed); inverseTransform((Tuple3DReadOnly) tupleOriginal, (Tuple3DBasics) tupleTransformed); }
/** * Performs the inverse of the transforms to the given 3D matrix {@code matrixOriginal} by this * matrix and stores the result in {@code matrixTransformed}. * <p> * matrixTransformed = this<sup>-1</sup> * matrixOriginal * this * </p> * * @param matrixOriginal the matrix to transform. Not modified. * @param matrixTransformed the matrix in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if either {@code matrixOriginal} or * {@code matrixTransformed} is not expressed in the same reference frame as * {@code this}. */ default void inverseTransform(FrameMatrix3DReadOnly matrixOriginal, FixedFrameMatrix3DBasics matrixTransformed) { checkReferenceFrameMatch(matrixOriginal); checkReferenceFrameMatch(matrixTransformed); inverseTransform((Matrix3DReadOnly) matrixOriginal, (Matrix3DBasics) matrixTransformed); }
/** * Transforms the given tuple {@code tupleOriginal} by this matrix and add the result to * {@code tupleTransformed}. * <p> * tupleTransformed = tupleTransformed + this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to add the result to. Modified. * @throws ReferenceFrameMismatchException if either {@code tupleOriginal} or * {@code tupleTransformed} is not expressed in the same reference frame as * {@code this}. */ default void addTransform(FrameTuple3DReadOnly tupleOriginal, FixedFrameTuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleOriginal); checkReferenceFrameMatch(tupleTransformed); Matrix3DReadOnly.super.addTransform(tupleOriginal, tupleTransformed); }
/** * Packs a column of this matrix into a 3D frame tuple. * * @param column the index of the column to pack. * @param columnToPack the tuple in which the column of this matrix is stored. Modified. * @throws ArrayIndexOutOfBoundsException if {@code column} ∉ [0, 2]. * @throws ReferenceFrameMismatchException if {@code columnToPack} is not expressed in the same * reference frame as {@code this}. */ default void getColumn(int column, FixedFrameTuple3DBasics columnToPack) { checkReferenceFrameMatch(columnToPack); Matrix3DReadOnly.super.getColumn(column, columnToPack); }
/** * Packs a row of this matrix into a 3D frame tuple. * * @param row the index of the row to pack. * @param rowToPack the array in which the row of this matrix is stored. Modified. * @throws ArrayIndexOutOfBoundsException if {@code row} ∉ [0, 2]. * @throws ReferenceFrameMismatchException if {@code rowToPack} is not expressed in the same * reference frame as {@code this}. */ default void getRow(int row, FixedFrameTuple3DBasics rowToPack) { checkReferenceFrameMatch(rowToPack); Matrix3DReadOnly.super.getRow(row, rowToPack); }
/** * Transforms the given tuple {@code tupleOriginal} by this matrix and stores the result in * {@code tupleTransformed}. * <p> * tupleTransformed = this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to store the result. Modified. * @throws ReferenceFrameMismatchException if {@code tupleTransformed} is not expressed in the * same reference frame as {@code this}. */ default void transform(Tuple3DReadOnly tupleOriginal, FixedFrameTuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleTransformed); Matrix3DReadOnly.super.transform(tupleOriginal, tupleTransformed); }
/** * Transforms the given tuple {@code tupleOriginal} by this matrix and add the result to * {@code tupleTransformed}. * <p> * tupleTransformed = tupleTransformed + this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to add the result to. Modified. * @throws ReferenceFrameMismatchException if {@code tupleTransformed} is not expressed in the * same reference frame as {@code this}. */ default void addTransform(Tuple3DReadOnly tupleOriginal, FixedFrameTuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleTransformed); Matrix3DReadOnly.super.addTransform(tupleOriginal, tupleTransformed); }
/** * Transforms the given 3D matrix {@code matrixOriginal} by this matrix and stores the result in * {@code matrixTransformed}. * <p> * matrixTransformed = this * matrixOriginal * this<sup>-1</sup> * </p> * * @param matrixOriginal the matrix to transform. Not modified. * @param matrixTransformed the matrix in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code matrixOriginal} is not expressed in the same * reference frame as {@code this}. */ default void transform(FrameMatrix3DReadOnly matrixOriginal, Matrix3DBasics matrixTransformed) { checkReferenceFrameMatch(matrixOriginal); transform((Matrix3DReadOnly) matrixOriginal, matrixTransformed); }
/** * Performs the inverse of the transform to the vector part the given 4D vector * {@code vectorOriginal} by this matrix and stores the result in {@code vectorTransformed}. * <p> * vectorTransformed.s = vectorOriginal.s <br> * vectorTransformed.xyz = this<sup>-1</sup> * vectorOriginal.xyz * </p> * * @param vectorOriginal the vector to transform. Not modified. * @param vectorTransformed the vector in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code vectorTransformed} is not expressed in the * same reference frame as {@code this}. */ default void inverseTransform(Vector4DReadOnly vectorOriginal, FixedFrameVector4DBasics vectorTransformed) { checkReferenceFrameMatch(vectorTransformed); inverseTransform(vectorOriginal, (Vector4DBasics) vectorTransformed); }
/** * Transforms the vector part of the given 4D vector {@code vectorOriginal} and stores the result * into {@code vectorTransformed}. * <p> * vectorTransformed.s = vectorOriginal.s <br> * vectorTransformed.xyz = this * vectorOriginal.xyz * </p> * * @param vectorOriginal the vector to transform. Not modified. * @param vectorTransformed the vector in which the result is stored. Modified. * @throws ReferenceFrameMismatchException if {@code vectorTransformed} is not expressed in the * same reference frame as {@code this}. */ default void transform(Vector4DReadOnly vectorOriginal, FixedFrameVector4DBasics vectorTransformed) { checkReferenceFrameMatch(vectorTransformed); Matrix3DReadOnly.super.transform(vectorOriginal, vectorTransformed); }
/** * Transforms the given tuple {@code tupleOriginal} by this matrix and stores the result in * {@code tupleTransformed}. * <p> * tupleTransformed = this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to store the result. Modified. * @throws ReferenceFrameMismatchException if {@code tupleOriginal} is not expressed in the same * reference frame as {@code this}. */ default void transform(FrameTuple3DReadOnly tupleOriginal, Tuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleOriginal); Matrix3DReadOnly.super.transform(tupleOriginal, tupleTransformed); }
/** * Transforms the given tuple {@code tupleOriginal} by this matrix and stores the result in * {@code tupleTransformed}. * <p> * tupleTransformed = this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to store the result. Modified. * @param checkIfRotationInXYPlane whether this method should assert that this matrix represents * a transformation in the XY plane. * @throws NotAMatrix2DException if {@code checkIfTransformInXYPlane == true} and this matrix * does not represent a transformation in the XY plane. * @throws ReferenceFrameMismatchException if {@code tupleOriginal} is not expressed in the same * reference frame as {@code this}. */ default void transform(FrameTuple2DReadOnly tupleOriginal, Tuple2DBasics tupleTransformed, boolean checkIfRotationInXYPlane) { checkReferenceFrameMatch(tupleOriginal); Matrix3DReadOnly.super.transform(tupleOriginal, tupleTransformed, checkIfRotationInXYPlane); }
/** * Transforms the given tuple {@code tupleOriginal} by this matrix and add the result to * {@code tupleTransformed}. * <p> * tupleTransformed = tupleTransformed + this * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple to add the result to. Modified. * @throws ReferenceFrameMismatchException if {@code tupleOriginal} is not expressed in the same * reference frame as {@code this}. */ default void addTransform(FrameTuple3DReadOnly tupleOriginal, Tuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleOriginal); Matrix3DReadOnly.super.addTransform(tupleOriginal, tupleTransformed); }
/** * Transforms the given 3D matrix {@code matrixOriginal} by this matrix and stores the result in * {@code matrixTransformed}. * <p> * matrixTransformed = this * matrixOriginal * this<sup>-1</sup> * </p> * * @param matrixOriginal the matrix to transform. Not modified. * @param matrixTransformed the matrix in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code matrixTransformed} is not expressed in the * same reference frame as {@code this}. */ default void transform(Matrix3DReadOnly matrixOriginal, FixedFrameMatrix3DBasics matrixTransformed) { checkReferenceFrameMatch(matrixTransformed); transform(matrixOriginal, (Matrix3DBasics) matrixTransformed); }
/** * Transforms the vector part of the given 4D vector {@code vectorOriginal} and stores the result * into {@code vectorTransformed}. * <p> * vectorTransformed.s = vectorOriginal.s <br> * vectorTransformed.xyz = this * vectorOriginal.xyz * </p> * * @param vectorOriginal the vector to transform. Not modified. * @param vectorTransformed the vector in which the result is stored. Modified. * @throws ReferenceFrameMismatchException if {@code vectorOriginal} is not expressed in the same * reference frame as {@code this}. */ default void transform(FrameVector4DReadOnly vectorOriginal, Vector4DBasics vectorTransformed) { checkReferenceFrameMatch(vectorOriginal); Matrix3DReadOnly.super.transform(vectorOriginal, vectorTransformed); }
/** * Performs the inverse of the transform to the given tuple {@code tupleOriginal} by this matrix * and stores the result in {@code tupleTransformed}. * <p> * tupleTransformed = this<sup>-1</sup> * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code tupleOriginal} is not expressed in the same * reference frame as {@code this}. */ default void inverseTransform(FrameTuple3DReadOnly tupleOriginal, Tuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleOriginal); inverseTransform((Tuple3DReadOnly) tupleOriginal, tupleTransformed); }
/** * Performs the inverse of the transforms to the given 3D matrix {@code matrixOriginal} by this * matrix and stores the result in {@code matrixTransformed}. * <p> * matrixTransformed = this<sup>-1</sup> * matrixOriginal * this * </p> * * @param matrixOriginal the matrix to transform. Not modified. * @param matrixTransformed the matrix in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code matrixTransformed} is not expressed in the * same reference frame as {@code this}. */ default void inverseTransform(Matrix3DReadOnly matrixOriginal, FixedFrameMatrix3DBasics matrixTransformed) { checkReferenceFrameMatch(matrixTransformed); inverseTransform(matrixOriginal, (Matrix3DBasics) matrixTransformed); }
/** * Performs the inverse of the transform to the given tuple {@code tupleOriginal} by this matrix * and stores the result in {@code tupleTransformed}. * <p> * tupleTransformed = this<sup>-1</sup> * tupleOriginal * </p> * * @param tupleOriginal the tuple to transform. Not modified. * @param tupleTransformed the tuple in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code tupleTransformed} is not expressed in the * same reference frame as {@code this}. */ default void inverseTransform(Tuple3DReadOnly tupleOriginal, FixedFrameTuple3DBasics tupleTransformed) { checkReferenceFrameMatch(tupleTransformed); inverseTransform(tupleOriginal, (Tuple3DBasics) tupleTransformed); }
/** * Performs the inverse of the transforms to the given 3D matrix {@code matrixOriginal} by this * matrix and stores the result in {@code matrixTransformed}. * <p> * matrixTransformed = this<sup>-1</sup> * matrixOriginal * this * </p> * * @param matrixOriginal the matrix to transform. Not modified. * @param matrixTransformed the matrix in which the result is stored. Modified. * @throws SingularMatrixException if this matrix is not invertible. * @throws ReferenceFrameMismatchException if {@code matrixOriginal} is not expressed in the same * reference frame as {@code this}. */ default void inverseTransform(FrameMatrix3DReadOnly matrixOriginal, Matrix3DBasics matrixTransformed) { checkReferenceFrameMatch(matrixOriginal); inverseTransform((Matrix3DReadOnly) matrixOriginal, matrixTransformed); }