# 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__