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
00239 CStatus PutPositionArray(const MATH::CVector3Array& in_points);
00240
00244 MATH::CVector3Array GetNormalArray() const;
00245
00249 CLongArray GetIndexArray() const;
00250
00254 SubComponent GetSubComponent() const;
00255
00264 CPointRefArray Navigate(siNavigateComponentType in_siNavigate) const;
00265
00266 private:
00267 void* m_ptr;
00268 };
00269
00270 };
00271
00272 #endif // __XSIPOINT_H__