00001 00012 /*************************************************************************** 00013 * Copyright (C) 2007 by Jan Koci * 00014 * honza.koci@email.cz * 00015 * http://kengine.sourceforge.net/tutorial/ 00016 * * 00017 * This program is free software; you can redistribute it and/or modify * 00018 * it under the terms of the GNU General Public License as published by * 00019 * the Free Software Foundation; either version 2 of the License, or * 00020 * (at your option) any later version. * 00021 * * 00022 * This program is distributed in the hope that it will be useful, * 00023 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00025 * GNU General Public License for more details. * 00026 * * 00027 * You should have received a copy of the GNU General Public License * 00028 * along with this program; if not, write to the * 00029 * Free Software Foundation, Inc., * 00030 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 00031 ***************************************************************************/ 00032 00033 #pragma once 00034 00035 #include "K3dSphereVis.h" 00036 #include "../MathCore/K3dVector3.h" 00037 #include "../MathCore/K3dMatrix.h" 00038 #include "../MathCore/K3dQuaternion.h" 00039 #include "../MathCore/K3dMath.h" 00040 00041 class K3dSphereMove: public K3dSphereVis 00042 { 00043 K3dVector3Obj *m_pRotation; 00044 K3dVector3Obj *m_pRelPosition; 00045 K3dMatrix *m_pMatrix; 00046 K3dMatrix *m_pRotMatrix; 00047 00048 void Rotate ( const K3dVector3 &_rkAngle ); 00049 void SetRenderMatrix(); 00050 public: 00051 00052 K3dSphereMove(); 00053 ~K3dSphereMove(); 00054 00056 void Move ( const K3dVector3Obj &_rkPosition,const K3dVector3Obj &_rkAngle ); 00057 00059 K3dVector3Obj *GetRelPosition() 00060 { 00061 return m_pRelPosition; 00062 } 00063 00065 const K3dVector3Obj *GetRelPosition() const 00066 { 00067 return m_pRelPosition; 00068 } 00069 00071 void SetRelPosition ( K3dVector3Obj *_pRelPosition ) 00072 { 00073 m_pRelPosition = _pRelPosition; 00074 } 00075 00077 K3dVector3Obj *GetRotation() 00078 { 00079 return m_pRotation; 00080 } 00081 00083 void SetRotation ( K3dVector3Obj *_pRotation ) 00084 { 00085 m_pRotation = _pRotation; 00086 } 00087 00089 K3dMatrix *GetMatrix() 00090 { 00091 return m_pMatrix; 00092 } 00093 00095 void SetMatrix ( K3dMatrix *_pMatrix ) 00096 { 00097 m_pMatrix = _pMatrix; 00098 } 00099 00101 K3dMatrix *GetRotMatrix() 00102 { 00103 return m_pRotMatrix; 00104 } 00105 00107 void SetRotMatrix ( K3dMatrix *_pRotMatrix ) 00108 { 00109 m_pRotMatrix = _pRotMatrix; 00110 } 00111 };