00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSIPOLYGONFACE_H__
00018 #define __XSIPOLYGONFACE_H__
00019
00020 #include <xsi_facet.h>
00021 #include <xsi_longarray.h>
00022 #include <xsi_pointlocatordata.h>
00023
00024 namespace XSI {
00025
00026 class CPolygonNodeRefArray;
00027 class CVertexRefArray;
00028 class CEdgeRefArray;
00029 class CPolygonFaceRefArray;
00030
00031
00051
00052
00053 class SICPPSDKDECL PolygonFace : public Facet
00054 {
00055 public:
00057 PolygonFace();
00058
00060 ~PolygonFace();
00061
00065 PolygonFace(const CRef& in_ref);
00066
00070 PolygonFace(const PolygonFace& in_obj);
00071
00076 bool IsA( siClassID in_ClassID) const;
00077
00081 siClassID GetClassID() const;
00082
00088 PolygonFace& operator=(const PolygonFace& in_obj);
00089
00095 PolygonFace& operator=(const CRef& in_ref);
00096
00100 CPolygonNodeRefArray GetNodes() const;
00101
00105 CVertexRefArray GetVertices() const;
00106
00110 CEdgeRefArray GetEdges() const;
00111
00122 CVertexRefArray GetNeighborVertices(LONG in_lDistance = 1) const;
00123
00134 CEdgeRefArray GetNeighborEdges(LONG in_lDistance = 1) const;
00135
00146 CPolygonFaceRefArray GetNeighborPolygons(LONG in_lDistance = 1) const;
00147
00157 CPolygonFaceRefArray GrowNeighborPolygons(LONG in_lDistance = 1) const;
00158
00215 CLongArray GetTriangleSubIndexArray() const;
00216
00217 private:
00218 PolygonFace * operator&() const;
00219 PolygonFace * operator&();
00220 };
00221
00222
00261
00262 class SICPPSDKDECL CPolygonFaceRefArray : public CFacetRefArray
00263 {
00264 public:
00265 CPolygonFaceRefArray();
00266
00270 CPolygonFaceRefArray( const CPolygonFaceRefArray& in_array );
00271
00276 CRef GetItem( LONG in_index ) const;
00277
00282 CRef GetItem( const CString& in_name ) const;
00283
00287 LONG GetCount() const;
00288
00292 bool IsValid() const;
00293
00297 MATH::CVector3Array GetNormalArray() const;
00298
00305 CVertexRefArray GetNeighborVertices(LONG in_lDistance = 1) const;
00306
00313 CEdgeRefArray GetNeighborEdges(LONG in_lDistance = 1) const;
00314
00321 CPolygonFaceRefArray GetNeighborPolygons(LONG in_lDistance = 1) const;
00322
00330 CPolygonFaceRefArray GrowNeighborPolygons(LONG in_lDistance = 1) const;
00331
00336 MATH::CVector3Array GetPolygonNodeNormalArray() const;
00337
00345 CLongArray GetPolygonNodePolygonFaceIndexArray() const;
00346 };
00347
00348 };
00349
00350 #endif // __XSIPOLYGONFACE_H__