# 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