XSIClusterInfo.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 _XSICLUSTERINFO_H
00013 #define _XSICLUSTERINFO_H
00014 
00015 #include "Template.h"
00016 
00020 class XSIEXPORT CSLXSIClusterInfo
00021     : public CSLTemplate
00022 {
00023 // Methods
00024 public:
00025 
00027     enum EClusterType
00028     {
00029         SI_POLYGON,
00030         SI_FACE,
00031         SI_SURFACE_CURVE,
00032         SI_KNOT_CURVE_U,
00033         SI_KNOT_CURVE_V,
00034         SI_BOUNDARY,
00035         SI_VERTEX,
00036         SI_EDGE,
00037         SI_POLYGON_NODE,
00038         SI_SAMPLED_POINT,
00039         SI_KNOT,
00040         SI_TRIM_CURVE,
00041         SI_ISO_LINE_U,
00042         SI_ISO_LINE_V,
00043         SI_ISO_POINT,
00044         SI_ISO_LINE,
00045         SI_SUB_SURFACE,
00046         SI_SUB_CURVE,
00047     };
00048 
00050 
00056     CSLXSIClusterInfo
00057     (
00058         CSLScene* in_pScene,
00059         CSLModel* in_pModel,
00060         CdotXSITemplate *in_pTemplate,
00061         EClusterType in_DefaultEClusterType = SI_VERTEX
00062     );
00063 
00065     virtual ~CSLXSIClusterInfo();
00066 
00068 
00071     void SetClusterType( EClusterType in_Type ) { m_ClusterType = in_Type; };
00072 
00074 
00077     EClusterType GetClusterType();
00078 
00079     virtual CSLTemplate::ETemplateType Type();
00080 
00081     virtual SI_Error Synchronize();
00082 
00083     // Members
00084 private:
00085     CSLStrEnumProxy<EClusterType, SI_SUB_CURVE> m_ClusterType;
00086 
00087     // This member is here to allow future improvement of the class.
00088     SI_Void *m_pReserved;
00089 };
00090 
00091 #endif
00092