XSIClusterInfo.h

00001 //***************************************************************************************
00002 //
00003 // File supervisor: Softimage 3D Games & 3D Bridge team
00004 //
00005 // (c) Copyright 2001-2005 Avid Technology, Inc. . All rights reserved.
00006 //
00007 //***************************************************************************************
00008 
00009 /****************************************************************************************
00010 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00011 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE
00012 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00013 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00014 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00015 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE .
00016 
00017 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00018 
00019 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00020 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00021 trademarks contained herein are the property of their respective owners. 
00022 ****************************************************************************************/
00023 
00024 #ifndef _XSICLUSTERINFO_H
00025 #define _XSICLUSTERINFO_H
00026 
00027 #include "Template.h"
00028 
00034 class XSIEXPORT CSLXSIClusterInfo
00035     : public CSLTemplate
00036 {
00037 // Methods
00038 public:
00039 
00041     enum EClusterType
00042     {
00043         SI_POLYGON,
00044         SI_FACE,
00045         SI_SURFACE_CURVE,
00046         SI_KNOT_CURVE_U,
00047         SI_KNOT_CURVE_V,
00048         SI_BOUNDARY,
00049         SI_VERTEX,
00050         SI_EDGE,
00051         SI_POLYGON_NODE,
00052         SI_SAMPLED_POINT,
00053         SI_KNOT,
00054         SI_TRIM_CURVE,
00055         SI_ISO_LINE_U,
00056         SI_ISO_LINE_V,
00057         SI_ISO_POINT,
00058         SI_ISO_LINE,
00059         SI_SUB_SURFACE,
00060         SI_SUB_CURVE,
00061     };
00062 
00064 
00070     CSLXSIClusterInfo
00071     ( 
00072         CSLScene* in_pScene,
00073         CSLModel* in_pModel,
00074         CdotXSITemplate *in_pTemplate,
00075         EClusterType in_DefaultEClusterType = SI_VERTEX
00076     );
00077 
00079     virtual ~CSLXSIClusterInfo();
00080 
00082 
00085     void SetClusterType( EClusterType in_Type ) { m_ClusterType = in_Type; };
00086 
00088 
00091     EClusterType GetClusterType();
00092 
00093     virtual CSLTemplate::ETemplateType Type();
00094 
00095     virtual SI_Error Synchronize();
00096 
00097     // Members
00098 private:
00099     CSLStrEnumProxy<EClusterType, SI_SUB_CURVE> m_ClusterType;
00100 
00101     // This member is here to allow future improvement of the class.
00102     SI_Void *m_pReserved;
00103 };
00104 
00105 #endif
00106