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__