Envelope.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _ENVELOPE_H
00015 #define _ENVELOPE_H
00016 
00017 #include "Template.h"
00018 
00019 
00020 
00022 struct SLVertexWeight
00023 {
00024     SI_Float m_fVertexIndex;
00025     SI_Float m_fWeight;
00026 };
00027 
00028 #ifndef _SL_VERTEX_WEIGHT_ARRAY_PROXY_EXPORT_
00029 #define _SL_VERTEX_WEIGHT_ARRAY_PROXY_EXPORT_
00030 
00031 //XSITEMPLATEEXP template class XSIEXPORT CSLArrayProxy<SLVertexWeight, SI_Float, 2>;
00032 
00033 #endif // _SL_VERTEX_WEIGHT_ARRAY_PROXY_EXPORT_
00034 
00035 
00036 
00042 class XSIEXPORT CSLEnvelope
00043     : public CSLTemplate
00044 {
00045 public:
00048     typedef CSLArrayProxy<SLVertexWeight, SI_Float, 2> CSLVertexWeightArray;
00049 
00056     CSLEnvelope(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00057 
00060     virtual ~CSLEnvelope();
00061 
00065     CSLModel* GetDeformer();
00066 
00070     SI_Void SetDeformer(CSLModel* in_pNewDeformer);
00071 
00075     CSLModel* GetEnvelope();
00076 
00080     SI_Void SetEnvelope(CSLModel* in_pNewEnvelope);
00081 
00085     SI_Int GetVertexWeightCount();
00086 
00090     CSLVertexWeightArray* GetVertexWeightList();
00091 
00095     SLVertexWeight* GetVertexWeightListPtr();
00096 
00100     virtual SI_Error Synchronize();
00101 
00105     virtual ETemplateType Type() { return SI_ENVELOPE; }
00106 
00107 private:
00108     CSLModel* m_pEnvelope;
00109     CSLModel* m_pDeformer;
00110     CSLVertexWeightArray m_VertexWeights;
00111 
00112     void *m_pReserved;  // reserved for future extension
00113 };
00114 
00115 #endif
00116