00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSITRIANGLE_H__
00018 #define __XSITRIANGLE_H__
00019
00020 #include <xsi_siobject.h>
00021 #include <xsi_math.h>
00022 #include <xsi_vertexcolor.h>
00023 #include <xsi_uv.h>
00024 #include <xsi_longarray.h>
00025
00026 namespace XSI {
00027
00028 class CTriangleRefArray;
00029 class CTriangleVertexRefArray;
00030
00031
00082
00083
00084 class SICPPSDKDECL Triangle : public SIObject
00085 {
00086 public:
00088 Triangle();
00089
00091 ~Triangle();
00092
00096 Triangle(const CRef& in_ref);
00097
00101 Triangle(const Triangle& in_obj);
00102
00107 bool IsA( siClassID in_ClassID) const;
00108
00112 siClassID GetClassID() const;
00113
00119 Triangle& operator=(const Triangle& in_obj);
00120
00126 Triangle& operator=(const CRef& in_ref);
00127
00132 CTriangleRefArray GetNeighborTriangles() const;
00133
00137 CTriangleVertexRefArray GetPoints() const;
00138
00142 LONG GetIndex() const;
00143
00147 LONG GetPolygonIndex() const;
00148
00153 MATH::CVector3Array GetPositionArray() const;
00154
00159 MATH::CVector3Array GetPolygonNodeNormalArray() const;
00160
00164 CVertexColorArray GetColorArray() const;
00165
00169 CUVArray GetUVArray() const;
00170
00174 CLongArray GetIndexArray() const;
00175
00176 private:
00177 Triangle * operator&() const;
00178 Triangle * operator&();
00179 };
00180
00181
00213
00214 class SICPPSDKDECL CTriangleRefArray : public CRefArray
00215 {
00216 public:
00217 CTriangleRefArray();
00218
00222 CTriangleRefArray( const CTriangleRefArray& in_array );
00223
00228 CRef GetItem( LONG in_index ) const;
00229
00234 CRef GetItem( const CString& in_name ) const;
00235
00239 LONG GetCount() const;
00240
00244 bool IsValid() const;
00245
00249 MATH::CVector3Array GetPositionArray() const;
00250
00254 MATH::CVector3Array GetPolygonNodeNormalArray() const;
00255
00259 CVertexColorArray GetColorArray() const;
00260
00264 CUVArray GetUVArray() const;
00265
00269 CLongArray GetIndexArray() const;
00270
00271 private:
00272 void* m_ptr;
00273 };
00274
00275
00276 };
00277
00278 #endif // __XSITRIANGLE_H__