class IntersectorMap
!!!251696.cpp!!!	~IntersectorMap()
    for(InternalMap::const_iterator it = intersectorsMap.begin(), itEnd = intersectorsMap.end(); it != itEnd; ++it)
    {
        delete it->second;
    }
!!!251824.cpp!!!	getType(inout model : CollisionModel) : helper::TypeInfo
	helper::TypeInfo t(typeid(*model));
	const std::map<helper::TypeInfo,helper::TypeInfo>::iterator it = castMap.find(t);
	if (it == castMap.end())
	{
		helper::TypeInfo t2 = t;
		for (std::set<const objectmodel::ClassInfo* >::iterator it = classes.begin(); it != classes.end(); ++it)
		{
			if ((*it)->isInstance(model))
			{
				t2 = (*it)->type();
				break;
			}
		}
		castMap.insert(std::make_pair(t,t2));
		return t2;
	}
	else return it->second;
!!!251952.cpp!!!	get(inout model1 : CollisionModel, inout model2 : CollisionModel, inout swapModels : bool) : ElementIntersector
	helper::TypeInfo t1 = getType(model1);
	helper::TypeInfo t2 = getType(model2);
    InternalMap::iterator it = intersectorsMap.find(std::make_pair(t1,t2));
    if (it != intersectorsMap.end())
    {
        swapModels = false;
        return it->second;
    }
    
    it = intersectorsMap.find(std::make_pair(t2,t1));
    if (it != intersectorsMap.end())
    {
        swapModels = true;
        return it->second;
    }

    std::cerr << "ERROR: Element Intersector "
              << gettypename(t1) << "-"
              << gettypename(t2) << " NOT FOUND." << std::endl;
    insert(t1, t2, 0);
    return 0;
!!!252208.cpp!!!	add_impl(in c1 : ClassInfo, in c2 : ClassInfo, inout intersector : ElementIntersector) : void
    classes.insert(&c1);
    classes.insert(&c2);
    castMap.clear();
    // rebuild castMap
    for (std::set<const objectmodel::ClassInfo* >::iterator it = classes.begin(); it != classes.end(); ++it)
    {
        castMap.insert(std::make_pair((*it)->type(),(*it)->type()));
    }

    insert(c1.type(), c2.type(), intersector);
!!!252336.cpp!!!	insert(in t1 : helper::TypeInfo, in t2 : helper::TypeInfo, inout intersector : ElementIntersector) : void
    const MapValue mapValue(MapKey(t1, t2), intersector);
    InternalMap::iterator it = intersectorsMap.find(mapValue.first);
    if(it != intersectorsMap.end())
    {
        delete it->second;
        it->second = mapValue.second;
    }
    else
    {
        intersectorsMap.insert(mapValue);
    }
