001 package com.croftsoft.core.math.quat; 002 003 import com.croftsoft.core.math.axis.AxisAngle; 004 005 /*********************************************************************** 006 * Quat test methods. 007 * 008 * @version 009 * $Id: QuatTest.java,v 1.6 2008/09/20 04:12:46 croft Exp $ 010 * @since 011 * 2008-05-02 012 * @author 013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 014 ***********************************************************************/ 015 016 public final class QuatTest 017 //////////////////////////////////////////////////////////////////////// 018 //////////////////////////////////////////////////////////////////////// 019 { 020 021 public static void main ( final String [ ] args ) 022 //////////////////////////////////////////////////////////////////////// 023 { 024 System.out.println ( test ( ) ); 025 } 026 027 public static boolean test ( ) 028 //////////////////////////////////////////////////////////////////////// 029 { 030 return testMultiply ( ); 031 } 032 033 public static boolean testMultiply ( ) 034 //////////////////////////////////////////////////////////////////////// 035 { 036 final Quat quatX90 = QuatLib.fromEulerAngles ( 90, 0, 0 ); 037 038 System.out.println ( "X90 ...........: " + quatX90 ); 039 040 final Quat quatX180 = QuatLib.fromEulerAngles ( 180, 0, 0 ); 041 042 System.out.println ( "X180 ..........: " + quatX180 ); 043 044 final Quat quatX90X90 = quatX90.multiply ( quatX90 ); 045 046 System.out.println ( "X90,X90 .......: " + quatX90X90 ); 047 048 final Quat quatY90 = QuatLib.fromEulerAngles ( 0, 90, 0 ); 049 050 System.out.println ( "Y90 ...........: " + quatY90 ); 051 052 final Quat quatZ90 = QuatLib.fromEulerAngles ( 0, 0, 90 ); 053 054 System.out.println ( "Z90 ...........: " + quatZ90 ); 055 056 final Quat quatX90Y90Z90 = QuatLib.fromEulerAngles ( 90, 90, 90 ); 057 058 System.out.println ( "X90,Y90,Z90 ...: " + quatX90Y90Z90 ); 059 060 final AxisAngle axisAngle = quatX90Y90Z90.toAxisAngle ( ); 061 062 System.out.printf ( 063 "rotation degrees = %1$1.3f\n", 064 new Double ( axisAngle.getDegrees ( ) ) ); 065 066 System.out.printf ( 067 "rotation axis = %1$1.3f %2$1.3f %3$1.3f\n", 068 new Double ( axisAngle.getX ( ) ), 069 new Double ( axisAngle.getY ( ) ), 070 new Double ( axisAngle.getZ ( ) ) ); 071 072 return quatX180.matches ( quatX90X90, 0.001 ); 073 } 074 075 //////////////////////////////////////////////////////////////////////// 076 // private methods 077 //////////////////////////////////////////////////////////////////////// 078 079 private QuatTest ( ) 080 //////////////////////////////////////////////////////////////////////// 081 { 082 // empty 083 } 084 085 //////////////////////////////////////////////////////////////////////// 086 //////////////////////////////////////////////////////////////////////// 087 }