xsi_point.h Source File
 
 
 
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 
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__