00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSISEGMENT_H__
00018 #define __XSISEGMENT_H__
00019
00020 #include <xsi_siobject.h>
00021 #include <xsi_math.h>
00022 #include <xsi_longarray.h>
00023
00024 namespace XSI {
00025
00026 class CPointRefArray;
00027 class CSampleRefArray;
00028 class SubComponent;
00029 class Segment;
00030
00031
00062
00063
00064 class SICPPSDKDECL Segment : public SIObject
00065 {
00066 public:
00068 Segment();
00069
00071 ~Segment();
00072
00076 Segment(const CRef& in_ref);
00077
00081 Segment(const Segment& in_obj);
00082
00087 bool IsA( siClassID in_ClassID) const;
00088
00092 siClassID GetClassID() const;
00093
00099 Segment& operator=(const Segment& in_obj);
00100
00106 Segment& operator=(const CRef& in_ref);
00107
00111 CPointRefArray GetPoints() const;
00112
00116 LONG GetIndex() const;
00117
00121 CSampleRefArray GetSamples() const;
00122
00126 SubComponent GetSubComponent() const;
00127
00134 Segment Navigate(siNavigateComponentType in_siNavigate) const;
00135
00136 private:
00137 Segment * operator&() const;
00138 Segment * operator&();
00139 };
00140
00141
00173
00174
00175 class SICPPSDKDECL CSegmentRefArray : public CRefArray
00176 {
00177 public:
00178 CSegmentRefArray();
00179
00183 CSegmentRefArray( const CSegmentRefArray& in_array );
00184
00189 CRef GetItem( LONG in_index ) const;
00190
00195 CRef GetItem( const CString& in_name ) const;
00196
00200 LONG GetCount() const;
00201
00205 bool IsValid() const;
00206
00210 MATH::CVector3Array GetNormalArray() const;
00211
00215 CLongArray GetIndexArray() const;
00216
00220 SubComponent GetSubComponent() const;
00221
00228 CSegmentRefArray Navigate(siNavigateComponentType in_siNavigate) const;
00229
00230 private:
00231 void* m_ptr;
00232 };
00233
00234 };
00235
00236 #endif // __XSISEGMENT_H__