|
cgma
|
#include <CGMHistory.hpp>
Classes | |
| class | Event |
| class | PortEvent |
Public Types | |
| enum | EventType { TOP_LEVEL_ENTITY_CREATED, TOP_LEVEL_ENTITY_DELETED, ENTITY_CREATED, ENTITY_DELETED, TOPOLOGY_CHANGED, GEOMETRY_CHANGED, GEOMETRY_TRANSFORMED, ENTITY_ID_CHANGED, ENTITY_NAME_CHANGED, ENTITY_COLOR_CHANGED, SUBDIVISION, ABSORPTION, SUBDIVISION_ABSORPTION, MERGE, COPY, CUT } |
Public Member Functions | |
| CGMHistory () | |
| ~CGMHistory () | |
| int | get_number_of_events () const |
| const Event * | get_event (int index) const |
| void | print_port_events () |
| void | add_event (const Event &new_event) |
| void | add_port_event (const PortEvent &event) |
| void | compress () |
| void | clear () |
| void | start_tracking () |
| void | end_tracking () |
| bool | is_tracking () const |
Private Attributes | |
| std::vector< Event > | eventList |
| std::vector< PortEvent > | portEventList |
| bool | mTracking |
Definition at line 12 of file CGMHistory.hpp.
Definition at line 18 of file CGMHistory.hpp.
{
// Top level creation means an entity with no parent is created
// this could be bodies, surfaces, curves or vertices
TOP_LEVEL_ENTITY_CREATED,
// Top level deleted means an entity no longer has top level status
// it may have been deleted or it may have been consumed into a higher
// dimensional entity
TOP_LEVEL_ENTITY_DELETED,
// An entity has been created
ENTITY_CREATED,
// An entity has been deleted
ENTITY_DELETED,
// An entity's topology changes, meaning it has gained new child entities
// or lost old child entities. This can result from solid modeling
// operations or from operations within cgm such as merging.
TOPOLOGY_CHANGED,
// The geometry of an entity is changed such that it might have been
// stretched, warped or other such changes where the topology may be the
// same. If child entities changed, they'll have their own event.
GEOMETRY_CHANGED,
// A transformation happend to this entity, all child entities are
// transformed as well. In this case, a GEOMETRY_CHANGED does not occur.
GEOMETRY_TRANSFORMED,
// The id of an entity changes
ENTITY_ID_CHANGED,
// The name of an entity changes
ENTITY_NAME_CHANGED,
// The name of an entity changes
ENTITY_COLOR_CHANGED,
// An entity is subdivided into multiple entities
// this is a supplemental event such that other events completely
// describe the topology changes, but this event specifies where the
// subdivision occurred
SUBDIVISION,
// Multiple entities are absorbed into one entity
// this is a supplemental event such that other events completely
// describe the topology changes, but this event specifies where the
// absorption occurred
ABSORPTION,
// Multiple entities modified by a combination of subdivision and
// absorption, and intermediate entities don't exist by the time
// this history object is given to someone
// this is a supplemental event such that other events completely
// describe the topology changes, but this event specifies where the
// subdivision/absorption occurred
SUBDIVISION_ABSORPTION,
// An entity is merged into another
// this is a supplemental event such that other events completely
// describe the topology changes, but this event specifies where the
// merge occurred
MERGE,
// An entity is copied from another
// you may also get this when an unmerge happens in cgm
// this is a supplemental event such that other events completely
// describe the topology changes, but this event specifies where the
// copy occurred
COPY,
// Cousin to SUBDIVISION. Think of it as a 1-to-n subdivision where
// only 1 of the n actually survives, so it's really and 1-to-1
// modification.
CUT
};
Definition at line 27 of file CGMHistory.cpp.
{
mTracking = false;
//mTracking = true;
}
Definition at line 33 of file CGMHistory.cpp.
{
}
| void CGMHistory::add_event | ( | const Event & | new_event | ) |
Definition at line 90 of file CGMHistory.cpp.
| void CGMHistory::add_port_event | ( | const PortEvent & | event | ) |
Definition at line 96 of file CGMHistory.cpp.
{
if(mTracking)
portEventList.push_back(event);
}
| void CGMHistory::clear | ( | ) |
Definition at line 107 of file CGMHistory.cpp.
{
eventList.clear();
portEventList.clear();
}
| void CGMHistory::compress | ( | ) |
Definition at line 102 of file CGMHistory.cpp.
{
// TODO
}
| void CGMHistory::end_tracking | ( | ) |
Definition at line 68 of file CGMHistory.cpp.
{
mTracking = false;
}
| const CGMHistory::Event * CGMHistory::get_event | ( | int | index | ) | const |
Definition at line 83 of file CGMHistory.cpp.
| int CGMHistory::get_number_of_events | ( | ) | const |
Definition at line 78 of file CGMHistory.cpp.
{
return eventList.size();
}
| bool CGMHistory::is_tracking | ( | ) | const |
Definition at line 73 of file CGMHistory.cpp.
{
return mTracking;
}
| void CGMHistory::print_port_events | ( | ) |
Definition at line 113 of file CGMHistory.cpp.
{
std::vector<PortEvent>::iterator iter = portEventList.begin();
for(; iter != portEventList.end(); iter++ )
{
PortEvent port_event = *iter;
PRINT_INFO("Event type = %s RefEntities ", event_names[ port_event.eventType ]);
size_t i;
for ( i = 0; i < port_event.RefEnts.size(); i++ )
{
RefEntity *ref_ent = port_event.RefEnts[i];
PRINT_INFO(" %s %d ", ref_ent->class_name(), ref_ent->id() );
}
PRINT_INFO(" ---> ");
for ( i = 0; i < port_event.TopologyBridges.size(); i++ )
{
TopologyBridge *tb = port_event.TopologyBridges[i];
PRINT_INFO(" %p", (void*)tb );
}
PRINT_INFO("\n");
}
}
| void CGMHistory::start_tracking | ( | ) |
Definition at line 63 of file CGMHistory.cpp.
{
mTracking = true;
}
std::vector<Event> CGMHistory::eventList [private] |
Definition at line 181 of file CGMHistory.hpp.
bool CGMHistory::mTracking [private] |
Definition at line 183 of file CGMHistory.hpp.
std::vector<PortEvent> CGMHistory::portEventList [private] |
Definition at line 182 of file CGMHistory.hpp.