00001 /**************************************************************************************** 00002 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS". 00003 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE 00004 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 00005 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 00006 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 00007 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE . 00008 00009 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 00010 00011 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 00012 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other 00013 trademarks contained herein are the property of their respective owners. 00014 ****************************************************************************************/ 00015 #ifndef _XSINURBSTRIMLIST_H 00016 #define _XSINURBSTRIMLIST_H 00017 00018 #include "Template.h" 00019 00020 class CSLCurveList; 00021 00030 class XSIEXPORT CSLNurbsTrim 00031 : public CSLTemplate 00032 { 00033 public: 00035 enum EProjectionType 00036 { 00037 SI_UV, 00038 SI_WORLD 00039 }; 00040 00044 SI_Error Synchronize(); 00045 00051 CSLNurbsTrim(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00052 00054 virtual ~CSLNurbsTrim(); 00055 00059 ETemplateType Type(){ return XSI_NURBS_TRIM; } 00060 00064 SI_Bool GetBoundaryFlag(); 00065 00069 SI_Void SetBoundaryFlag( SI_Bool in_Flag ); 00070 00074 EProjectionType GetProjectionType(); 00075 00079 SI_Void SetProjectionType( EProjectionType in_Type ); 00080 00081 00083 // Trim Functionality ///////////////////////////////////////////////// 00085 00089 CSLCurveList* CurveList() { return m_pTrimCurveList; }; 00090 00091 // Connection functions 00092 CSLCurveList* ConnectCurveList(CSLCurveList*); 00093 virtual SI_Error Fix(); 00094 00095 private: 00096 CSLCurveList* m_pTrimCurveList; 00097 CSLBoolProxy m_Boundary; 00098 CSLEnumProxy<EProjectionType, SI_WORLD> m_Projection; 00099 00100 SI_Void *m_pReserved; 00101 }; 00102 00103 #endif