cgma
|
#include <RefEntityFactory.hpp>
Definition at line 46 of file RefEntityFactory.hpp.
RefEntityFactory::RefEntityFactory | ( | bool | make_lists = true | ) | [protected] |
Definition at line 80 of file RefEntityFactory.cpp.
{ instance_ = this; AppUtil::instance()->event_dispatcher().add_observer(this); if (make_lists) { refVertexList = new DLIList<RefVertex*>(); refEdgeList = new DLIList<RefEdge*>(); refFaceList = new DLIList<RefFace*>(); refGroupList = new DLIList<RefGroup*>(); refVolumeList = new DLIList<RefVolume*>(); bodyList = new DLIList<Body*>(); register_observer(this); } else { refVertexList = NULL; refEdgeList = NULL; refFaceList = NULL; refGroupList = NULL; refVolumeList = NULL; bodyList = NULL; } refVertexListIsSorted = true; refEdgeListIsSorted = true; refFaceListIsSorted = true; refVolumeListIsSorted = true; bodyListIsSorted = true; refGroupListIsSorted = true; ManageListSorting = true; reset_ids(); }
RefEntityFactory::~RefEntityFactory | ( | ) | [protected, virtual] |
Definition at line 125 of file RefEntityFactory.cpp.
{ if (refVertexList != NULL) delete refVertexList; if (refEdgeList != NULL) delete refEdgeList; if (refFaceList != NULL) delete refFaceList; if (refGroupList != NULL) delete refGroupList; if (refVolumeList != NULL) delete refVolumeList; if (bodyList != NULL) delete bodyList; unregister_observer(this); instance_ = NULL; }
void RefEntityFactory::add | ( | RefEntity * | ref_entity | ) | [virtual] |
Definition at line 219 of file RefEntityFactory.cpp.
{ assert(ref_entity != 0); RefGroup *group; RefVolume *volume; RefFace *face; RefEdge *edge; RefVertex *vertex; Body *body; if ( (group = CAST_TO(ref_entity, RefGroup)) != NULL ) { add(group); } else if ( (volume = CAST_TO(ref_entity, RefVolume)) != NULL ) { add(volume); } else if ( (face = CAST_TO(ref_entity, RefFace)) != NULL ) { add(face); } else if ( (edge = CAST_TO(ref_entity, RefEdge)) != NULL ) { add(edge); } else if ( (vertex = CAST_TO(ref_entity, RefVertex)) != NULL ) { add(vertex); } else if ( (body = CAST_TO(ref_entity, Body)) != NULL ) { add(body); } }
void RefEntityFactory::add | ( | Body * | bodyPtr | ) | [virtual] |
Definition at line 263 of file RefEntityFactory.cpp.
void RefEntityFactory::add | ( | RefVolume * | refVolumePtr | ) | [virtual] |
Definition at line 276 of file RefEntityFactory.cpp.
{ assert(!refVolumeList->is_in_list(refVPtr)); if(refVolumeList->size() > 0) { refVolumeList->last(); if(ManageListSorting && refVPtr->id() < refVolumeList->get()->id()) refVolumeListIsSorted = false; } refVolumeList->append(refVPtr); if (refVPtr->id() > maxRefVolumeId) maxRefVolumeId = refVPtr->id(); }
void RefEntityFactory::add | ( | RefGroup * | refGroupPtr | ) | [virtual] |
Definition at line 250 of file RefEntityFactory.cpp.
{ assert(!refGroupList->is_in_list(refGPtr)); if(refGroupList->size() > 0) { refGroupList->last(); if(ManageListSorting && refGPtr->id() < refGroupList->get()->id()) refGroupListIsSorted = false; } refGroupList->append(refGPtr); if (refGPtr->id() > maxRefGroupId) maxRefGroupId = refGPtr->id(); }
void RefEntityFactory::add | ( | RefFace * | refFacePtr | ) | [virtual] |
Definition at line 290 of file RefEntityFactory.cpp.
{ assert(!refFaceList->is_in_list(refFPtr)); if(refFaceList->size() > 0) { refFaceList->last(); if(ManageListSorting && refFPtr->id() < refFaceList->get()->id()) refFaceListIsSorted = false; } refFaceList->append(refFPtr); if (refFPtr->entityId > maxRefFaceId) maxRefFaceId = refFPtr->entityId; }
void RefEntityFactory::add | ( | RefEdge * | refEdgePtr | ) | [virtual] |
Definition at line 304 of file RefEntityFactory.cpp.
{ assert(!refEdgeList->is_in_list(refEPtr)); if(refEdgeList->size() > 0) { refEdgeList->last(); if(ManageListSorting && refEPtr->id() < refEdgeList->get()->id()) refEdgeListIsSorted = false; } refEdgeList->append(refEPtr); if (refEPtr->id() > maxRefEdgeId) maxRefEdgeId = refEPtr->id(); }
void RefEntityFactory::add | ( | RefVertex * | refVertexPtr | ) | [virtual] |
Definition at line 318 of file RefEntityFactory.cpp.
{ assert(!refVertexList->is_in_list(refVPtr)); if(refVertexList->size() > 0) { refVertexList->last(); if(ManageListSorting && refVPtr->id() < refVertexList->get()->id()) refVertexListIsSorted = false; } refVertexList->append(refVPtr); if (refVPtr->id() > maxRefVertexId) maxRefVertexId = refVPtr->id(); }
void RefEntityFactory::bodies | ( | DLIList< Body * > & | bodies | ) | [virtual] |
Definition at line 436 of file RefEntityFactory.cpp.
{ bodies = *bodyList; }
void RefEntityFactory::compress_ids | ( | DLIList< CubitEntity * > & | list | ) | [static] |
Definition at line 1110 of file RefEntityFactory.cpp.
{ int id = 1; CubitEntity* entity; if (list.size()) { list.reset(); // if these are ref volumes, recompute color CubitBoolean set_color = CUBIT_FALSE; if (CAST_TO(list.get(), RefVolume)) set_color = CUBIT_TRUE; // sort list so ids of entities are ascending order list.sort( sort_by_ascending_ids); for (int i=list.size(); i > 0; i--) { entity = list.get_and_step(); if (entity->id() != id){ entity->set_id(id); if (set_color) { entity->color(CUBIT_DEFAULT_COLOR_INDEX); } } id++; } } }
void RefEntityFactory::compress_ref_ids | ( | const char * | entity_type, |
int | retain_max_id | ||
) |
Definition at line 1061 of file RefEntityFactory.cpp.
{ const std::type_info& type = RefEntity::get_entity_type_info(entity_type); assert(type != typeid(InvalidEntity)); /* #ifdef VIRTUAL_GEOMETRY_ENGINE_HPP VirtualGeometryEngine::instance()-> hidden_entity_mngr.compress_hidden_ids(type); #endif */ /* DLIList<GeometryQueryEngine*> gqeList; GeometryQueryTool::instance()->get_gqe_list(gqeList);//Get the gqeList from the GQT gqeList.reset(); int i; for (i = 0; i < gqeList.size(); i++)//Step through the list and call compress_ids. { //The VGE is the only engine that will do work. gqeList.get_and_step()->compress_ids(type); } */ DLIList<CubitEntity*> list; DLIList<RefEntity*> temp_list; CubitStatus result = ref_entity_list(entity_type, temp_list, CUBIT_FALSE); if ( result == CUBIT_SUCCESS ) { CAST_LIST_TO_PARENT(temp_list, list); compress_ids(list); } // set the maximum entity id to the new max values. if (!retain_max_id) { // must use the num_xxx() functions here, since we may have a derived factory! if( type == typeid(RefGroup) ) maxRefGroupId = num_ref_groups(); else if( type == typeid(Body) ) maxBodyId = num_bodies(); else if( type == typeid(RefVolume) ) maxRefVolumeId = num_ref_volumes(); else if( type == typeid(RefFace) ) maxRefFaceId = num_ref_faces(); else if( type == typeid(RefEdge) ) maxRefEdgeId = num_ref_edges(); else if( type == typeid(RefVertex) ) maxRefVertexId = num_ref_vertices(); } }
Body * RefEntityFactory::construct_Body | ( | BodySM * | body_sm = NULL | ) | [virtual] |
Definition at line 165 of file RefEntityFactory.cpp.
{ Body *temp = new Body(body_sm); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
RefEdge * RefEntityFactory::construct_RefEdge | ( | Curve * | curve = NULL | ) | [virtual] |
Definition at line 144 of file RefEntityFactory.cpp.
{ RefEdge *temp = new RefEdge(curve); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
RefFace * RefEntityFactory::construct_RefFace | ( | Surface * | surface = NULL | ) | [virtual] |
Definition at line 151 of file RefEntityFactory.cpp.
{ RefFace *temp = new RefFace(surface); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
RefGroup * RefEntityFactory::construct_RefGroup | ( | const char * | name = NULL | ) | [virtual] |
Definition at line 172 of file RefEntityFactory.cpp.
{ RefGroup *temp = new RefGroup(name); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
RefGroup * RefEntityFactory::construct_RefGroup | ( | DLIList< RefEntity * > & | entity_list | ) | [virtual] |
Definition at line 179 of file RefEntityFactory.cpp.
{ RefGroup *temp = new RefGroup(entity_list); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
RefVertex * RefEntityFactory::construct_RefVertex | ( | TBPoint * | point = NULL | ) | [virtual] |
Definition at line 137 of file RefEntityFactory.cpp.
{ RefVertex *temp = new RefVertex(point); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
RefVolume * RefEntityFactory::construct_RefVolume | ( | Lump * | lump = NULL | ) | [virtual] |
Definition at line 158 of file RefEntityFactory.cpp.
{ RefVolume *temp = new RefVolume(lump); AppUtil::instance()->send_event(GeometryEvent(GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED, temp)); return temp; }
int RefEntityFactory::current_body_id | ( | ) | [inline] |
Definition at line 151 of file RefEntityFactory.hpp.
{return maxBodyId;};
int RefEntityFactory::current_edge_id | ( | ) | [inline] |
Definition at line 155 of file RefEntityFactory.hpp.
{return maxRefEdgeId;};
int RefEntityFactory::current_face_id | ( | ) | [inline] |
Definition at line 154 of file RefEntityFactory.hpp.
{return maxRefFaceId;};
int RefEntityFactory::current_group_id | ( | ) | [inline] |
Definition at line 153 of file RefEntityFactory.hpp.
{return maxRefGroupId;};
int RefEntityFactory::current_vertex_id | ( | ) | [inline] |
Definition at line 156 of file RefEntityFactory.hpp.
{return maxRefVertexId;};
int RefEntityFactory::current_volume_id | ( | ) | [inline] |
Definition at line 152 of file RefEntityFactory.hpp.
{return maxRefVolumeId;};
void RefEntityFactory::delete_instance | ( | ) | [static] |
Definition at line 116 of file RefEntityFactory.cpp.
Body * RefEntityFactory::get_body | ( | int | id | ) | [virtual] |
Definition at line 539 of file RefEntityFactory.cpp.
{ if (!bodyList->size()) return NULL; // Make sure the list is sorted for the binary search. if(ManageListSorting && !bodyListIsSorted) { bodyList->sort(sort_by_ascending_ids); bodyListIsSorted = true; } // Do a binary search on the sorted list. We are making the assumption // here that there are no NULL entries in the list. bool found = false; int left_index = 0; int right_index = bodyList->size()-1; int mid_index = (left_index + right_index)/2; int mid_id = ((*bodyList)[mid_index])->id(); while(!found && (right_index-left_index) > 1) { if(mid_id == id) found = true; else { if(mid_id > id) right_index = mid_index; else left_index = mid_index; mid_index = (left_index + right_index)/2; mid_id = ((*bodyList)[mid_index])->id(); } } if(!found) { if(((*bodyList)[left_index])->id() == id) return ((*bodyList)[left_index]); else if(((*bodyList)[right_index])->id() == id) return ((*bodyList)[right_index]); } else return ((*bodyList)[mid_index]); return NULL ; }
Body * RefEntityFactory::get_first_body | ( | ) | [virtual] |
RefEdge * RefEntityFactory::get_first_ref_edge | ( | ) | [virtual] |
Definition at line 896 of file RefEntityFactory.cpp.
{ refEdgeList->reset(); return refEdgeList->size() ? refEdgeList->get() : 0; }
RefFace * RefEntityFactory::get_first_ref_face | ( | ) | [virtual] |
Definition at line 890 of file RefEntityFactory.cpp.
{ refFaceList->reset(); return refFaceList->size() ? refFaceList->get() : 0; }
RefGroup * RefEntityFactory::get_first_ref_group | ( | ) | [virtual] |
Definition at line 884 of file RefEntityFactory.cpp.
{ refGroupList->reset(); return refGroupList->size() ? refGroupList->get() : 0; }
RefVertex * RefEntityFactory::get_first_ref_vertex | ( | ) | [virtual] |
Definition at line 902 of file RefEntityFactory.cpp.
{ refVertexList->reset(); return refVertexList->size() ? refVertexList->get() : 0; }
RefVolume * RefEntityFactory::get_first_ref_volume | ( | ) | [virtual] |
Definition at line 878 of file RefEntityFactory.cpp.
{ refVolumeList->reset(); return refVolumeList->size() ? refVolumeList->get() : 0; }
Body * RefEntityFactory::get_last_body | ( | ) | [virtual] |
RefEdge * RefEntityFactory::get_last_ref_edge | ( | ) | [virtual] |
Definition at line 951 of file RefEntityFactory.cpp.
{ refEdgeList->last(); return refEdgeList->size() ? refEdgeList->get() : 0; }
RefFace * RefEntityFactory::get_last_ref_face | ( | ) | [virtual] |
Definition at line 945 of file RefEntityFactory.cpp.
{ refFaceList->last(); return refFaceList->size() ? refFaceList->get() : 0; }
RefGroup * RefEntityFactory::get_last_ref_group | ( | ) | [virtual] |
Definition at line 939 of file RefEntityFactory.cpp.
{ refGroupList->last(); return refGroupList->size() ? refGroupList->get() : 0; }
RefVertex * RefEntityFactory::get_last_ref_vertex | ( | ) | [virtual] |
Definition at line 957 of file RefEntityFactory.cpp.
{ refVertexList->last(); return refVertexList->size() ? refVertexList->get() : 0; }
RefVolume * RefEntityFactory::get_last_ref_volume | ( | ) | [virtual] |
Definition at line 933 of file RefEntityFactory.cpp.
{ refVolumeList->last(); return refVolumeList->size() ? refVolumeList->get() : 0; }
Body * RefEntityFactory::get_next_body | ( | ) | [virtual] |
Definition at line 909 of file RefEntityFactory.cpp.
{return bodyList->size() ? bodyList->step_and_get() : 0;}
RefEdge * RefEntityFactory::get_next_ref_edge | ( | ) | [virtual] |
Definition at line 921 of file RefEntityFactory.cpp.
{return refEdgeList->size() ? refEdgeList->step_and_get() : 0;}
RefFace * RefEntityFactory::get_next_ref_face | ( | ) | [virtual] |
Definition at line 918 of file RefEntityFactory.cpp.
{return refFaceList->size() ? refFaceList->step_and_get() : 0;}
RefGroup * RefEntityFactory::get_next_ref_group | ( | ) | [virtual] |
Definition at line 915 of file RefEntityFactory.cpp.
{return refGroupList->size() ? refGroupList->step_and_get() : 0;}
RefVertex * RefEntityFactory::get_next_ref_vertex | ( | ) | [virtual] |
Definition at line 924 of file RefEntityFactory.cpp.
{return refVertexList->size() ? refVertexList->step_and_get() : 0;}
RefVolume * RefEntityFactory::get_next_ref_volume | ( | ) | [virtual] |
Definition at line 912 of file RefEntityFactory.cpp.
{return refVolumeList->size() ? refVolumeList->step_and_get() : 0;}
RefEdge * RefEntityFactory::get_ref_edge | ( | int | id | ) | [virtual] |
Definition at line 731 of file RefEntityFactory.cpp.
{ if (!refEdgeList->size()) return NULL; // Make sure the list is sorted for the binary search. if(ManageListSorting && !refEdgeListIsSorted) { refEdgeList->sort(sort_by_ascending_ids); refEdgeListIsSorted = true; } // Do a binary search on the sorted list. We are making the assumption // here that there are no NULL entries in the list. bool found = false; int left_index = 0; int right_index = refEdgeList->size()-1; int mid_index = (left_index + right_index)/2; int mid_id = ((*refEdgeList)[mid_index])->id(); while(!found && (right_index-left_index) > 1) { if(mid_id == id) found = true; else { if(mid_id > id) right_index = mid_index; else left_index = mid_index; mid_index = (left_index + right_index)/2; mid_id = ((*refEdgeList)[mid_index])->id(); } } if(!found) { if(((*refEdgeList)[left_index])->id() == id) return ((*refEdgeList)[left_index]); else if(((*refEdgeList)[right_index])->id() == id) return ((*refEdgeList)[right_index]); } else return ((*refEdgeList)[mid_index]); return NULL ; }
RefEntity * RefEntityFactory::get_ref_entity | ( | const char * | type, |
int | id | ||
) | [virtual] |
Definition at line 485 of file RefEntityFactory.cpp.
{ // Call the right function, cast it. switch( toupper(*type_string) ) { case 'B': if( !strcmp(type_string+1,"ody") ) return get_body(id); break; case 'V': if( !strcmp(type_string+1,"olume" ) ) return get_ref_volume(id); else if(!strcmp(type_string+1,"ertex") ) return get_ref_vertex(id); break; case 'S': if( !strcmp(type_string+1,"urface") ) return get_ref_face(id); break; case 'C': if( !strcmp(type_string+1,"urve") ) return get_ref_edge(id); break; case 'G': if( !strcmp(type_string+1,"roup") ) return get_ref_group(id); break; } PRINT_ERROR("Invalid list type for the get_ref_entity " "function: %s\n", type_string); return NULL; }
RefEntity * RefEntityFactory::get_ref_entity | ( | const std::type_info & | type, |
int | id | ||
) | [virtual] |
Definition at line 519 of file RefEntityFactory.cpp.
{ // Call the right function, cast it. if( type == typeid(RefGroup) ) return CAST_TO(get_ref_group(id), RefEntity); else if( type == typeid(Body) ) return CAST_TO(get_body(id), RefEntity); else if( type == typeid(RefVolume) ) return CAST_TO(get_ref_volume(id), RefEntity); else if( type == typeid(RefFace) ) return CAST_TO(get_ref_face(id), RefEntity); else if( type == typeid(RefEdge) ) return CAST_TO(get_ref_edge(id), RefEntity); else if( type == typeid(RefVertex) ) return CAST_TO(get_ref_vertex(id), RefEntity); return NULL; }
RefFace * RefEntityFactory::get_ref_face | ( | int | id | ) | [virtual] |
Definition at line 683 of file RefEntityFactory.cpp.
{ if (!refFaceList->size()) return NULL; // Make sure the list is sorted for the binary search. if(ManageListSorting && !refFaceListIsSorted) { refFaceList->sort(sort_by_ascending_ids); refFaceListIsSorted = true; } // Do a binary search on the sorted list. We are making the assumption // here that there are no NULL entries in the list. bool found = false; int left_index = 0; int right_index = refFaceList->size()-1; int mid_index = (left_index + right_index)/2; int mid_id = ((*refFaceList)[mid_index])->id(); while(!found && (right_index-left_index) > 1) { if(mid_id == id) found = true; else { if(mid_id > id) right_index = mid_index; else left_index = mid_index; mid_index = (left_index + right_index)/2; mid_id = ((*refFaceList)[mid_index])->id(); } } if(!found) { if(((*refFaceList)[left_index])->id() == id) return ((*refFaceList)[left_index]); else if(((*refFaceList)[right_index])->id() == id) return ((*refFaceList)[right_index]); } else return ((*refFaceList)[mid_index]); return NULL ; }
RefGroup * RefEntityFactory::get_ref_group | ( | int | id | ) | [virtual] |
Definition at line 587 of file RefEntityFactory.cpp.
{ if (!refGroupList->size()) return NULL; // Make sure the list is sorted for the binary search. if(ManageListSorting && !refGroupListIsSorted) { refGroupList->sort(sort_by_ascending_ids); refGroupListIsSorted = true; } // Do a binary search on the sorted list. We are making the assumption // here that there are no NULL entries in the list. bool found = false; int left_index = 0; int right_index = refGroupList->size()-1; int mid_index = (left_index + right_index)/2; int mid_id = ((*refGroupList)[mid_index])->id(); while(!found && (right_index-left_index) > 1) { if(mid_id == id) found = true; else { if(mid_id > id) right_index = mid_index; else left_index = mid_index; mid_index = (left_index + right_index)/2; mid_id = ((*refGroupList)[mid_index])->id(); } } if(!found) { if(((*refGroupList)[left_index])->id() == id) return ((*refGroupList)[left_index]); else if(((*refGroupList)[right_index])->id() == id) return ((*refGroupList)[right_index]); } else return ((*refGroupList)[mid_index]); return NULL ; }
RefVertex * RefEntityFactory::get_ref_vertex | ( | int | id | ) | [virtual] |
Definition at line 779 of file RefEntityFactory.cpp.
{ if (!refVertexList->size()) return NULL; // Make sure the list is sorted for the binary search. if(ManageListSorting && !refVertexListIsSorted) { refVertexList->sort(sort_by_ascending_ids); refVertexListIsSorted = true; } // Do a binary search on the sorted list. We are making the assumption // here that there are no NULL entries in the list. bool found = false; int left_index = 0; int right_index = refVertexList->size()-1; int mid_index = (left_index + right_index)/2; int mid_id = ((*refVertexList)[mid_index])->id(); while(!found && (right_index-left_index) > 1) { if(mid_id == id) found = true; else { if(mid_id > id) right_index = mid_index; else left_index = mid_index; mid_index = (left_index + right_index)/2; mid_id = ((*refVertexList)[mid_index])->id(); } } if(!found) { if(((*refVertexList)[left_index])->id() == id) return ((*refVertexList)[left_index]); else if(((*refVertexList)[right_index])->id() == id) return ((*refVertexList)[right_index]); } else return ((*refVertexList)[mid_index]); return NULL ; }
RefVolume * RefEntityFactory::get_ref_volume | ( | int | id | ) | [virtual] |
Definition at line 635 of file RefEntityFactory.cpp.
{ if (!refVolumeList->size()) return NULL; // Make sure the list is sorted for the binary search. if(ManageListSorting && !refVolumeListIsSorted) { refVolumeList->sort(sort_by_ascending_ids); refVolumeListIsSorted = true; } // Do a binary search on the sorted list. We are making the assumption // here that there are no NULL entries in the list. bool found = false; int left_index = 0; int right_index = refVolumeList->size()-1; int mid_index = (left_index + right_index)/2; int mid_id = ((*refVolumeList)[mid_index])->id(); while(!found && (right_index-left_index) > 1) { if(mid_id == id) found = true; else { if(mid_id > id) right_index = mid_index; else left_index = mid_index; mid_index = (left_index + right_index)/2; mid_id = ((*refVolumeList)[mid_index])->id(); } } if(!found) { if(((*refVolumeList)[left_index])->id() == id) return ((*refVolumeList)[left_index]); else if(((*refVolumeList)[right_index])->id() == id) return ((*refVolumeList)[right_index]); } else return ((*refVolumeList)[mid_index]); return NULL ; }
void RefEntityFactory::incorporate_id | ( | RefEntity * | ref_ent | ) |
Definition at line 963 of file RefEntityFactory.cpp.
{ if (ref_ent) { //________ Change Code by DZ of Cat, 3/17/99 10:47:39 AM ________ int max_ent_id = 0; max_ent_id = ref_ent->id(); // Do nothing with groups if( CAST_TO( ref_ent, RefGroup ) ) { if (maxRefGroupId < max_ent_id) maxRefGroupId = max_ent_id; } else if( CAST_TO( ref_ent, Body ) ) { if (maxBodyId < max_ent_id) maxBodyId = max_ent_id; } else if( CAST_TO( ref_ent, RefVolume ) ) { if (maxRefVolumeId < max_ent_id) maxRefVolumeId = max_ent_id; } else if( CAST_TO( ref_ent, RefFace ) ) { if (maxRefFaceId < max_ent_id) maxRefFaceId = max_ent_id; } else if( CAST_TO( ref_ent, RefEdge ) ) { if (maxRefEdgeId < max_ent_id) maxRefEdgeId = max_ent_id; } else if( CAST_TO( ref_ent, RefVertex ) ) { if (maxRefVertexId < max_ent_id) maxRefVertexId = max_ent_id; } //________ Change End by DZ of Cat, 3/17/99 10:47:39 AM ________ } }
RefEntityFactory * RefEntityFactory::instance | ( | void | ) | [static] |
Definition at line 71 of file RefEntityFactory.cpp.
{ if (instance_ == NULL) { new RefEntityFactory(); } return instance_; }
int RefEntityFactory::maximum_id | ( | const char * | entity_type | ) |
Definition at line 1005 of file RefEntityFactory.cpp.
{ if (strcmp("body", entity_type) == 0) return maxBodyId; else if (strcmp("curve", entity_type) == 0) return maxRefEdgeId; else if (strcmp("group", entity_type) == 0) return maxRefGroupId; else if (strcmp("volume", entity_type) == 0) return maxRefVolumeId; else if (strcmp("vertex", entity_type) == 0) return maxRefVertexId; else if (strcmp("surface", entity_type) == 0) return maxRefFaceId; else { PRINT_ERROR("Unrecognized entity_type: '%s'\n", entity_type); return 0; } }
int RefEntityFactory::maximum_id | ( | RefEntity * | ref_ent | ) |
Definition at line 1041 of file RefEntityFactory.cpp.
{ if (!ref_ent) return 0; else if( CAST_TO( ref_ent, RefGroup ) ) return maxRefGroupId; else if( CAST_TO( ref_ent, Body ) ) return maxBodyId; else if( CAST_TO( ref_ent, RefVolume ) ) return maxRefVolumeId; else if( CAST_TO( ref_ent, RefFace ) ) return maxRefFaceId; else if( CAST_TO( ref_ent, RefEdge ) ) return maxRefEdgeId; else if( CAST_TO( ref_ent, RefVertex ) ) return maxRefVertexId; else return 0; }
void RefEntityFactory::maximum_id | ( | const std::type_info & | type, |
int | max_id | ||
) |
Definition at line 1025 of file RefEntityFactory.cpp.
{ if( type == typeid(RefGroup) ) maxRefGroupId = max_id; else if( type == typeid(Body) ) maxBodyId = max_id; else if( type == typeid(RefVolume) ) maxRefVolumeId = max_id; else if( type == typeid(RefFace) ) maxRefFaceId = max_id; else if( type == typeid(RefEdge) ) maxRefEdgeId = max_id; else if( type == typeid(RefVertex) ) maxRefVertexId = max_id; }
int RefEntityFactory::next_body_id | ( | ) |
Definition at line 830 of file RefEntityFactory.cpp.
{ return ++maxBodyId; }
Definition at line 850 of file RefEntityFactory.cpp.
{ return ++maxRefEdgeId; }
Definition at line 845 of file RefEntityFactory.cpp.
{ return ++maxRefFaceId; }
Definition at line 835 of file RefEntityFactory.cpp.
{ return ++maxRefGroupId; }
Definition at line 855 of file RefEntityFactory.cpp.
{ return ++maxRefVertexId; }
Definition at line 840 of file RefEntityFactory.cpp.
{ return ++maxRefVolumeId; }
void RefEntityFactory::notify_observer | ( | const CubitEvent * | observer_event | ) | [virtual] |
Implements CubitObserver.
Definition at line 1179 of file RefEntityFactory.cpp.
{ const GeometryEvent* geom_event = dynamic_cast<const GeometryEvent*>(observer_event); if(!geom_event) return; RefEntity* entity = geom_event->get_entity(); //- handle MODEL_ENTITY_DESTRUCTED/MODEL_ENTITY_CONSTRUCTED events if (geom_event->get_type() == GeometryEvent::TOPOLOGY_ENTITY_CONSTRUCTED) add(entity); else if (geom_event->get_type() == GeometryEvent::TOPOLOGY_ENTITY_DESTRUCTED) remove(entity); else if (geom_event->get_type() == GeometryEvent::ID_SET) { if(CAST_TO(entity, RefEdge) && ManageListSorting) refEdgeListIsSorted = false; else if(CAST_TO(entity, RefFace) && ManageListSorting) refFaceListIsSorted = false; else if(CAST_TO(entity, RefVertex) && ManageListSorting) refVertexListIsSorted = false; else if(CAST_TO(entity, RefVolume) && ManageListSorting) refVolumeListIsSorted = false; else if(CAST_TO(entity, RefGroup) && ManageListSorting) refGroupListIsSorted = false; else if(CAST_TO(entity, Body) && ManageListSorting) bodyListIsSorted = false; } }
int RefEntityFactory::num_bodies | ( | ) | const [virtual] |
Definition at line 478 of file RefEntityFactory.cpp.
int RefEntityFactory::num_ref_edges | ( | ) | const [virtual] |
Definition at line 482 of file RefEntityFactory.cpp.
{return refEdgeList->size();}
int RefEntityFactory::num_ref_faces | ( | ) | const [virtual] |
Definition at line 481 of file RefEntityFactory.cpp.
{return refFaceList->size();}
int RefEntityFactory::num_ref_groups | ( | ) | const [virtual] |
Definition at line 480 of file RefEntityFactory.cpp.
{return refGroupList->size();}
int RefEntityFactory::num_ref_vertices | ( | ) | const [virtual] |
Definition at line 483 of file RefEntityFactory.cpp.
{return refVertexList->size();}
int RefEntityFactory::num_ref_volumes | ( | ) | const [virtual] |
Definition at line 479 of file RefEntityFactory.cpp.
{return refVolumeList->size();}
void RefEntityFactory::ref_edges | ( | DLIList< RefEdge * > & | ref_edges | ) | [virtual] |
Definition at line 456 of file RefEntityFactory.cpp.
{ ref_edges = *refEdgeList; }
CubitStatus RefEntityFactory::ref_entity_list | ( | char const * | keyword, |
DLIList< RefEntity * > & | entity_list, | ||
const CubitBoolean | print_errors = CUBIT_TRUE |
||
) | [virtual] |
Definition at line 186 of file RefEntityFactory.cpp.
{ if ( !strcmp( keyword, "body" ) || !strcmp( keyword, "Body" )) { CAST_LIST_TO_PARENT((*bodyList), entity_list) ; } else if ( !strcmp( keyword, "curve" ) || !strcmp( keyword, "Curve" ) ) { CAST_LIST_TO_PARENT((*refEdgeList), entity_list) ; } else if ( !strcmp( keyword, "volume" ) || !strcmp( keyword, "Volume" ) ) { CAST_LIST_TO_PARENT((*refVolumeList), entity_list) ; } else if ( !strcmp( keyword, "vertex" ) || !strcmp( keyword, "Vertex" ) ) { CAST_LIST_TO_PARENT((*refVertexList), entity_list) ; } else if ( !strcmp( keyword, "surface" ) || !strcmp( keyword, "Surface" ) ) { CAST_LIST_TO_PARENT((*refFaceList), entity_list) ; } else if ( !strcmp( keyword, "group" ) || !strcmp( keyword, "Group" ) ) { CAST_LIST_TO_PARENT((*refGroupList), entity_list) ; } else { if (print_errors) PRINT_ERROR("Invalid list type for the ref_entity_list " "function: %s\n", keyword); return CUBIT_FAILURE; } return CUBIT_SUCCESS; }
void RefEntityFactory::ref_faces | ( | DLIList< RefFace * > & | ref_faces | ) | [virtual] |
Definition at line 451 of file RefEntityFactory.cpp.
{ ref_faces = *refFaceList; }
void RefEntityFactory::ref_groups | ( | DLIList< RefGroup * > & | ref_groups | ) | [virtual] |
Definition at line 446 of file RefEntityFactory.cpp.
{ ref_groups = *refGroupList; }
void RefEntityFactory::ref_vertices | ( | DLIList< RefVertex * > & | ref_vertices | ) | [virtual] |
Definition at line 461 of file RefEntityFactory.cpp.
{ ref_vertices = *refVertexList; }
void RefEntityFactory::ref_volumes | ( | DLIList< RefVolume * > & | ref_volumes | ) | [virtual] |
Definition at line 441 of file RefEntityFactory.cpp.
{ ref_volumes = *refVolumeList; }
void RefEntityFactory::remove | ( | RefEntity * | ref_entity | ) | [virtual] |
Definition at line 333 of file RefEntityFactory.cpp.
{ assert(ref_entity != 0); RefGroup *group; RefVolume *volume; RefFace *face; RefEdge *edge; RefVertex *vertex; Body *body; if ( (group = CAST_TO(ref_entity, RefGroup)) != NULL ) { remove(group); } else if ( (volume = CAST_TO(ref_entity, RefVolume)) != NULL ) { remove(volume); } else if ( (face = CAST_TO(ref_entity, RefFace)) != NULL ) { remove(face); } else if ( (edge = CAST_TO(ref_entity, RefEdge)) != NULL ) { remove(edge); } else if ( (vertex = CAST_TO(ref_entity, RefVertex)) != NULL ) { remove(vertex); } else if ( (body = CAST_TO(ref_entity, Body)) != NULL ) { remove(body); } }
void RefEntityFactory::remove | ( | RefVertex * | refVertexPtr | ) | [virtual] |
Definition at line 364 of file RefEntityFactory.cpp.
{ if (!refVertexList) return; if (ref_vertex_ptr != NULL) { if (refVertexList->move_to ( ref_vertex_ptr )) refVertexList->remove (); else assert(0); } }
void RefEntityFactory::remove | ( | RefEdge * | refEdgePtr | ) | [virtual] |
Definition at line 376 of file RefEntityFactory.cpp.
{ if (!refEdgeList) return; if (ref_edge_ptr != NULL) { if (refEdgeList->move_to ( ref_edge_ptr )) refEdgeList->remove (); else assert(0); } }
void RefEntityFactory::remove | ( | RefFace * | refFacePtr | ) | [virtual] |
Definition at line 388 of file RefEntityFactory.cpp.
{ if (!refFaceList) return; if (ref_face_ptr != NULL) { if (refFaceList->move_to ( ref_face_ptr )) refFaceList->remove (); else assert(0); } }
void RefEntityFactory::remove | ( | RefGroup * | refGroupPtr | ) | [virtual] |
Definition at line 412 of file RefEntityFactory.cpp.
{ if (!refGroupList) return; if (ref_group_ptr != NULL) { if (refGroupList->move_to ( ref_group_ptr )) refGroupList->remove (); else assert(0); } }
void RefEntityFactory::remove | ( | RefVolume * | refVolumePtr | ) | [virtual] |
Definition at line 400 of file RefEntityFactory.cpp.
{ if (!refVolumeList) return; if (ref_volume_ptr != NULL) { if (refVolumeList->move_to ( ref_volume_ptr )) refVolumeList->remove (); else assert(0); } }
void RefEntityFactory::remove | ( | Body * | bodyPtr | ) | [virtual] |
void RefEntityFactory::renumber_geometry_by_properties | ( | CubitBoolean | retain_max_ids | ) | [virtual] |
Definition at line 1165 of file RefEntityFactory.cpp.
{ // See MRefEntityFactory::renumber_geometry_by_properties. // If you want this implemented, copy what was done there. PRINT_ERROR("'Sort' option not supported.\n" " Compressing IDs without sorting."); compress_ref_ids("group", retain_max); compress_ref_ids("body", retain_max); compress_ref_ids("volume", retain_max); compress_ref_ids("surface", retain_max); compress_ref_ids("curve", retain_max); compress_ref_ids("vertex", retain_max); }
void RefEntityFactory::reset_ids | ( | ) |
Definition at line 1139 of file RefEntityFactory.cpp.
{ maxBodyId = 0; maxRefVolumeId = 0; maxRefGroupId = 0; maxRefFaceId = 0; maxRefEdgeId = 0; maxRefVertexId = 0; maxSurfSubDomainId = 0; maxCurveSubDomainId = 0; maxRefCoordSysId = 0; #ifdef PROE maxRefAssemblyId = 0; maxRefPartId = 0; #endif }
DLIList<Body*>* RefEntityFactory::bodyList [private] |
Definition at line 226 of file RefEntityFactory.hpp.
bool RefEntityFactory::bodyListIsSorted [private] |
Definition at line 218 of file RefEntityFactory.hpp.
RefEntityFactory * RefEntityFactory::instance_ = NULL [static, protected] |
Definition at line 194 of file RefEntityFactory.hpp.
bool RefEntityFactory::ManageListSorting [protected] |
Definition at line 197 of file RefEntityFactory.hpp.
int RefEntityFactory::maxBodyId [protected] |
Definition at line 198 of file RefEntityFactory.hpp.
int RefEntityFactory::maxCurveSubDomainId [protected] |
Definition at line 206 of file RefEntityFactory.hpp.
int RefEntityFactory::maxRefCoordSysId [protected] |
Definition at line 204 of file RefEntityFactory.hpp.
int RefEntityFactory::maxRefEdgeId [protected] |
Definition at line 202 of file RefEntityFactory.hpp.
int RefEntityFactory::maxRefFaceId [protected] |
Definition at line 201 of file RefEntityFactory.hpp.
int RefEntityFactory::maxRefGroupId [protected] |
Definition at line 200 of file RefEntityFactory.hpp.
int RefEntityFactory::maxRefVertexId [protected] |
Definition at line 203 of file RefEntityFactory.hpp.
int RefEntityFactory::maxRefVolumeId [protected] |
Definition at line 199 of file RefEntityFactory.hpp.
int RefEntityFactory::maxSurfSubDomainId [protected] |
Definition at line 205 of file RefEntityFactory.hpp.
DLIList<RefEdge*>* RefEntityFactory::refEdgeList [private] |
Definition at line 222 of file RefEntityFactory.hpp.
bool RefEntityFactory::refEdgeListIsSorted [private] |
Definition at line 215 of file RefEntityFactory.hpp.
DLIList<RefFace*>* RefEntityFactory::refFaceList [private] |
Definition at line 223 of file RefEntityFactory.hpp.
bool RefEntityFactory::refFaceListIsSorted [private] |
Definition at line 216 of file RefEntityFactory.hpp.
DLIList<RefGroup*>* RefEntityFactory::refGroupList [private] |
Definition at line 224 of file RefEntityFactory.hpp.
bool RefEntityFactory::refGroupListIsSorted [private] |
Definition at line 219 of file RefEntityFactory.hpp.
DLIList<RefVertex*>* RefEntityFactory::refVertexList [private] |
Definition at line 221 of file RefEntityFactory.hpp.
bool RefEntityFactory::refVertexListIsSorted [private] |
Definition at line 214 of file RefEntityFactory.hpp.
DLIList<RefVolume*>* RefEntityFactory::refVolumeList [private] |
Definition at line 225 of file RefEntityFactory.hpp.
bool RefEntityFactory::refVolumeListIsSorted [private] |
Definition at line 217 of file RefEntityFactory.hpp.