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