Vector3D.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 __VECTOR3D_H__
00013 #define __VECTOR3D_H__
00014 
00015 #include "SL_Float.h"   // CSLFloatProxy
00016 #include <SIBCVector.h> // CSIBCVector3D
00017 class CCOLLADATemplate;
00018 class CSLCOLLADAScene;
00019 
00022 class XSIEXPORT CSLVector3DProxy
00023 {
00024 public:
00026 
00032     CSLVector3DProxy
00033     (
00034         CdotXSITemplate *in_pTemplate,
00035         SI_Long in_lIndexX,
00036         SI_Long in_lIndexY,
00037         SI_Long in_lIndexZ
00038     );
00039 
00041     CSLVector3DProxy& operator =(const CSIBCVector3D &in_rVector);
00042 
00044     operator CSIBCVector3D();
00045 
00047     CSLFloatProxy& X();
00048 
00050     CSLFloatProxy& Y();
00051 
00053     CSLFloatProxy& Z();
00054 
00056     void    Connect ( CdotXSITemplate *in_pTemplate,
00057                         SI_Long in_lIndexX,
00058                         SI_Long in_lIndexY,
00059                         SI_Long in_lIndexZ );
00060 
00061     void    Connect ( CSLTemplate *in_pTemplate,
00062                         CCOLLADATemplate *in_pOwner,
00063                         SI_Long in_lIndexX,
00064                         SI_Long in_lIndexY,
00065                         SI_Long in_lIndexZ,
00066                         CSLCOLLADAScene* in_pScene,
00067                         int in_CurveType[],
00068                         const char* in_XSIName[],
00069                         const char* in_zsSuffixX = "X",
00070                         const char* in_zsSuffixY = "Y",
00071                         const char* in_zsSuffixZ = "Z",
00072                         const char* in_szSID = NULL);
00073 
00074 protected:
00075     CSLFloatProxy m_fX;
00076     CSLFloatProxy m_fY;
00077     CSLFloatProxy m_fZ;
00078 };
00079 
00080 #endif //__VECTOR3D_H__