xsi_point.h
Go to the documentation of this file.
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__