# 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__