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 
00222     ULONG GetTurnInternalEdgeOffset() const;
00223 
00224     private:
00225     PolygonFace * operator&() const;
00226     PolygonFace * operator&();
00227 };
00228 
00229 //*****************************************************************************
00268 //*****************************************************************************
00269 class SICPPSDKDECL CPolygonFaceRefArray : public CFacetRefArray
00270 {
00271     public:
00272     CPolygonFaceRefArray();
00273 
00277     CPolygonFaceRefArray( const CPolygonFaceRefArray& in_array );
00278 
00283     CRef GetItem( LONG in_index ) const;
00284 
00289     CRef GetItem( const CString& in_name ) const;
00290 
00294     LONG GetCount() const;
00295 
00299     bool IsValid() const;
00300 
00304     MATH::CVector3Array GetNormalArray() const;
00305 
00312     CVertexRefArray GetNeighborVertices(LONG in_lDistance = 1) const;
00313 
00320     CEdgeRefArray GetNeighborEdges(LONG in_lDistance = 1) const;
00321 
00328     CPolygonFaceRefArray GetNeighborPolygons(LONG in_lDistance = 1) const;
00329 
00337     CPolygonFaceRefArray GrowNeighborPolygons(LONG in_lDistance = 1) const;
00338 
00343     MATH::CVector3Array GetPolygonNodeNormalArray() const;
00344 
00352     CLongArray GetPolygonNodePolygonFaceIndexArray() const;
00353 };
00354 
00355 };
00356 
00357 #endif // __XSIPOLYGONFACE_H__