cgma
|
Class used for healing geometry. engine -specific. More...
#include <GeometryHealerTool.hpp>
Public Member Functions | |
~GeometryHealerTool () | |
void | add_ghe (GeometryHealerEngine *ghe_ptr) |
add a healer engine to the list | |
CubitStatus | auto_heal_bodies (DLIList< Body * > &body_list, DLIList< Body * > &new_body_list, DLIList< TopologyEntity * > &bad_geometry, CubitBoolean rebuild=CUBIT_FALSE, CubitBoolean keep_old=CUBIT_FALSE, CubitBoolean make_tolerant=CUBIT_FALSE, FILE *logfile_ptr=NULL) |
CubitStatus | heal_bodies (DLIList< Body * > &body_list, DLIList< Body * > &new_body_list, DLIList< TopologyEntity * > &bad_geometry, CubitBoolean rebuild=CUBIT_FALSE, CubitBoolean keep_old=CUBIT_FALSE, CubitBoolean make_tolerant=CUBIT_FALSE, FILE *logfile_ptr=NULL) |
CubitStatus | analyze_badgeom (DLIList< Body * > &body_list, DLIList< TopologyEntity * > &bad_geometry, FILE *logfile=NULL) |
CubitStatus | get_badgeom (DLIList< Body * > &body_list, DLIList< TopologyEntity * > &bad_geometry) |
CubitStatus | get_tcurves (DLIList< Body * > &body_list, DLIList< RefEdge * > &t_curves) |
CubitStatus | heal_incremental (DLIList< Body * > &body_list, DLIList< Body * > &new_bodies, DLIList< TopologyEntity * > &bad_geometry, double simplify_tol=CUBIT_DBL_MAX, double stitch_min_tol=CUBIT_DBL_MAX, double stitch_max_tol=CUBIT_DBL_MAX, double geombuild_tol=CUBIT_DBL_MAX, double analytic_tol=CUBIT_DBL_MAX, double isospline_tol=CUBIT_DBL_MAX, double reblend_classify_tol=CUBIT_DBL_MAX, double reblend_tol=CUBIT_DBL_MAX, CubitBoolean keep_old=CUBIT_FALSE, CubitBoolean make_tolerant=CUBIT_FALSE, FILE *logfile_ptr=NULL) |
Uses the healing husk to perform one or more healing operations. | |
void | list_incremental () |
Lists the current settings for incremental healing. | |
void | list_tolerances (DLIList< Body * > &body_list) |
Lists out the tolerances of each body, separately. | |
void | clean_attributes (DLIList< Body * > &body_list) |
void | list_onshow_flgs () |
Function to list to user what the current onshow flags are. | |
double | get_default_simplify_tol () |
void | set_default_simplify_tol (double tol) |
double | get_default_stitch_min_tol () |
void | set_default_stitch_min_tol (double tol) |
double | get_default_stitch_max_tol () |
void | set_default_stitch_max_tol (double tol) |
double | get_default_geombuild_tol () |
void | set_default_geombuild_tol (double tol) |
double | get_default_analytic_tol () |
void | set_default_analytic_tol (double tol) |
double | get_default_isospline_tol () |
void | set_default_isospline_tol (double tol) |
double | get_default_reblend_classify_tol () |
void | set_default_reblend_classify_tol (double tol) |
double | get_default_reblend_tol () |
void | set_default_reblend_tol (double tol) |
void | reset_default_tolerances () |
void | list_default_tolerances () |
CubitBoolean | get_cleanatt_flg () |
void | set_cleanatt_flg (CubitBoolean flg) |
int | get_show_method () |
Method determines how bad geometry is displayed. | |
void | set_show_method (int method) |
Method determines how bad geometry is displayed. | |
CubitBoolean | get_show_summary_flg () |
Flag to determine whether to list a summary when showing bad geometry. | |
void | set_show_summary_flg (CubitBoolean flg) |
Flag to determine whether to list a summary when showing bad geometry. | |
CubitBoolean | get_show_details_flg () |
Flag to determine whether to list details when showing bad geometry. | |
void | set_show_details_flg (CubitBoolean flg) |
Flag to determine whether to list details when showing bad geometry. | |
CubitBoolean | get_show_on_heal_flg () |
Flag to determine whether to show bad geometry after healing. | |
void | set_show_on_heal_flg (CubitBoolean flg) |
Flag to determine whether to show bad geometry after healing. | |
CubitBoolean | get_check_vol_on_heal_flg () |
Allow for checking of short curves after healing. | |
void | set_check_vol_on_heal_flg (CubitBoolean flg) |
Allow for checking of short curves after healing. | |
double | get_vol_on_heal_limit () |
Allow for checking of short curves after healing. | |
void | set_vol_on_heal_limit (double limit) |
Allow for checking of short curves after healing. | |
CubitBoolean | get_check_surf_on_heal_flg () |
Allow for checking of small surfaces after healing. | |
void | set_check_surf_on_heal_flg (CubitBoolean flg) |
Allow for checking of small surfaces after healing. | |
double | get_surf_on_heal_limit () |
Allow for checking of small surfaces after healing. | |
void | set_surf_on_heal_limit (double limit) |
Allow for checking of small surfaces after healing. | |
CubitBoolean | get_check_curve_on_heal_flg () |
Allow for checking of short curves after healing. | |
void | set_check_curve_on_heal_flg (CubitBoolean flg) |
Allow for checking of short curves after healing. | |
double | get_curve_on_heal_limit () |
Allow for checking of short curves after healing. | |
void | set_curve_on_heal_limit (double limit) |
Allow for checking of short curves after healing. | |
CubitBoolean | get_show_bad_vertices_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_vertices_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_curves_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_curves_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_coedges_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_coedges_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_loops_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_loops_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_surfaces_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_surfaces_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_shells_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_shells_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_volumes_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_volumes_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_show_bad_bodies_flg () |
Get/set for flags for what to show during analysis/show. | |
void | set_show_bad_bodies_flg (CubitBoolean flg) |
Get/set for flags for what to show during analysis/show. | |
CubitBoolean | get_inc_preprocess_flg () |
void | set_inc_preprocess_flg (CubitBoolean flg) |
CubitBoolean | get_inc_simplify_flg () |
void | set_inc_simplify_flg (CubitBoolean flg) |
CubitBoolean | get_inc_stitch_flg () |
void | set_inc_stitch_flg (CubitBoolean flg) |
CubitBoolean | get_inc_geombuild_flg () |
void | set_inc_geombuild_flg (CubitBoolean flg) |
CubitBoolean | get_inc_analytic_flg () |
void | set_inc_analytic_flg (CubitBoolean flg) |
CubitBoolean | get_inc_isospline_flg () |
void | set_inc_isospline_flg (CubitBoolean flg) |
CubitBoolean | get_inc_reblend_flg () |
void | set_inc_reblend_flg (CubitBoolean flg) |
CubitBoolean | get_inc_sharpedge_flg () |
void | set_inc_sharpedge_flg (CubitBoolean flg) |
CubitBoolean | get_inc_genericspline_flg () |
void | set_inc_genericspline_flg (CubitBoolean flg) |
CubitBoolean | get_inc_wrapup_flg () |
void | set_inc_wrapup_flg (CubitBoolean flg) |
CubitBoolean | get_inc_postprocess_flg () |
void | set_inc_postprocess_flg (CubitBoolean flg) |
CubitStatus | force_simplify_to_plane (DLIList< RefFace * > &ref_face_list, DLIList< Body * > &new_body_list, CubitBoolean keep=CUBIT_FALSE) |
Forces a spline surface to be an analytical of the type specified. | |
CubitStatus | force_simplify_to_cylinder (DLIList< RefFace * > &ref_face_list, DLIList< Body * > &new_body_list, CubitBoolean keep=CUBIT_FALSE) |
Forces a spline surface to be an analytical of the type specified. | |
CubitStatus | force_simplify_to_cone (DLIList< RefFace * > &ref_face_list, DLIList< Body * > &new_body_list, CubitBoolean keep=CUBIT_FALSE) |
Forces a spline surface to be an analytical of the type specified. | |
CubitStatus | force_simplify_to_sphere (DLIList< RefFace * > &ref_face_list, DLIList< Body * > &new_body_list, CubitBoolean keep=CUBIT_FALSE) |
Forces a spline surface to be an analytical of the type specified. | |
CubitStatus | force_simplify_to_torus (DLIList< RefFace * > &ref_face_list, DLIList< Body * > &new_body_list, CubitBoolean keep=CUBIT_FALSE) |
Forces a spline surface to be an analytical of the type specified. | |
Static Public Member Functions | |
static GeometryHealerTool * | instance (GeometryHealerEngine *GHEPtr=NULL) |
static void | delete_instance () |
Protected Member Functions | |
GeometryHealerTool (GeometryHealerEngine *GHEPtr) | |
Private Member Functions | |
GeometryHealerEngine * | get_engine (TopologyBridge *tb_ptr) const |
GeometryHealerEngine * | get_engine (TopologyEntity *te_ptr) const |
CubitBoolean | same_healer_engine (DLIList< RefEntity * > &ref_entity_list, CubitBoolean check_children) const |
CubitBoolean | same_healer_engine (DLIList< TopologyEntity * > &topo_list) const |
Private Attributes | |
DLIList< GeometryHealerEngine * > | gheList |
Static Private Attributes | |
static GeometryHealerTool * | instance_ = 0 |
Class used for healing geometry. engine -specific.
Definition at line 41 of file GeometryHealerTool.hpp.
Definition at line 80 of file GeometryHealerTool.cpp.
GeometryHealerTool::GeometryHealerTool | ( | GeometryHealerEngine * | GHEPtr | ) | [protected] |
Definition at line 1023 of file GeometryHealerTool.cpp.
{ if (GHEPtr != NULL) add_ghe(GHEPtr); }
void GeometryHealerTool::add_ghe | ( | GeometryHealerEngine * | ghe_ptr | ) |
add a healer engine to the list
Definition at line 110 of file GeometryHealerTool.cpp.
CubitStatus GeometryHealerTool::analyze_badgeom | ( | DLIList< Body * > & | body_list, |
DLIList< TopologyEntity * > & | bad_geometry, | ||
FILE * | logfile = NULL |
||
) |
Uses the healing husk to find bad geometry and give feedback to the user. A lot more could be done here - this is just a quick overview for the user (the user will have no idea why the identified geometry is bad). A logfile can give a little more information.
Definition at line 348 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) return GHEPtr->analyze_badgeom(body_list, bad_geometry, logfile); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::auto_heal_bodies | ( | DLIList< Body * > & | body_list, |
DLIList< Body * > & | new_body_list, | ||
DLIList< TopologyEntity * > & | bad_geometry, | ||
CubitBoolean | rebuild = CUBIT_FALSE , |
||
CubitBoolean | keep_old = CUBIT_FALSE , |
||
CubitBoolean | make_tolerant = CUBIT_FALSE , |
||
FILE * | logfile_ptr = NULL |
||
) |
Uses the autohealer to heal the given body list. The rebuild option can be used for more rigorous healing, where each surface is pulled off, healed, and then stitched back into a body.
Definition at line 284 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } if(rebuild && !keep_old) { MergeTool::instance()->unmerge(ref_entity_list); } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) { CubitStatus healer_status = GHEPtr->auto_heal_bodies(body_list, new_body_list, bad_geometry, rebuild, keep_old, make_tolerant, logfile_ptr); // if( healer_status == CUBIT_SUCCESS ) AppUtil::instance()->send_event(CubitOperationEvent(CubitOperationEvent::HEALER_COMPLETED)); return healer_status; } else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
void GeometryHealerTool::clean_attributes | ( | DLIList< Body * > & | body_list | ) |
Cleans healer attributes from the bodies. These can be left if the CleanAtt setting was used when doing analysis or healing.
Definition at line 561 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) GHEPtr->clean_attributes(body_list); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); }
static void GeometryHealerTool::delete_instance | ( | ) | [inline, static] |
Definition at line 48 of file GeometryHealerTool.hpp.
CubitStatus GeometryHealerTool::force_simplify_to_cone | ( | DLIList< RefFace * > & | ref_face_list, |
DLIList< Body * > & | new_body_list, | ||
CubitBoolean | keep = CUBIT_FALSE |
||
) |
Forces a spline surface to be an analytical of the type specified.
Definition at line 935 of file GeometryHealerTool.cpp.
{ ref_face_list.reset(); DLIList<RefEntity*> ref_entity_list(ref_face_list.size()); CAST_LIST_TO_PARENT( ref_face_list, ref_entity_list ); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING faces from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } ref_face_list.reset(); GeometryHealerEngine* GHEPtr = get_engine((TopologyEntity*)(ref_face_list.get())); if (GHEPtr) return GHEPtr->force_simplify_to_cone(ref_face_list, new_body_list, keep); else PRINT_ERROR( "Faces are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::force_simplify_to_cylinder | ( | DLIList< RefFace * > & | ref_face_list, |
DLIList< Body * > & | new_body_list, | ||
CubitBoolean | keep = CUBIT_FALSE |
||
) |
Forces a spline surface to be an analytical of the type specified.
Definition at line 910 of file GeometryHealerTool.cpp.
{ ref_face_list.reset(); DLIList<RefEntity*> ref_entity_list(ref_face_list.size()); CAST_LIST_TO_PARENT( ref_face_list, ref_entity_list ); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING faces from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } ref_face_list.reset(); GeometryHealerEngine* GHEPtr = get_engine((TopologyEntity*)(ref_face_list.get())); if (GHEPtr) return GHEPtr->force_simplify_to_cylinder(ref_face_list, new_body_list, keep); else PRINT_ERROR( "Faces are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::force_simplify_to_plane | ( | DLIList< RefFace * > & | ref_face_list, |
DLIList< Body * > & | new_body_list, | ||
CubitBoolean | keep = CUBIT_FALSE |
||
) |
Forces a spline surface to be an analytical of the type specified.
Definition at line 885 of file GeometryHealerTool.cpp.
{ ref_face_list.reset(); DLIList<RefEntity*> ref_entity_list(ref_face_list.size()); CAST_LIST_TO_PARENT( ref_face_list, ref_entity_list ); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING faces from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } ref_face_list.reset(); GeometryHealerEngine* GHEPtr = get_engine((TopologyEntity*)(ref_face_list.get())); if (GHEPtr) return GHEPtr->force_simplify_to_plane(ref_face_list, new_body_list, keep); else PRINT_ERROR( "Faces are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::force_simplify_to_sphere | ( | DLIList< RefFace * > & | ref_face_list, |
DLIList< Body * > & | new_body_list, | ||
CubitBoolean | keep = CUBIT_FALSE |
||
) |
Forces a spline surface to be an analytical of the type specified.
Definition at line 960 of file GeometryHealerTool.cpp.
{ ref_face_list.reset(); DLIList<RefEntity*> ref_entity_list(ref_face_list.size()); CAST_LIST_TO_PARENT( ref_face_list, ref_entity_list ); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING faces from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } ref_face_list.reset(); GeometryHealerEngine* GHEPtr = get_engine((TopologyEntity*)(ref_face_list.get())); if (GHEPtr) return GHEPtr->force_simplify_to_sphere(ref_face_list, new_body_list, keep); else PRINT_ERROR( "Faces are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::force_simplify_to_torus | ( | DLIList< RefFace * > & | ref_face_list, |
DLIList< Body * > & | new_body_list, | ||
CubitBoolean | keep = CUBIT_FALSE |
||
) |
Forces a spline surface to be an analytical of the type specified.
Definition at line 985 of file GeometryHealerTool.cpp.
{ ref_face_list.reset(); DLIList<RefEntity*> ref_entity_list(ref_face_list.size()); CAST_LIST_TO_PARENT( ref_face_list, ref_entity_list ); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING faces from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } ref_face_list.reset(); GeometryHealerEngine* GHEPtr = get_engine((TopologyEntity*)(ref_face_list.get())); if (GHEPtr) return GHEPtr->force_simplify_to_torus(ref_face_list, new_body_list, keep); else PRINT_ERROR( "Faces are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::get_badgeom | ( | DLIList< Body * > & | body_list, |
DLIList< TopologyEntity * > & | bad_geometry | ||
) |
Shows the bad geometry. The geometry must have been analyzed first. If body_list is empty, shows only for those bodies that have been analyzed.
Definition at line 371 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) return GHEPtr->get_badgeom(body_list, bad_geometry); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
Allow for checking of short curves after healing.
Definition at line 670 of file GeometryHealerTool.cpp.
Allow for checking of small surfaces after healing.
Definition at line 650 of file GeometryHealerTool.cpp.
Allow for checking of short curves after healing.
Definition at line 630 of file GeometryHealerTool.cpp.
Get/set flags which determine whether to clean attributes after analysis and healing.
Definition at line 580 of file GeometryHealerTool.cpp.
double GeometryHealerTool::get_curve_on_heal_limit | ( | ) |
Allow for checking of short curves after healing.
Definition at line 680 of file GeometryHealerTool.cpp.
double GeometryHealerTool::get_default_analytic_tol | ( | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 511 of file GeometryHealerTool.cpp.
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 501 of file GeometryHealerTool.cpp.
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 521 of file GeometryHealerTool.cpp.
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 531 of file GeometryHealerTool.cpp.
double GeometryHealerTool::get_default_reblend_tol | ( | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 541 of file GeometryHealerTool.cpp.
double GeometryHealerTool::get_default_simplify_tol | ( | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 471 of file GeometryHealerTool.cpp.
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 491 of file GeometryHealerTool.cpp.
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 481 of file GeometryHealerTool.cpp.
GeometryHealerEngine * GeometryHealerTool::get_engine | ( | TopologyBridge * | tb_ptr | ) | const [private] |
Definition at line 183 of file GeometryHealerTool.cpp.
{ GeometryHealerEngine *ghe; for (int i = 0; i < gheList.size(); i++) { ghe = gheList.next(i); if (ghe->is_healer_engine(tb_ptr)) return ghe; } return NULL; }
GeometryHealerEngine * GeometryHealerTool::get_engine | ( | TopologyEntity * | te_ptr | ) | const [private] |
Definition at line 204 of file GeometryHealerTool.cpp.
{ GeometryHealerEngine *ghe; TopologyBridge *tb_ptr = te_ptr->bridge_manager()->topology_bridge(); for (int i = 0; i < gheList.size(); i++) { ghe = gheList.next(i); if (ghe->is_healer_engine(tb_ptr)) return ghe; } return NULL; }
Definition at line 815 of file GeometryHealerTool.cpp.
Definition at line 855 of file GeometryHealerTool.cpp.
Definition at line 805 of file GeometryHealerTool.cpp.
Definition at line 825 of file GeometryHealerTool.cpp.
Definition at line 875 of file GeometryHealerTool.cpp.
Definition at line 775 of file GeometryHealerTool.cpp.
Definition at line 835 of file GeometryHealerTool.cpp.
Definition at line 845 of file GeometryHealerTool.cpp.
Definition at line 785 of file GeometryHealerTool.cpp.
Definition at line 795 of file GeometryHealerTool.cpp.
Definition at line 865 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 760 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 710 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 700 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 720 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 740 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 730 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 690 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 750 of file GeometryHealerTool.cpp.
Flag to determine whether to list details when showing bad geometry.
Definition at line 610 of file GeometryHealerTool.cpp.
Method determines how bad geometry is displayed.
Definition at line 590 of file GeometryHealerTool.cpp.
Flag to determine whether to show bad geometry after healing.
Definition at line 620 of file GeometryHealerTool.cpp.
Flag to determine whether to list a summary when showing bad geometry.
Definition at line 600 of file GeometryHealerTool.cpp.
double GeometryHealerTool::get_surf_on_heal_limit | ( | ) |
Allow for checking of small surfaces after healing.
Definition at line 660 of file GeometryHealerTool.cpp.
CubitStatus GeometryHealerTool::get_tcurves | ( | DLIList< Body * > & | body_list, |
DLIList< RefEdge * > & | t_curves | ||
) |
Get tolerant curves. If the body list is empty, all tolerant curves are retrieved.
Definition at line 393 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) return GHEPtr->get_tcurves(body_list, t_curves); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
double GeometryHealerTool::get_vol_on_heal_limit | ( | ) |
Allow for checking of short curves after healing.
Definition at line 640 of file GeometryHealerTool.cpp.
CubitStatus GeometryHealerTool::heal_bodies | ( | DLIList< Body * > & | body_list, |
DLIList< Body * > & | new_body_list, | ||
DLIList< TopologyEntity * > & | bad_geometry, | ||
CubitBoolean | rebuild = CUBIT_FALSE , |
||
CubitBoolean | keep_old = CUBIT_FALSE , |
||
CubitBoolean | make_tolerant = CUBIT_FALSE , |
||
FILE * | logfile_ptr = NULL |
||
) |
Heals the input bodies, using either autoheal or incremental, depending on the switches that are setup. Writes to the logfile if it's been opened.
Definition at line 322 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) return GHEPtr->heal_bodies(body_list, new_body_list, bad_geometry, rebuild, keep_old, make_tolerant, logfile_ptr); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
CubitStatus GeometryHealerTool::heal_incremental | ( | DLIList< Body * > & | body_list, |
DLIList< Body * > & | new_bodies, | ||
DLIList< TopologyEntity * > & | bad_geometry, | ||
double | simplify_tol = CUBIT_DBL_MAX , |
||
double | stitch_min_tol = CUBIT_DBL_MAX , |
||
double | stitch_max_tol = CUBIT_DBL_MAX , |
||
double | geombuild_tol = CUBIT_DBL_MAX , |
||
double | analytic_tol = CUBIT_DBL_MAX , |
||
double | isospline_tol = CUBIT_DBL_MAX , |
||
double | reblend_classify_tol = CUBIT_DBL_MAX , |
||
double | reblend_tol = CUBIT_DBL_MAX , |
||
CubitBoolean | keep_old = CUBIT_FALSE , |
||
CubitBoolean | make_tolerant = CUBIT_FALSE , |
||
FILE * | logfile_ptr = NULL |
||
) |
Uses the healing husk to perform one or more healing operations.
Uses the healing husk to perform one or more healing operations. Which operations are performed is determined by switches in the healer. The user can set default tolerances (separate from this function, override the defaults with this function, or just use the tolerances calculated by the healer (preferred).
The possible healing steps are: 1) preprocess - removes zero-length edges, sliver faces, duplicate vertices. This is the first step which is always done (user shouldn't suppress this). Tolerance is resabs. 2) simplify - simplify NURBS into analytic. Default simplify_tol = .0001 3) stitch - stitch geometry together. Iterative from min to max tolerance. Default min tol = 10e-5 Default max tol = 1 4) geombuild - geometry-related healing. Default geombuild_tol = .01 Default analytic_tangency_tol = .01 Default isolspline_solver_tol = .01 Individual geombuild steps can be (instead of doing all): analytic - performs all of the stages of the analytic solver subphase of the geometry building phase. The analytic solver subphase attempts to heal all edges and vertices shared by analytic surfaces. isospline - performs all of the stages of the isospline solver subphase of the geometry building phase. The isospline solver attempts to heal all edges shared by tangential isoparametric surfaces (e.g., the intersection curve is an isoparametric curve of both splines in the intersection). reblend - future option sharpedge - performs all of the stages of the sharp edge solver subphase of the geometry building phase. The sharp edge solver attempts to heal all edges and vertices that are shared by surfaces that intersect sharply. This includes nontangential surface junctions. genericspline - performs all of the stages of the generic spline solver subphase of the geometry building phase. The generic spline solver attempts to heal generic tangential spline junctions, (e.g., the intersection curve is not an isoparametric curve of both splines in the intersection). wrapup - handles remaining pcurves, wraps up geometry buiilding phase (user shouldn't suppress) 5) postprocess - correction of neg-area faces, duplicate vertices, edge groups; last step - always done (user shouldn't suppress)
Definition at line 415 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); return CUBIT_FAILURE; } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) return GHEPtr->heal_incremental(body_list, new_bodies, bad_geometry, simplify_tol, stitch_min_tol, stitch_max_tol, geombuild_tol, analytic_tol, isospline_tol, reblend_classify_tol, reblend_tol, keep_old, make_tolerant, logfile_ptr); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); return CUBIT_FAILURE; }
GeometryHealerTool * GeometryHealerTool::instance | ( | GeometryHealerEngine * | GHEPtr = NULL | ) | [static] |
Definition at line 47 of file GeometryHealerTool.cpp.
{ // Check to see if we have created an instance of the class; // if not, proceed to create one. if (instance_ == 0) { // When creating the instance, we should always have a valid // ghePtr. If not, complain. instance_ = new GeometryHealerTool(GHEPtr); // Check to make sure there's a ref entity factory extant: // RefEntityFactory *factory = RefEntityFactory::instance(); } // If there is an existing instance of the class, check if there // is a request to set the default engine. If so, do so. else if ( GHEPtr != NULL && !instance_->gheList.move_to(GHEPtr) ) { delete instance_->gheList.remove(); instance_->gheList.insert(GHEPtr); } // Return the a pointer to the instance of the class. return instance_; }
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 556 of file GeometryHealerTool.cpp.
void GeometryHealerTool::list_incremental | ( | ) |
Lists the current settings for incremental healing.
Definition at line 447 of file GeometryHealerTool.cpp.
void GeometryHealerTool::list_onshow_flgs | ( | ) |
Function to list to user what the current onshow flags are.
Definition at line 770 of file GeometryHealerTool.cpp.
void GeometryHealerTool::list_tolerances | ( | DLIList< Body * > & | body_list | ) |
Lists out the tolerances of each body, separately.
Definition at line 452 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> ref_entity_list; CAST_LIST_TO_PARENT(body_list, ref_entity_list); if (!same_healer_engine(ref_entity_list, CUBIT_TRUE)) { PRINT_ERROR("HEALING bodies from different\n" " geometry engines is not allowed.\n"); } GeometryHealerEngine* GHEPtr = get_engine(body_list.get()); if (GHEPtr) GHEPtr->list_tolerances(body_list); else PRINT_ERROR( "Bodies are of a geometry engine without a healer\n" " and cannot be healed.\n"); }
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 551 of file GeometryHealerTool.cpp.
CubitBoolean GeometryHealerTool::same_healer_engine | ( | DLIList< RefEntity * > & | ref_entity_list, |
CubitBoolean | check_children | ||
) | const [private] |
Definition at line 227 of file GeometryHealerTool.cpp.
{ DLIList<RefEntity*> complete_entity_list; //Check the check_children option and check all the children if necessary if (check_children) { //Make a complete list of all the RefEntities and their children DLIList<RefEntity*> temp = ref_entity_list; RefEntity* ref_entity_ptr; for (int i = 0; i < ref_entity_list.size(); i++) { ref_entity_ptr = ref_entity_list.get_and_step(); complete_entity_list.clean_out(); ref_entity_ptr->get_all_child_ref_entities(complete_entity_list); temp += complete_entity_list; } complete_entity_list.clean_out(); complete_entity_list.merge_unique(temp); } //Now make sure all the RefEntities are from the same geometry engine DLIList<TopologyEntity*> te_list; CAST_LIST(complete_entity_list, te_list, TopologyEntity); return same_healer_engine(te_list); }
CubitBoolean GeometryHealerTool::same_healer_engine | ( | DLIList< TopologyEntity * > & | topo_list | ) | const [private] |
Definition at line 264 of file GeometryHealerTool.cpp.
{ GeometryHealerEngine *gePtr1 = get_engine(topo_list.get_and_step()); GeometryHealerEngine *gePtr2; for (int i = 1; i < topo_list.size(); i++) { gePtr2 = get_engine(topo_list.get_and_step()); if (gePtr1 != gePtr2) { return CUBIT_FALSE; } } return CUBIT_TRUE; }
Allow for checking of short curves after healing.
Definition at line 675 of file GeometryHealerTool.cpp.
Allow for checking of small surfaces after healing.
Definition at line 655 of file GeometryHealerTool.cpp.
Allow for checking of short curves after healing.
Definition at line 635 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_cleanatt_flg | ( | CubitBoolean | flg | ) |
Get/set flags which determine whether to clean attributes after analysis and healing.
Definition at line 585 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_curve_on_heal_limit | ( | double | limit | ) |
Allow for checking of short curves after healing.
Definition at line 685 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_analytic_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 516 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_geombuild_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 506 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_isospline_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 526 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_reblend_classify_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 536 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_reblend_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 546 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_simplify_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 476 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_stitch_max_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 496 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_default_stitch_min_tol | ( | double | tol | ) |
Functions to set the default tolerances used. The healer calculates the default tolerance per body. These functions allow the user to override these defaults for all bodies healed. In incremental healing, the user can override these defaults by sending-in tolerances. For autoheal, these defaults are used if they are set, otherwise the healer calculates intelligent defaults.
Definition at line 486 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_inc_analytic_flg | ( | CubitBoolean | flg | ) |
Definition at line 820 of file GeometryHealerTool.cpp.
Definition at line 860 of file GeometryHealerTool.cpp.
Definition at line 810 of file GeometryHealerTool.cpp.
Definition at line 830 of file GeometryHealerTool.cpp.
Definition at line 880 of file GeometryHealerTool.cpp.
Definition at line 780 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_inc_reblend_flg | ( | CubitBoolean | flg | ) |
Definition at line 840 of file GeometryHealerTool.cpp.
Definition at line 850 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_inc_simplify_flg | ( | CubitBoolean | flg | ) |
Definition at line 790 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_inc_stitch_flg | ( | CubitBoolean | flg | ) |
Definition at line 800 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_inc_wrapup_flg | ( | CubitBoolean | flg | ) |
Definition at line 870 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 765 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 715 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 705 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 725 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 745 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 735 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 695 of file GeometryHealerTool.cpp.
Get/set for flags for what to show during analysis/show.
Definition at line 755 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_show_details_flg | ( | CubitBoolean | flg | ) |
Flag to determine whether to list details when showing bad geometry.
Definition at line 615 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_show_method | ( | int | method | ) |
Method determines how bad geometry is displayed.
Definition at line 595 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_show_on_heal_flg | ( | CubitBoolean | flg | ) |
Flag to determine whether to show bad geometry after healing.
Definition at line 625 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_show_summary_flg | ( | CubitBoolean | flg | ) |
Flag to determine whether to list a summary when showing bad geometry.
Definition at line 605 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_surf_on_heal_limit | ( | double | limit | ) |
Allow for checking of small surfaces after healing.
Definition at line 665 of file GeometryHealerTool.cpp.
void GeometryHealerTool::set_vol_on_heal_limit | ( | double | limit | ) |
Allow for checking of short curves after healing.
Definition at line 645 of file GeometryHealerTool.cpp.
DLIList<GeometryHealerEngine*> GeometryHealerTool::gheList [private] |
Definition at line 360 of file GeometryHealerTool.hpp.
GeometryHealerTool * GeometryHealerTool::instance_ = 0 [static, private] |
Definition at line 357 of file GeometryHealerTool.hpp.