xsi_polygonface.h Source File
 
 
 
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__