Matrix4x4.h

00001 /****************************************************************************************
00002 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00003 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 
00004 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00005 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00006 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00007 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 
00008  
00009 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00010 
00011 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00012 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00013 trademarks contained herein are the property of their respective owners. 
00014 ****************************************************************************************/
00015 #ifndef __MATRIX4X4_H__
00016 #define __MATRIX4X4_H__
00017 
00018 #include "SL_Float.h"   // CSLFloatProxy
00019 #include <SIBCMatrix.h> // CSIBCMatrix4x4
00020 
00025 class XSIEXPORT CSLMatrix4x4Proxy
00026 {
00027 public:
00028     CSLMatrix4x4Proxy
00029     ( 
00030         CdotXSITemplate *in_pTemplate,
00031         SI_Long in_lIndex11,
00032         SI_Long in_lIndex12,
00033         SI_Long in_lIndex13,
00034         SI_Long in_lIndex14,
00035         SI_Long in_lIndex21,
00036         SI_Long in_lIndex22,
00037         SI_Long in_lIndex23,
00038         SI_Long in_lIndex24,
00039         SI_Long in_lIndex31,
00040         SI_Long in_lIndex32,
00041         SI_Long in_lIndex33,
00042         SI_Long in_lIndex34,
00043         SI_Long in_lIndex41,
00044         SI_Long in_lIndex42,
00045         SI_Long in_lIndex43,
00046         SI_Long in_lIndex44
00047     );
00048 
00050     CSLMatrix4x4Proxy& operator =(const CSIBCMatrix4x4 &in_rMatrix);
00051 
00053     operator CSIBCMatrix4x4();
00054 
00056     CSLFloatProxy& Element(SI_Long in_lColumn, SI_Long in_lRow);
00057 
00058 protected:
00059     CSLFloatProxy m_f11;
00060     CSLFloatProxy m_f12;
00061     CSLFloatProxy m_f13;
00062     CSLFloatProxy m_f14;
00063     CSLFloatProxy m_f21;
00064     CSLFloatProxy m_f22;
00065     CSLFloatProxy m_f23;
00066     CSLFloatProxy m_f24;
00067     CSLFloatProxy m_f31;
00068     CSLFloatProxy m_f32;
00069     CSLFloatProxy m_f33;
00070     CSLFloatProxy m_f34;
00071     CSLFloatProxy m_f41;
00072     CSLFloatProxy m_f42;
00073     CSLFloatProxy m_f43;
00074     CSLFloatProxy m_f44;
00075 };
00076 
00077 #endif //__MATRIX4X4_H__