001 package com.croftsoft.core.math.quat; 002 003 import com.croftsoft.core.math.axis.AxisAngleMut; 004 import com.croftsoft.core.math.matrix.Matrix3x3Mut; 005 006 /*********************************************************************** 007 * Accessor interface for a quaternion. 008 * 009 * @version 010 * $Id: Quat.java,v 1.8 2008/05/09 18:35:56 croft Exp $ 011 * @since 012 * 2008-05-02 013 * @author 014 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 015 ***********************************************************************/ 016 017 public interface Quat 018 //////////////////////////////////////////////////////////////////////// 019 //////////////////////////////////////////////////////////////////////// 020 { 021 022 // accessor methods 023 024 double getW ( ); 025 026 double getX ( ); 027 028 double getY ( ); 029 030 double getZ ( ); 031 032 // operand methods 033 034 boolean matches ( Quat quat ); 035 036 boolean matches ( 037 Quat quat, 038 double tolerance ); 039 040 // calculation methods 041 042 double dotProduct ( Quat quat ); 043 044 QuatMut multiply ( Quat quat ); 045 046 AxisAngleMut toAxisAngle ( ); 047 048 Matrix3x3Mut toRotationMatrix ( ); 049 050 //////////////////////////////////////////////////////////////////////// 051 //////////////////////////////////////////////////////////////////////// 052 }