00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIPOINT_H__ 00018 #define __XSIPOINT_H__ 00019 00020 #include <xsi_siobject.h> 00021 #include <xsi_math.h> 00022 #include <xsi_longarray.h> 00023 00024 namespace XSI { 00025 00026 class CSampleRefArray; 00027 class SubComponent; 00028 class Point; 00029 class CPointRefList; 00030 00031 //***************************************************************************** 00063 //***************************************************************************** 00064 00065 class SICPPSDKDECL Point : public SIObject 00066 { 00067 public: 00069 Point(); 00070 00072 ~Point(); 00073 00077 Point(const CRef& in_ref); 00078 00082 Point(const Point& in_obj); 00083 00088 bool IsA( siClassID in_ClassID) const; 00089 00093 siClassID GetClassID() const; 00094 00100 Point& operator=(const Point& in_obj); 00101 00107 Point& operator=(const CRef& in_ref); 00108 00112 MATH::CVector3 GetPosition() const; 00113 00120 CStatus PutPosition(const MATH::CVector3& in_vect); 00121 00126 MATH::CVector3 GetNormal(bool& io_bValid) const; 00127 00131 LONG GetIndex() const; 00132 00136 CSampleRefArray GetSamples() const; 00137 00141 SubComponent GetSubComponent() const; 00142 00150 Point Navigate(siNavigateComponentType in_siNavigate) const; 00151 00152 private: 00153 Point * operator&() const; 00154 Point * operator&(); 00155 }; 00156 00157 //***************************************************************************** 00196 //***************************************************************************** 00197 class SICPPSDKDECL CPointRefArray : public CRefArray 00198 { 00199 public: 00200 CPointRefArray(); 00201 00205 CPointRefArray( const CPointRefArray& in_array ); 00206 00211 CRef GetItem( LONG in_index ) const; 00212 00217 CRef GetItem( const CString& in_name ) const; 00218 00222 LONG GetCount() const; 00223 00227 bool IsValid() const; 00228 00232 MATH::CVector3Array GetPositionArray() const; 00233 00240 CStatus PutPositionArray(const MATH::CVector3Array& in_points); 00241 00245 MATH::CVector3Array GetNormalArray() const; 00246 00250 CLongArray GetIndexArray() const; 00251 00255 SubComponent GetSubComponent() const; 00256 00265 CPointRefArray Navigate(siNavigateComponentType in_siNavigate) const; 00266 00267 private: 00268 void* m_ptr; 00269 }; 00270 00271 }; 00272 00273 #endif // __XSIPOINT_H__