xsi_polygonface.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 __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__