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__