|
cgma
|
#include <TDCAGE.hpp>
Public Member Functions | |
| TDCAGE (int unique_id) | |
| ~TDCAGE () | |
| int | unique_id () |
| void | unique_id (int id) |
| SetDynamicMemoryAllocation (memoryManager) static void set_memory_allocation_increment(int increment=0) | |
| int | td_sequence_number (const RefGroup *group) |
| void | insert_group (RefGroup *group, const int seq_num) |
| void | initialize_group_sequence_list (RefEntity *entity) |
Static Public Member Functions | |
| static int | is_cage (const ToolData *td) |
| static void | destroy_memory () |
| static int | group_sequence_number (RefGroup *group, const RefEntity *entity) |
| static void | insert_entity (RefEntity *entity, const int seq_num, RefGroup *into_group) |
Private Attributes | |
| int | uniqueId |
| DLIList< RefGroup * > | groupList |
| DLIList< int > | sequenceList |
Static Private Attributes | |
| static MemoryManager | memoryManager |
Definition at line 18 of file TDCAGE.hpp.
| TDCAGE::TDCAGE | ( | int | unique_id | ) | [inline] |
Definition at line 74 of file TDCAGE.hpp.
| TDCAGE::~TDCAGE | ( | ) | [inline] |
Definition at line 79 of file TDCAGE.hpp.
{
//- empty
}
| static void TDCAGE::destroy_memory | ( | ) | [inline, static] |
Definition at line 52 of file TDCAGE.hpp.
| int TDCAGE::group_sequence_number | ( | RefGroup * | group, |
| const RefEntity * | entity | ||
| ) | [static] |
Definition at line 74 of file TDCAGE.cpp.
{
//- return the sequence number of the given entity in the given group
// built for speed; don't accumulate index, use loop counter for that
group->entityList.reset();
for (int i = group->entityList.size(); i > 0; i--) {
if (group->entityList.get_and_step() == entity)
// index in reverse direction, so subtract to get real index
return group->entityList.size() - i;
}
return -1;
}
| void TDCAGE::initialize_group_sequence_list | ( | RefEntity * | entity | ) |
Definition at line 89 of file TDCAGE.cpp.
{
//- get the groups owning entity and build the sequence lists
DLIList<RefGroup*> ref_groups;
RefGroup::get_groups_within(entity, ref_groups, CUBIT_FALSE);
groupList.clean_out();
sequenceList.clean_out();
for (int i = ref_groups.size(); i > 0; i--) {
RefGroup *ref_group = ref_groups.get_and_step();
groupList.append(ref_group);
sequenceList.append(group_sequence_number(ref_group, entity));
}
}
| void TDCAGE::insert_entity | ( | RefEntity * | entity, |
| const int | seq_num, | ||
| RefGroup * | into_group | ||
| ) | [static] |
Definition at line 29 of file TDCAGE.cpp.
{
//- insert the entity into the group following the sequence number
//- given
TDCAGE *td_cage;
CubitBoolean inserted = CUBIT_FALSE;
DLIList<RefEntity*> copy_group_list;
copy_group_list = into_group->entityList;
into_group->entityList.last();
for (int i = into_group->entityList.size(); i > 0; i--) {
RefEntity *into_entity = into_group->entityList.get();
td_cage = (TDCAGE *) into_entity->get_TD(&TDCAGE::is_cage);
if (td_cage && td_cage->td_sequence_number(into_group) < seq_num) {
if ( !copy_group_list.move_to(entity) )
into_group->entityList.insert(entity);
inserted = CUBIT_TRUE;
break;
}
else into_group->entityList.back();
}
// if we got here and didn't insert, either the list is empty
// or it isn't and our seq_num is less than all items; either
// way, we insert at beginning
if (inserted == CUBIT_FALSE){
if ( !copy_group_list.move_to(entity) )
into_group->entityList.insert_first(entity);
}
// now register the observable entity in the group
into_group->register_observable(entity);
// now, make sure the inserted entity has a td_cage and this group
// and seq number are registered
td_cage = (TDCAGE *) entity->get_TD(&TDCAGE::is_cage);
if (!td_cage) {
td_cage = new TDCAGE(-1);
entity->add_TD(td_cage);
}
td_cage->insert_group(into_group, seq_num);
}
| void TDCAGE::insert_group | ( | RefGroup * | group, |
| const int | seq_num | ||
| ) | [inline] |
Definition at line 84 of file TDCAGE.hpp.
{
groupList.append(group);
sequenceList.append(seq_num);
}
| int TDCAGE::is_cage | ( | const ToolData * | td | ) | [static] |
Definition at line 7 of file TDCAGE.cpp.
| TDCAGE::SetDynamicMemoryAllocation | ( | memoryManager | ) | [inline, pure virtual] |
Definition at line 45 of file TDCAGE.hpp.
{memoryManager.set_memory_allocation_increment(increment);}
| int TDCAGE::td_sequence_number | ( | const RefGroup * | group | ) |
Definition at line 13 of file TDCAGE.cpp.
{
// go through the group list and get the sequence number;
// return -1 if the group isn't in the list
groupList.reset();
sequenceList.reset();
for (int i = groupList.size(); i > 0; i--) {
if (group == groupList.get_and_step()) return sequenceList.get();
else sequenceList.step();
}
return -1;
}
| int TDCAGE::unique_id | ( | ) | [inline] |
Definition at line 41 of file TDCAGE.hpp.
{return uniqueId;}
| void TDCAGE::unique_id | ( | int | id | ) | [inline] |
Definition at line 42 of file TDCAGE.hpp.
DLIList<RefGroup *> TDCAGE::groupList [private] |
Definition at line 27 of file TDCAGE.hpp.
MemoryManager TDCAGE::memoryManager [static, private] |
Definition at line 22 of file TDCAGE.hpp.
DLIList<int> TDCAGE::sequenceList [private] |
Definition at line 30 of file TDCAGE.hpp.
int TDCAGE::uniqueId [private] |
Definition at line 25 of file TDCAGE.hpp.