Matrix4x4.h

00001 //***************************************************************************************
00002 //
00003 // File supervisor: Crosswalk team
00004 //
00005 // Copyright 2008 Autodesk, Inc.  All rights reserved.  
00006 // Use of this software is subject to the terms of the Autodesk license agreement 
00007 // provided at the time of installation or download, or which otherwise accompanies 
00008 // this software in either electronic or hard copy form.
00009 //
00010 //***************************************************************************************
00011 
00012 #ifndef __MATRIX4X4_H__
00013 #define __MATRIX4X4_H__
00014 
00015 #include "SL_Float.h"   // CSLFloatProxy
00016 #include <SIBCMatrix.h> // CSIBCMatrix4x4
00017 
00022 class XSIEXPORT CSLMatrix4x4Proxy
00023 {
00024 public:
00025     CSLMatrix4x4Proxy
00026     ( 
00027         CdotXSITemplate *in_pTemplate,
00028         SI_Long in_lIndex11,
00029         SI_Long in_lIndex12,
00030         SI_Long in_lIndex13,
00031         SI_Long in_lIndex14,
00032         SI_Long in_lIndex21,
00033         SI_Long in_lIndex22,
00034         SI_Long in_lIndex23,
00035         SI_Long in_lIndex24,
00036         SI_Long in_lIndex31,
00037         SI_Long in_lIndex32,
00038         SI_Long in_lIndex33,
00039         SI_Long in_lIndex34,
00040         SI_Long in_lIndex41,
00041         SI_Long in_lIndex42,
00042         SI_Long in_lIndex43,
00043         SI_Long in_lIndex44
00044     );
00045 
00047     CSLMatrix4x4Proxy& operator =(const CSIBCMatrix4x4 &in_rMatrix);
00048 
00050     operator CSIBCMatrix4x4();
00051 
00053     CSLFloatProxy& Element(SI_Long in_lColumn, SI_Long in_lRow);
00054 
00055 protected:
00056     CSLFloatProxy m_f11;
00057     CSLFloatProxy m_f12;
00058     CSLFloatProxy m_f13;
00059     CSLFloatProxy m_f14;
00060     CSLFloatProxy m_f21;
00061     CSLFloatProxy m_f22;
00062     CSLFloatProxy m_f23;
00063     CSLFloatProxy m_f24;
00064     CSLFloatProxy m_f31;
00065     CSLFloatProxy m_f32;
00066     CSLFloatProxy m_f33;
00067     CSLFloatProxy m_f34;
00068     CSLFloatProxy m_f41;
00069     CSLFloatProxy m_f42;
00070     CSLFloatProxy m_f43;
00071     CSLFloatProxy m_f44;
00072 };
00073 
00074 #endif //__MATRIX4X4_H__