Shape.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 _SHAPE_H
00013 #define _SHAPE_H
00014 
00015 #include "BaseShape.h"
00016 
00021 class XSIEXPORT CSLShape
00022     : public CSLBaseShape
00023 {
00024 public:
00025 
00033     CSLShape(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate, EShapeType in_Type);
00034 
00037     virtual ~CSLShape();
00038 
00042     CSLVector2DArray*               CreateUVCoords();
00043 
00047     CSLIndexedVector2DArray*        CreateIndexedUVCoords();
00048 
00052     SI_Int                          GetUVCoordCount();
00053 
00057     CSLVector2DArray*               GetUVCoordList();
00058 
00062     CSIBCVector2D*                  GetUVCoordListPtr();
00063 
00067     CSLIndexedVector2DArray*        GetIndexedUVCoordList();
00068 
00072     SLIndexedVector2D*              GetIndexedUVCoordListPtr();
00073 
00077     SI_Error                        DestroyUVCoords();
00078 
00082     virtual ETemplateType           Type() { return SI_SHAPE; };
00083 
00088     virtual SI_Error                Synchronize();
00089 
00090 private:
00091     CSLVector2DArray*               m_pUVCoords;
00092     CSLIndexedVector2DArray*        m_pIndexedUVCoords;
00093     CSLIntProxy*                    m_iNbUVCoords;
00094     CSLStringProxy*                 m_pUVStringProxy;
00095 
00096     void *m_pReserved;  // reserved for future extension
00097 };
00098 
00099 #endif
00100