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        }