cgma
SplitCompositeSurfaceTool.hpp
Go to the documentation of this file.
00001 #ifndef SPLITCOMPOSITESURFACETOOL_HPP
00002 #define SPLITCOMPOSITESURFACETOOL_HPP
00003 
00004 #include "CubitDefines.h"
00005 #include "Surface.hpp"
00006 
00007 class Surface;
00008 class RefFace;
00009 class CubitVector;
00010 template<class X> class DLIList;
00011 
00012    
00013 class SplitCompositeSurfaceTool
00014 {
00015   public:
00016     static SplitCompositeSurfaceTool *instance();
00017     static void delete_instance()
00018     {
00019       if(instance_)
00020         delete instance_;
00021       instance_ = NULL;
00022     };
00023     CubitStatus split_surface( RefFace *ref_face_ptr,
00024                              DLIList<CubitVector*> &locations,
00025                              DLIList<DLIList<CubitVector*>*> &vec_lists,
00026                              CubitBoolean preview_flg = CUBIT_FALSE,
00027                              CubitBoolean create_ref_edges_flg = CUBIT_FALSE,
00028                              CubitBoolean clear_previous_previews = CUBIT_TRUE );
00029 
00030      CubitStatus split_surface( DLIList<RefFace*> &ref_face_list,
00031                                 DLIList<CubitVector*> &locations,
00032                                 DLIList<DLIList<DLIList<CubitVector*>*>*> &list_of_vec_lists,
00033                                 CubitBoolean preview_flg = CUBIT_FALSE,
00034                                 CubitBoolean create_ref_edges_flg =CUBIT_FALSE,
00035                                 CubitBoolean clear_previous_previews = CUBIT_TRUE );
00036 
00037   private:
00038                                                                                 
00039     void find_faces_for_pos(CubitVector &pos, DLIList<Surface*> surf_list,
00040                         CubitPointContainment &containment,
00041                         DLIList<Surface*> &out_list);
00042     void get_additional_split_points(Surface *surf,
00043                             DLIList<DLIList<CubitVector*>*> &vec_lists);
00044     static SplitCompositeSurfaceTool *instance_;
00045     void find_face_with_non_zero_param_dir(DLIList<Surface*> &surf_list, 
00046                                         CubitVector &dir,
00047                                         CubitVector &pos,
00048                                         Surface *&ret_surf,
00049                                         double &du, double &dv,
00050                                         double &step);
00051 
00052 };
00053 
00054 #endif
00055 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines