cgma
SimplifyTool.hpp
Go to the documentation of this file.
00001 //-------------------------------------------------------------------------
00002 // Filename      : SimplifyTool.hpp
00003 //
00004 // Purpose       :
00005 //
00006 // Simplify {Volume|Surface} <Range> [Angle <Value>]
00007 //     [Respect {Surface <Range> | Curve <Range> | Fillet |Chamfer | imprint}]
00008 //     [Preview]
00009 //
00010 // Special Notes :
00011 //
00012 // Creator       : Sam Showman
00013 //
00014 // Creation Date : 11/07/2005
00015 //-------------------------------------------------------------------------
00016 #ifndef SIMPLIFYTOOL_HPP
00017 #define SIMPLIFYTOOL_HPP
00018 
00019 #include "CubitDefines.h"
00020 #include "CubitVector.hpp"
00021 
00022 class RefVolume;
00023 class RefFace;
00024 class RefEdge;
00025 class RefVertex;
00026 template <class X> class DLIList;
00027 
00029 
00031 class SimplifyTool
00032 {
00033 public:
00034 
00035     SimplifyTool();
00036     ~SimplifyTool();
00037 
00039     /***/
00040     CubitStatus simplify_volumes(
00041         DLIList<RefVolume*> ref_volume_list,
00042         double surf_angle_in,
00043         DLIList<RefFace*> respect_face_list,
00044         DLIList<RefEdge*> respect_edge_list,
00045         CubitBoolean respect_rounds,
00046         CubitBoolean respect_imprints,
00047         CubitBoolean local_normals,
00048         CubitBoolean preview);
00049 
00050     CubitStatus simplify_surfaces(
00051         DLIList<RefFace*> ref_face_list, 
00052         double angle_in,
00053         DLIList<RefFace*> respect_face_list,
00054         DLIList<RefEdge*> respect_edge_list,
00055         CubitBoolean respect_rounds,
00056         CubitBoolean respect_imprints,
00057         CubitBoolean local_normals,
00058         CubitBoolean preview);
00059 
00060     CubitStatus simplify_curves(
00061         DLIList<RefEdge*> ref_edge_list, 
00062         double angle_in,
00063         DLIList<RefEdge*> respect_edge_list,
00064         DLIList<RefVertex*> respect_vertex_list,
00065         CubitBoolean respect_imprints,
00066                     CubitBoolean local_normals,
00067         CubitBoolean preview);
00068 
00069     CubitStatus simplify_curves_in_volume(
00070         DLIList<RefEdge*> ref_edge_list, 
00071         double angle_in,
00072         DLIList<RefEdge*> respect_edge_list,
00073         DLIList<RefVertex*> respect_vertex_list,
00074         CubitBoolean respect_imprints,
00075                     CubitBoolean local_normals,
00076         CubitBoolean preview);
00077 
00078     CubitBoolean composite_curves(
00079         RefEdge* seed_ref_edge,
00080         RefEdge* ref_edge_ptr,
00081         double angle_in);
00082 
00083 private:
00084 
00085     CubitStatus simplify_volume(
00086         RefVolume* ref_volume_list, 
00087         double surf_angle_in,
00088         DLIList<RefFace*> respect_face_list,
00089         DLIList<RefEdge*> respect_edge_list,
00090         CubitBoolean respect_rounds,
00091         CubitBoolean respect_imprints,
00092         CubitBoolean local_normals,
00093         CubitBoolean preview);
00094 
00095     CubitStatus simplify_surfaces_in_volume(
00096         DLIList<RefFace*> ref_face_list, 
00097         double angle_in,
00098         DLIList<RefFace*> respect_face_list,
00099         DLIList<RefEdge*> respect_edge_list,
00100         CubitBoolean respect_rounds,
00101         CubitBoolean respect_imprints,
00102         CubitBoolean local_normals,
00103         CubitBoolean preview);
00104 
00105     CubitBoolean composite_surfaces(
00106         RefFace* seed_ref_face,
00107         RefFace* ref_face_ptr,
00108         double angle_in);
00109 
00110     void process_rounds(
00111         RefVolume* ref_volume,
00112         double min_radius = 0.0, 
00113         double max_radius = 1.0);
00114 
00115     CubitStatus
00116         weighted_average_normal(RefFace* ref_face,
00117         CubitVector &normal, 
00118         double &weight );
00119 
00120   
00121   CubitBoolean composite_surfaces_test_at_curves(RefFace* seed_ref_face,
00122                                                 RefFace* ref_face_ptr,
00123                                                 double angle_in);
00124   
00125 
00126 
00127   CubitBoolean maximum_angle_deviation(RefFace* seed_ref_face,
00128                                        RefFace* ref_face_ptr,
00129                                        double angle_in,
00130                                        double &angle_out);
00131   
00132 
00133 };
00134 
00135 #endif
00136 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines