00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIRENDERHAIRACCESSOR_H__ 00018 #define __XSIRENDERHAIRACCESSOR_H__ 00019 00020 #include <xsi_base.h> 00021 #include <xsi_status.h> 00022 00023 namespace XSI { 00024 00025 class CFloatArray; 00026 class CLongArray; 00027 00028 //***************************************************************************** 00190 //***************************************************************************** 00191 00192 class SICPPSDKDECL CRenderHairAccessor : public CBase 00193 { 00194 public: 00196 CRenderHairAccessor(); 00197 00199 ~CRenderHairAccessor(); 00200 00204 CRenderHairAccessor(const CRef& in_ref); 00205 00209 CRenderHairAccessor(const CRenderHairAccessor& in_obj); 00210 00215 bool IsA( siClassID in_ClassID) const; 00216 00220 siClassID GetClassID() const; 00221 00227 CRenderHairAccessor& operator=(const CRenderHairAccessor& in_obj); 00228 00234 CRenderHairAccessor& operator=(const CRef& in_ref); 00235 00247 bool Next(); 00248 00253 CStatus Reset(); 00254 00264 LONG GetRequestedChunkSize() const; 00265 00273 LONG GetRequestedHairCount() const; 00274 00282 LONG GetChunkHairCount() const; 00283 00293 CStatus GetVerticesCount(CLongArray& out_values) const; 00294 00306 CStatus GetVertexPositions(CFloatArray& out_values) const; 00307 00319 CStatus GetVertexRadiusValues(CFloatArray& out_values) const; 00320 00327 CStatus GetHairSurfaceNormalValues(CFloatArray &out_values) const; 00328 00333 LONG GetUVCount() const; 00334 00339 LONG GetVertexColorCount() const; 00340 00345 LONG GetWeightMapCount() const; 00346 00354 CString GetUVName( LONG in_nIdx ) const; 00355 00363 CString GetVertexColorName( LONG in_nIdx ) const; 00364 00372 CString GetWeightMapName( LONG in_nIdx ) const; 00373 00387 CStatus GetUVValues( LONG in_nIdx, CFloatArray& out_values ) const; 00388 00402 CStatus GetVertexColorValues( LONG in_nIdx, CFloatArray& out_values ) const; 00403 00417 CStatus GetWeightMapValues( LONG in_nIdx, CFloatArray& out_values ) const; 00418 00419 private: 00420 CRenderHairAccessor * operator&() const; 00421 CRenderHairAccessor * operator&(); 00422 }; 00423 00424 }; 00425 #endif // __XSIRENDERHAIRACCESSOR_H__