00001 /*========================================================================= 00002 00003 Program: Open IGT Link Library 00004 Module: $HeadURL: http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/Source/igtlTransformMessage.h $ 00005 Language: C++ 00006 Date: $Date: 2008-12-22 19:05:42 -0500 (Mon, 22 Dec 2008) $ 00007 Version: $Revision: 3460 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notices for more information. 00014 00015 =========================================================================*/ 00016 00017 #ifndef __igtlTransformMessage_h 00018 #define __igtlTransformMessage_h 00019 00020 #include "igtlObject.h" 00021 //#include "igtlMacros.h" 00022 #include "igtlMath.h" 00023 #include "igtlMessageBase.h" 00024 00025 namespace igtl 00026 { 00027 00028 class IGTLCommon_EXPORT TransformMessage: public MessageBase 00029 { 00030 00031 public: 00032 00033 typedef TransformMessage Self; 00034 typedef MessageBase Superclass; 00035 typedef SmartPointer<Self> Pointer; 00036 typedef SmartPointer<const Self> ConstPointer; 00037 00038 igtlTypeMacro(igtl::TransformMessage, igtl::MessageBase); 00039 igtlNewMacro(igtl::TransformMessage); 00040 00041 00042 public: 00043 00044 void SetPosition(float p[3]); 00045 void GetPosition(float p[3]); 00046 00047 void SetPosition(float px, float py, float pz); 00048 void GetPosition(float* px, float* py, float* pz); 00049 00050 void SetNormals(float o[3][3]); 00051 void GetNormals(float o[3][3]); 00052 00053 void SetNormals(float t[3], float s[3], float n[3]); 00054 void GetNormals(float t[3], float s[3], float n[3]); 00055 00056 void SetMatrix(Matrix4x4& mat); 00057 void GetMatrix(Matrix4x4& mat); 00058 00059 00060 protected: 00061 TransformMessage(); 00062 ~TransformMessage(); 00063 00064 protected: 00065 00066 virtual int GetBodyPackSize(); 00067 virtual int PackBody(); 00068 virtual int UnpackBody(); 00069 00070 Matrix4x4 matrix; 00071 00072 unsigned char* m_Transform; 00073 00074 }; 00075 00076 00077 } // namespace igtl 00078 00079 #endif // _igtlTransformMessage_h 00080 00081 00082 00083