cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : OctreeFacetPointData.hpp 00003 // 00004 // Purpose : Holds Intersection Data 00005 // 00006 // Creator : William Roshan Quadros 00007 // 00008 // Creation Date : 01/01/2003 00009 // 00010 // Owner : 00011 //------------------------------------------------------------------------- 00012 #ifndef OCTREEFACETPOINTDATA_H 00013 #define OCTREEFACETPOINTDATA_H 00014 00015 #include "CubitVector.hpp" 00016 #include "DLIList.hpp" 00017 00018 00019 class CubitFacet; 00020 class CubitFacetEdge; 00021 class CubitPoint; 00022 00023 00024 enum OctreeFacetPointDataType { CUBIT_FACET_POINT_DATA_FACET, CUBIT_FACET_POINT_DATA_EDGE, CUBIT_FACET_POINT_DATA_POINT }; 00025 00026 class OctreeFacetPointData 00027 { 00028 00029 public: 00030 OctreeFacetPointData( CubitVector coord, CubitFacet *ptr_facet ); 00031 OctreeFacetPointData( CubitVector coord, CubitFacetEdge *ptr_facet_edge ); 00032 OctreeFacetPointData( CubitVector coord, CubitPoint *ptr_point ); 00033 ~OctreeFacetPointData(){} 00034 00035 CubitVector coordinates( void ){ return xyz; } 00036 double x( void ){ return xyz.x(); } 00037 double y( void ){ return xyz.y(); } 00038 double z( void ){ return xyz.z(); } 00039 00040 int calculate_id( void ); 00041 int id( void ){ return num; } 00042 00043 void display( void ); 00044 00045 static CubitBoolean generate_facet_point_data_at_slender_facet( CubitFacet *ptr_facet, DLIList<OctreeFacetPointData *> &facet_point_data_list ); 00046 static CubitBoolean generate_facet_point_data_based_on_curvature( CubitFacetEdge *ptr_facet_edge, /*double angle,*/ DLIList<OctreeFacetPointData *> &facet_point_data_list ); 00047 00048 00049 private: 00050 00051 union 00052 { 00053 CubitFacet *facetPtr; 00054 CubitFacetEdge *facetEdgePtr; 00055 CubitPoint *facetPointPtr; 00056 }; 00057 00058 int num; 00059 CubitVector xyz; 00060 OctreeFacetPointDataType type; 00061 00062 }; 00063 00064 #endif 00065 00066 //EOF 00067