cgma
|
00001 #ifndef CUBITQUADFACETDATA_HPP 00002 #define CUBITQUADFACETDATA_HPP 00003 00004 #include "CubitQuadFacet.hpp" 00005 class CubitFacet; 00006 class CubitFacetEdge; 00007 class CubitPoint; 00008 00009 class CubitQuadFacetData : public CubitQuadFacet 00010 { 00011 private: 00012 CubitFacet *myTriangleFacets[2]; 00013 int triToQuadIndex[2][3]; 00014 00015 public: 00016 CubitQuadFacetData( CubitFacet *tri_facets[2], 00017 CubitPoint *points[4] ); 00018 CubitQuadFacetData( CubitPoint *points[4] ); 00019 CubitQuadFacetData( CubitPoint *point0, CubitPoint *point1, 00020 CubitPoint *point2, CubitPoint *point3 ); 00021 CubitQuadFacetData( CubitFacetEdge *e0, CubitFacetEdge *e1, 00022 CubitFacetEdge *e2, CubitFacetEdge *e3 ); 00023 ~CubitQuadFacetData(); 00024 00025 int tri_to_quad_index( int tri_index, int pt_index ) 00026 { return triToQuadIndex[ tri_index ][ pt_index ]; } 00027 // return the point index on the quad facet gicen one of its triangles 00028 // and the point index on the triangle (indecies start at 0) 00029 00030 CubitFacet *get_tri_facet( int index ) 00031 { return myTriangleFacets[ index ]; } 00032 // return one of the underlying triangles (index should be 0 or 1) 00033 CubitFacet *get_tri_facet_at_point( CubitPoint *point_ptr ); 00034 // return the underlying triangle of which the point_ptr is a vertex 00035 00036 void remove_tri_facets( ); 00037 // used prior to delete if tri facets have already been deleted by 00038 // another mechanism. 00039 00040 void points( CubitPoint *points[4] ); 00041 // return all four point 00042 void points( DLIList<CubitPoint*> &point_list ) 00043 {CubitQuadFacet::points(point_list);} 00044 //implement the other points function... just call parent. 00045 CubitPoint *point( int index ); 00046 // return the specified point 00047 CubitFacetEdge *edge( int index ); 00048 // return the specified edge 00049 00050 }; 00051 00052 #endif 00053 00054